
CodeDeploy は、アプリケーションを自動的にデプロイするフルマネージドサービスです。
Application(アプリケーション) ごとにデプロイ対象をまとめ、Deployment Group(デプロイグループ) として管理します。各デプロイは Deployment Configuration(デプロイ設定) に基づいて実行され、デプロイ方法や並行実行数、ヘルスチェック条件を定義できます。
CodeDeployは、EC2(Elastic Compute Cloud)、オンプレミスサーバー、Auto Scaling グループ、ECS Deployment、 Lambda Deployment に対応しており、停止時間を最小限に抑えつつ、確実なデプロイを実現します。アプリケーションの変更内容は Revision(リビジョン) として S3(Simple Storage Service) や CodeCommit などから取得し、ECR(Elastic Container Registry) のコンテナイメージも利用可能です。
デプロイ手順は AppSpec(アプリケーション仕様書) に定義し、appspec.yml ファイルを通じて BeforeInstall、AfterInstall、ValidateService などのフックを柔軟に設定できます。これにより、デプロイ前後のスクリプト実行や設定変更を自動化できます。
デプロイ方式としては、既存環境を直接更新する In-place Deployment(インプレースデプロイ)、段階的に更新を進める Rolling Deployment(ローリングデプロイ)、新旧環境を切り替える Blue/Green Deployment(ブルーグリーンデプロイ)、一部環境で試験的に実行する Canary Deployment(カナリアデプロイ) に対応しています。これらの方式は トラフィックシフト を組み合わせて段階的にリリースでき、サービス停止リスクを大幅に軽減します。
また、CloudWatch Alarms による異常検知と 自動ロールバック 機能によって、デプロイ失敗時には迅速に以前の安定版へ戻すことができます。さらに、ヘルスチェック により、アプリケーションの稼働状態を継続的に確認します。
IAM で最小権限のアクセス制御を行い、Secrets Manager を利用して安全に認証情報を管理できます。CodePipeline と統合することで、CodeBuild によるビルド、CodeCommit や S3 からのソース取得、ECS や Lambda へのデプロイまでを自動化した継続的デリバリーパイプラインを構築できます。
重要用語
ユースケース
- リスト1
 - リスト2
 - リスト3
 
ベストプラクティス
- リスト1
 - リスト2
 - リスト3
 
高可用性・冗長化
- リスト1
 - リスト2
 - リスト3
 
セキュリティ
- リスト1
 - リスト2
 - リスト3
 
運用・監視
- リスト1
 - リスト2
 - リスト3
 
デフォルトのリミット値
| リミット事項 | 上限数 | 
|---|---|
| 項目1 | 上限1 | 
| 項目2 | 上限2 | 
| 項目3 | 上限3 | 
| 項目4 | 上限4 | 
| 項目5 | 上限5 | 
AWS CLIのサンプルコード
vpc を作成
#include <stdio.h>
void main(void) {
  int i;
  for (i=0; i<10; i++)
    printf("%d\n", i);
vpc を作成
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
Terraformのサンプルコード
vpc を作成
bbbbbbbbbbbbbbbbbbbbbbb
ddddddddddddddddddddddd
vpc を作成
xxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyy
課金モデル
| 項目 | 内容 | 
|---|---|
| 項目1 | 内容1 | 
| 項目2 | 内容2 | 
| 項目3 | 内容3 | 
| 項目4 | 内容4 | 
| 項目5 | 内容5 |