実践・Systems Manager Automation〜「EC2のバックアップ取得からパッチ適用まで」を自動で〜
sho
デロイト トーマツ ウェブサービス株式会社(DWS)公式ブログ
CodeBuild は、ソースコードをコンパイルし、テストを実行し、デプロイ可能なソフトウェアパッケージを作成できる完全マネージド型のビルドサービスです。https://aws.amazon.com/jp/codebuild/
類似サービスでは、CircleCiやJenkinsなどが挙げられます。
Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブなワンクリックブラウザベースのシェルや AWS Command Line Interface (AWS CLI) を介して Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、オンプレミスインスタンス、および仮想マシン (VM) を管理できます。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html
今回は、Codebuild実行中の仮想環境にアクセスする目的で利用します。
Coebuild構築中にビルド失敗した際に、修正したものを再度ソースプロバイダにpushするよりも素早く修正したものが正しく動作するかを確認することができます。
ビルドを一時停止するには、buildspec
ファイルの任意のビルドフェーズに codebuild-breakpoint
コマンドを挿入します。この時点でビルドが一時停止されます。
phases:
pre_build:
commands:
- echo Entered the pre_build phase...
- echo "Hello World" > /tmp/hello-world
- codebuild-breakpoint
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
codebuild-resume
コマンドを実行するとビルドが再開されて最後まで処理が行われます。