準備
サンプルアプリケーションのフォークおよびクローン
まずは、このリポジトリをフォークし、自分のアカウントにリポジトリを作成します。
サンプルアプリケーションは、指定された数までFizzBuzzを表示するNode.jsによる簡単なアプリケーションです。
上のリンクからGitHubの当該リポジトリのページに移動し、右上の Fork
というボタンからフォークを実行します。
自分のGitHubアカウント上に作成されたフォークしたリポジトリから、ローカルのPCにクローンします。作業用のディレクトリで以下のコマンドを実行します。
$ git clone git@github.com:<ご自分のgithubのアカウント名>/ci-cd-hands-on-ecs.git
クローンされたリポジトリのディレクトリに移動して中身を確認し、クローンが正しく行われたことを確認します。
$ cd ci-cd-handson-ecs
$ ls
Dockerfile cloudformation package.json
README.md docs src
buildspec.pr.yml mkdocs template
buildspec.yml package-lock.json test
ECSのServiceLinkedRole作成
今回ECSでアプリケーションを動作させるにあたってサービスにリンクしたロールが作成されている必要があります。そのため、IAMのコンソールを開き、AWSServiceRoleForECS
というロールがあるかを確認してください。ない場合はサービスにリンクしたロールがない状態ですので、ECSのタスクの実行が失敗してしまいます。
その場合は、以下のコマンドを実行してECSのサービスにリンクしたロールが作成された状態にします。
aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
ハンズオン用環境構築用のCloudFormationの実行
上のリンクより、ハンズオン用の環境を構築するためのCloudFormationを実行します。
この、CloudFormationによって、以下の図のような構成の環境が作成されます。
アプリケーションの動作環境以外に後でCodeBuildとCodePipelineで使用するためのIAM Roleを作成しています。
作成したスタックが CREATE_COMPLETE
の状態になるまで待ちます。
動作確認
作成したスタックの出力にALBDNSName
というキーで出力された値が、今回のサンプルアプリケーションのアクセス先のURLです。アドレスバーにコピペして、サンプルアプリケーションの動作を確認します。