CloudFormationを用いて構築します。
https://ap-northeast-1.console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/
以下の手順では東京リージョンを利用していますが、どのリージョンでも構いません。
network.ymlを用いてCloudFormationスタック(以後、CFnスタック)を作成します。
- 「新しいリソースを使用(標準)」
5分〜10分程度で、3つのAZにまたがる本番を想定したネットワークが構築されます。
deploypipeline.ymlを用いてCloudFormationスタックを作成します。手順はネットワークの構築と同様です。
1点。スタックの名前をつける画面で、network.ymlから作成したCFnスタックの名前を入力して下さい。
5分〜10分程度で、CodePipelineを用いたデプロイパイプラインが構築されます。
CircleCIで利用する情報を取得し、masterブランチの内容を継続的にAWSへデリバリします。
CircleCIで利用するために、S3 Bucket名とアクセスキーをメモします。
- deploypipeline.ymlから作成したCFnスタックを選択し「リソース」から
S3BucketCodePipelineSource
の物理ID(以後、a)をメモ
- IAM Userの画面へ移動し、deploypipeline.ymlから作成したCFnスタックの名前で検索
- 「アクセスキーの作成」にて、新しいアクセスキーを作成し、アクセスキーID(以後、b)とシークレットアクセスキー(以後、c)をメモ
ここから先はCircleCIで作業します。
- リポジトリの追加画面(※)から
zozotechbook1-ch07-deploypipeline
を「Set Up Project」
(※)https://onboarding.circleci.com/project-dashboard/github/<リポジトリをforkしたユーザ名 or Org名>
- 「Start Building」
- もし、Add this config to your repoのポップアップが出た場合、「Add Manually」
- 「Project Settings」
- 環境変数を設定する
Name | Value | Example |
---|---|---|
S3_BUCKET_NAME | (a)をコピー | sample-deploy-s3bucketcodepipelinesource-yk7stq65mtv8 |
AWS_ACCESS_KEY_ID | (b)をコピー | AKIAIOSFODNN7EXAMPLE |
AWS_SECRET_ACCESS_KEY | (c)をコピー | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
AWS_DEFAULT_REGION | CFnスタックを作成したリージョン | ap-northeast-1 |
これですべての準備は完了です。
トリガーは次の2つです。
- GitHubで、マスターブランチを更新したとき
- CircleCIで、過去のパイプラインを再実行したとき