AWSの話題を中心に、日々の業務やプログラミングの徒然を綴るエンジニアブログです。

HANDS LAB

HANDS LAB ENGINEERS BLOG

ハンズラボエンジニアブログ

CodeStar使ってみた

Pocket

Pocket

こんにちは。2018年1月にハンズラボにジョインした北野です。

今回Node.jsで動かすAWS LambdaのCI環境構築を担当することになりました。

せっかくなので東京リージョンで利用できるようになった
CodeStarを使ってLambda(Node.js)で動くWebアプリケーションのCI環境を作ってみたので紹介します!

構成イメージ

システム構成イメージ

下図のようなシステムを開発するためのCI環境があっさり構築できます。

CI環境イメージ

CodeStarダッシュボード

CodeCommit&CodeBuild&CodePipeline

準備

CodeStarプロジェクトを作る前にちょっとだけ準備が必要です。

CodeStar関連

CodeStarの機能を使えるようにIAMユーザーの設定をします。

  • IAMユーザーでCodeStarフルアクセスを許可します。

  • IAMユーザーでAWSマネジメントコンソールへのアクセスを許可します。

CodeCommit関連

CodeCommitのGitリポジトリにsshでアクセスするための設定をします。
すでにCodeCommitへssh経由で接続できている方は不要です。

  • ローカルマシンでssh keysを生成します。

  • IAMユーザーの認証情報にSSH公開キーをアップロードします。

  • ローカルマシンの.ssh/configファイルにCodeCommit用のHostを追記します。

やってみた

まずはCodeStarのプロジェクトを開始します。

CodeStarで最初にプロジェクトを作成した時にサービスロールの作成を求められます。
「はい、ロールを作成します」を選択します。
(※このサービスロール作成にはIAM管理ユーザーまたはルートアカウントとしてサインインする必要がありますので注意してください。)

CodeStarを最初に利用したときに追加情報の入力を求められます。
ユーザ名とE-mailを入力して「次へ」を選択します。

(参考)入力した情報はプロジェクト作成後にプロジェクトチームのメンバー表示で使用されます。

開発環境に合わせてテンプレートを選択します。今回はNode.jsとLambdaでウェブアプリケーションを作成するテンプレートを使用します。

プロジェクト名の設定とリポジトリを選択します。今回はCodeCommitを使用します。

「AWS CodeStarが、お客様に代わって…」をチェックして、プロジェクトを作成します。

数分でプロジェクトが作成できます。

デプロイまで完了した後にアプリケーションのエンドポイントにアクセスするとサンプルページが表示されます!

ソースの変更とデプロイ

ソースの変更が自動でデプロイされるところもやってみます。

コードの編集手順はCodeStarのダッシュボードから参照することができます。

今回はコマンドラインツールで「git clone」します。

ページの文言をちょっとだけ変更しました。

これをcommitしてpushします。

pushするとCodePipelineが動きだし、Source->Build->Deployの順番で動作していきます。

デプロイが完了した後にエンドポイントにアクセスすると変更が反映されました!

感想

CodeStarを使用することでとても簡単にCI環境を作ることができました!
Node.jsとLambdaの知識をほとんど使わずに手軽にCI環境が構築できます。

自動テストをどうやって実行するのかとか課題があり、これだけでデプロイ環境が完璧にできるというものではありませんが、CI環境の足場を作るのにとても便利なので活用していきたいと思います。

Pocket