Skip to content

準備

サンプルアプリケーションのフォークおよびクローン

まずは、このリポジトリをフォークし、自分のアカウントにリポジトリを作成します。

サンプルアプリケーションは、指定された数までFizzBuzzを表示するNode.jsによる簡単なアプリケーションです。

fork

上のリンクからGitHubの当該リポジトリのページに移動し、右上の Fork というボタンからフォークを実行します。

clone

自分の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の実行

Launch Stack

上のリンクより、ハンズオン用の環境を構築するためのCloudFormationを実行します。

この、CloudFormationによって、以下の図のような構成の環境が作成されます。

CloudFormationによってい構築される構成

アプリケーションの動作環境以外に後でCodeBuildとCodePipelineで使用するためのIAM Roleを作成しています。

作成したスタックが CREATE_COMPLETE の状態になるまで待ちます。

動作確認

作成したスタックの出力にALBDNSNameというキーで出力された値が、今回のサンプルアプリケーションのアクセス先のURLです。アドレスバーにコピペして、サンプルアプリケーションの動作を確認します。

初期状態