AWS/CodeBuild
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-コンテナで動く。月100分まで無料なのが嬉しいではないか!
#contents
*用語集 [#zfd5eb49]
|CodeDeploy|アプリケーション||
|CodeDeploy|デプロイメントグループ|対象のECSやデプロイ戦...
|CodeDeploy|AppSpec.yml|対象のサービスやHookと呼ばれる各...
|CodeBuild&CodeDeploy|imagedefinitions.json|イメージ名を...
*Code 4兄弟 [#i960afc4]
|Code commit|AWS製 Git repository|
|Code Pipeline|Githubにpushされたら取得、ビルド、デプロイ...
|Code Build|主にBuild Stage担当|
|Code Deploy|主にDeploy Stage担当|
*GHA Self Hosted Runner [#y43b8c7d]
-PATを利用して接続だが、WebHookのREADは必須。それ以外の権...
-Admin read&write!!が必要。
**参考サイト [#od09f0f5]
-https://developer.mamezou-tech.com/blogs/2024/04/29/gith...
*Code Build [#cb915725]
-buildspec.ymlと直接編集スタイルがある、最初はコンソール...
-private repositoryとの接続は個人ならaccess-tokenで接続し...
-CodePipelineから呼び出される場合はSourceの設定は無視され...
**Githubとの接続 [#ffd5959c]
Default Connectionでは1つのリージョンでGithubなら全部共通。
さすがに不便すぎると思われて、カスタム接続が選べるように...
***OAuth [#x088d6ed]
-個人でGithubにリダイレクトして許可するというもの。以下で...
https://github.com/settings/applications
**Parameter Store の利用。 [#bc5f81be]
IAMに登録必要
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeParameters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters"
],
"Resource": "arn:aws:ssm:ap-northeast-1:自分...
}
]
}
**cliから実行 [#zb7e8b8d]
aws codebuild start-build --project-name プロジェクト名
aws codebuild start-build --project-name プロジェクト名 ...
aws codebuild start-build --project-name プロジェクト名 ...
**S3 sync [#l37f3dcc]
post_build:
commands:
- aws s3 sync release s3://{S3のバケット名} --delet...
*Code Deploy [#de8c9e1a]
**Hook(ライフサイクル)はどこに入れるの? [#l7542015]
appspec.ymlにlambda関数を指定する
**terraform化まとめ [#g2515d2d]
|Resource名|主な役割|依存するResource|
|aws_codedeploy_deployment_group|CodeDeployでBlue/Greenを...
|aws_lb|LBの枠だけ作成|
|aws_lb|LBの枠だけ作成|
**ECS Blue/Green [#k35546c2]
***Test Listener [#n52caf5d]
80(Production Port)と8080(Test Listener Port)を用意してお...
***BLUE/GREENの動き [#se6f68a1]
|フェーズ|80|8080|TG|
|デプロイ前|ECS-1|ECS-1|TG-BLUE|
|デプロイ中|ECS-1|ECS-2|TG-BLUE|
|HOOK完了|ECS-2|ECS-2TG-GREEN|
+ターゲットグループに80/8080を用意
+デプロイ中の切り替え前は8080で動作を確認
-ALBにターゲットグループが二つ必要(おそらくデプロイのたび...
-ALBのリスナールールで初期状態(Blue)に向けておく
-デプロイステージごとにライフサイクルイベントとしてLambda...
https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userg...
https://qiita.com/fukubaka0825/items/59974953bd4c69e9d5c7
**terraform/ecs/blue-green サンプル含めて乗っている [#d89...
https://qiita.com/marnie_ms4/items/202deb8f587233a17cca
-これが一番わかりやすい?
https://dev.classmethod.jp/articles/codepipeline-ecs-code...
https://dev.classmethod.jp/articles/codedeploy-ecs-from-c...
https://qiita.com/NaokiIshimura/items/86ec84a13a6ceb831bba
-TaskDefinitionのバージョンだけ変えたjson
-appspec.yml
*Code pipeline [#z7b388af]
https://beyondjapan.com/blog/2020/04/fargate-deploy-flow-...
*Terraform CICD [#f34e701e]
https://techblog.techfirm.co.jp/entry/terraform-on-codepi...
*参考ページ [#u42960ef]
-DockerImageをビルドしてpush
https://docs.aws.amazon.com/ja_jp/codebuild/latest/usergu...
*S3にアップロードして実施 [#q81dfd35]
-rootディレクトリにbuildspec.ymlを配置
-rootディレクトリに移動してzip
zip -r /var/tmp/upload.zip *
cd infra/node/koa
zip -r dest.zip ./ -x '*node_modules*' '*output*'
*Tips [#m5ebede3]
-課金が1分未満切り上げっぽい。毎回フルフルにダウンロード...
#counter
終了行:
-コンテナで動く。月100分まで無料なのが嬉しいではないか!
#contents
*用語集 [#zfd5eb49]
|CodeDeploy|アプリケーション||
|CodeDeploy|デプロイメントグループ|対象のECSやデプロイ戦...
|CodeDeploy|AppSpec.yml|対象のサービスやHookと呼ばれる各...
|CodeBuild&CodeDeploy|imagedefinitions.json|イメージ名を...
*Code 4兄弟 [#i960afc4]
|Code commit|AWS製 Git repository|
|Code Pipeline|Githubにpushされたら取得、ビルド、デプロイ...
|Code Build|主にBuild Stage担当|
|Code Deploy|主にDeploy Stage担当|
*GHA Self Hosted Runner [#y43b8c7d]
-PATを利用して接続だが、WebHookのREADは必須。それ以外の権...
-Admin read&write!!が必要。
**参考サイト [#od09f0f5]
-https://developer.mamezou-tech.com/blogs/2024/04/29/gith...
*Code Build [#cb915725]
-buildspec.ymlと直接編集スタイルがある、最初はコンソール...
-private repositoryとの接続は個人ならaccess-tokenで接続し...
-CodePipelineから呼び出される場合はSourceの設定は無視され...
**Githubとの接続 [#ffd5959c]
Default Connectionでは1つのリージョンでGithubなら全部共通。
さすがに不便すぎると思われて、カスタム接続が選べるように...
***OAuth [#x088d6ed]
-個人でGithubにリダイレクトして許可するというもの。以下で...
https://github.com/settings/applications
**Parameter Store の利用。 [#bc5f81be]
IAMに登録必要
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeParameters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters"
],
"Resource": "arn:aws:ssm:ap-northeast-1:自分...
}
]
}
**cliから実行 [#zb7e8b8d]
aws codebuild start-build --project-name プロジェクト名
aws codebuild start-build --project-name プロジェクト名 ...
aws codebuild start-build --project-name プロジェクト名 ...
**S3 sync [#l37f3dcc]
post_build:
commands:
- aws s3 sync release s3://{S3のバケット名} --delet...
*Code Deploy [#de8c9e1a]
**Hook(ライフサイクル)はどこに入れるの? [#l7542015]
appspec.ymlにlambda関数を指定する
**terraform化まとめ [#g2515d2d]
|Resource名|主な役割|依存するResource|
|aws_codedeploy_deployment_group|CodeDeployでBlue/Greenを...
|aws_lb|LBの枠だけ作成|
|aws_lb|LBの枠だけ作成|
**ECS Blue/Green [#k35546c2]
***Test Listener [#n52caf5d]
80(Production Port)と8080(Test Listener Port)を用意してお...
***BLUE/GREENの動き [#se6f68a1]
|フェーズ|80|8080|TG|
|デプロイ前|ECS-1|ECS-1|TG-BLUE|
|デプロイ中|ECS-1|ECS-2|TG-BLUE|
|HOOK完了|ECS-2|ECS-2TG-GREEN|
+ターゲットグループに80/8080を用意
+デプロイ中の切り替え前は8080で動作を確認
-ALBにターゲットグループが二つ必要(おそらくデプロイのたび...
-ALBのリスナールールで初期状態(Blue)に向けておく
-デプロイステージごとにライフサイクルイベントとしてLambda...
https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userg...
https://qiita.com/fukubaka0825/items/59974953bd4c69e9d5c7
**terraform/ecs/blue-green サンプル含めて乗っている [#d89...
https://qiita.com/marnie_ms4/items/202deb8f587233a17cca
-これが一番わかりやすい?
https://dev.classmethod.jp/articles/codepipeline-ecs-code...
https://dev.classmethod.jp/articles/codedeploy-ecs-from-c...
https://qiita.com/NaokiIshimura/items/86ec84a13a6ceb831bba
-TaskDefinitionのバージョンだけ変えたjson
-appspec.yml
*Code pipeline [#z7b388af]
https://beyondjapan.com/blog/2020/04/fargate-deploy-flow-...
*Terraform CICD [#f34e701e]
https://techblog.techfirm.co.jp/entry/terraform-on-codepi...
*参考ページ [#u42960ef]
-DockerImageをビルドしてpush
https://docs.aws.amazon.com/ja_jp/codebuild/latest/usergu...
*S3にアップロードして実施 [#q81dfd35]
-rootディレクトリにbuildspec.ymlを配置
-rootディレクトリに移動してzip
zip -r /var/tmp/upload.zip *
cd infra/node/koa
zip -r dest.zip ./ -x '*node_modules*' '*output*'
*Tips [#m5ebede3]
-課金が1分未満切り上げっぽい。毎回フルフルにダウンロード...
#counter
ページ名: