CodeDeploy

CodeDeploy は、アプリケーションを自動的にデプロイするフルマネージドサービスです。

Application(アプリケーション) ごとにデプロイ対象をまとめ、Deployment Group(デプロイグループ) として管理します。各デプロイは Deployment Configuration(デプロイ設定) に基づいて実行され、デプロイ方法や並行実行数、ヘルスチェック条件を定義できます。

CodeDeployは、EC2(Elastic Compute Cloud)、オンプレミスサーバー、Auto Scaling グループ、ECS DeploymentLambda 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 を作成
vpc を作成
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc

Terraformのサンプルコード

vpc を作成
bbbbbbbbbbbbbbbbbbbbbbb
ddddddddddddddddddddddd
vpc を作成
xxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyy

課金モデル

項目 内容
項目1内容1
項目2内容2
項目3内容3
項目4内容4
項目5内容5

公式ページ

AWSドキュメント