環境と承認済みバージョンの管理

AWS でのデプロイの自動化

Dunieski Otano

Amazon Web Services Solutions Architect

同じコード、3つの環境

同じコード

  • Lambda バージョンをステージングから本番に昇格させます
  • 同じアーティファクトを使用し、再ビルドは不要です
  • API 呼び出し1回で本番エイリアスを更新でき、コードは変更されません
  • これが「一度ビルドして複数回デプロイする」という考え方です
AWS でのデプロイの自動化

サービスごとの承認済みバージョン

バージョン

  • Lambda: エイリアスが関数のバージョンを指します
  • ECR + ECS: イメージタグとタスク定義のリビジョン
  • API Gateway: デプロイを含むステージ
  • S3: バージョニングが有効なバケット内のオブジェクトバージョン
AWS でのデプロイの自動化

Lambda エイリアスの仕組み

3つのバージョン

  • バージョンは関数の 不変のスナップショット です
  • エイリアスはバージョンへの 名前付きポインター です
  • エイリアスを更新してバージョンを 昇格 させます
  • エイリアスはカナリアリリース向けに 重み付けルーティング をサポートします
AWS でのデプロイの自動化

ECR タグと ECS タスク定義

  • ECR イメージは ダイジェストごとに不変 です
  • タグはダイジェストに付く 移動可能なラベル です
  • ECS タスク定義は image:tag または @digest を参照します
  • 本番環境では ダイジェストで固定 して正確なビットをロックします

ECR

AWS でのデプロイの自動化

API Gateway ステージの概要

  • ステージは API の デプロイ です
  • 各ステージには独自の URL と デプロイ履歴 があります
  • 次のステージに API をデプロイ して昇格させます
  • ステージ変数は 環境ごとのランタイム値 を保持します

API

AWS でのデプロイの自動化

バージョンの昇格

  • アーティファクトを 1回 ビルドします
  • 開発 で検証し、次に ステージング で検証します
  • 本番のエイリアスやタグを更新するだけで、再ビルドは不要 です
  • 同じアーティファクトがすべての環境で実行されます

昇格

AWS でのデプロイの自動化

設定を分離する

分離

  • コードは環境間で変わりません
  • 設定 が開発と本番の違いを保持します
  • ステージ変数、環境変数、Parameter Store、Secrets Manager
  • アーティファクトに環境の値をハードコーディングしないでください
AWS でのデプロイの自動化

練習しましょう!

AWS でのデプロイの自動化

Preparing Video For Download...