用語集

CodeDeployアプリケーション
CodeDeployデプロイメントグループ対象のECSやデプロイ戦略を設定
CodeDeployAppSpec.yml対象のサービスやHookと呼ばれる各ステップでのライフサイクルイベントを定義したファイル
CodeBuild&CodeDeployimagedefinitions.jsonイメージ名を後続のDeployタスクで利用するために生成

Code 4兄弟

Code commitAWS製 Git repository
Code PipelineGithubにpushされたら取得、ビルド、デプロイなどのPipline
Code Build主にBuild Stage担当
Code Deploy主にDeploy Stage担当

GHA Self Hosted Runner

Code Build

Githubとの接続

Default Connectionでは1つのリージョンでGithubなら全部共通。 さすがに不便すぎると思われて、カスタム接続が選べるようになっている。

OAuth

https://github.com/settings/applications

Parameter Store の利用。

IAMに登録必要

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "ssm:DescribeParameters"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "ssm:GetParameters"
           ],
           "Resource": "arn:aws:ssm:ap-northeast-1:自分のアカウントID:parameter/*"
       }
   ]
}

cliから実行

aws codebuild start-build --project-name プロジェクト名
aws codebuild start-build --project-name プロジェクト名 --source-version ブランチ名
aws codebuild start-build --project-name プロジェクト名 --environment-variables-override name=HOGE,value=value,type=PLAINTEXT

S3 sync

post_build:
   commands:
     - aws s3 sync release s3://{S3のバケット名} --delete --acl public-read

Code Deploy

Hook(ライフサイクル)はどこに入れるの?

appspec.ymlにlambda関数を指定する

terraform化まとめ

Resource名主な役割依存するResource
aws_codedeploy_deployment_groupCodeDeployでBlue/Greenを設定ECSのクラスター&サービス/ALBのターゲットグループ
aws_lbLBの枠だけ作成
aws_lbLBの枠だけ作成

ECS Blue/Green

Test Listener

80(Production Port)と8080(Test Listener Port)を用意しておき、デプロイが走ったときに8080経由で新しいものにアクセスできる。

BLUE/GREENの動き

フェーズ808080TG
デプロイ前ECS-1ECS-1TG-BLUE
デプロイ中ECS-1ECS-2TG-BLUE
HOOK完了ECS-2ECS-2TG-GREEN
  1. ターゲットグループに80/8080を用意
  2. デプロイ中の切り替え前は8080で動作を確認

https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-ecs

https://qiita.com/fukubaka0825/items/59974953bd4c69e9d5c7

terraform/ecs/blue-green サンプル含めて乗っている

https://qiita.com/marnie_ms4/items/202deb8f587233a17cca

https://dev.classmethod.jp/articles/codepipeline-ecs-codedeploy/

https://dev.classmethod.jp/articles/codedeploy-ecs-from-cli/

https://qiita.com/NaokiIshimura/items/86ec84a13a6ceb831bba

Code pipeline

https://beyondjapan.com/blog/2020/04/fargate-deploy-flow-terraform/

参考ページ

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-docker.html

S3にアップロードして実施

zip -r /var/tmp/upload.zip *

Tips

Counter: 2111, today: 2, yesterday: 2

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS