CloudFormation テンプレートの基礎

AWS でのデプロイの自動化

Dunieski Otano

Amazon Web Services Solutions Architect

なぜ IaC を使うのか

ドリフト

  • 手動のコンソール操作は、時間とともにドリフトを生みます
  • IaC はファイルに望ましい状態を宣言します
  • 再現可能、レビュー可能、バージョン管理可能
  • CloudFormation、SAM、CDK は AWS のツールキットです
AWS でのデプロイの自動化

CloudFormation テンプレートの構造

パラメータ

  • Resources(必須): プロビジョニングしたいインフラ
  • Parameters: デプロイ時に渡す入力値
  • Outputs: スタックがエクスポートする値
  • Mappings, Conditions, Transform: 補助機能(Transform は SAM を有効化)
AWS でのデプロイの自動化

組み込み関数

組み込み関数

  • Ref: パラメータや他のリソースを参照します
  • Fn::GetAtt: リソースの属性を取得します
  • Fn::Sub: 文字列内の変数を置換します
  • 短縮形: Ref、!GetAtt、!Sub
AWS でのデプロイの自動化

チェンジセットで更新をプレビュー

  • チェンジセットは更新内容をプレビューします
  • 追加・変更・削除のすべての操作を一覧表示します
  • 置き換えが発生するリソースを警告します
  • 実行するか破棄するか選べるため、予期しない更新は起きません

チェンジセット

AWS でのデプロイの自動化

ドリフト検出

  • ドリフト: CloudFormation の外部でリソースが変更された状態です
  • リソースごとのステータス: INSYNC、MODIFIED、DELETED、NOTCHECKED
  • リソースごとのレポートで差異の内容を確認できます
  • テンプレートを再デプロイして同期します

検出

AWS でのデプロイの自動化

スタックのデプロイと更新

  • Create stack: 初回のデプロイ
  • Update stack: リソースをその場で変更
  • Stack events* ですべてのステップを確認
  • 更新に失敗するとロールバックして以前の状態に戻ります

更新

AWS でのデプロイの自動化

練習しましょう!

AWS でのデプロイの自動化

Preparing Video For Download...