Upgrade to Pro — share decks privately, control downloads, hide ads and more …

とあるチームの手動作業の多いCloudFormation運用とその改善

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for NaoyaYamamoto NaoyaYamamoto
October 27, 2024
470

 とあるチームの手動作業の多いCloudFormation運用とその改善

Avatar for NaoyaYamamoto

NaoyaYamamoto

October 27, 2024
Tweet

Transcript

  1. 自己紹介 名前:山本 直弥 所属:株式会社シーイーシー@名古屋 2023-2024 Japan AWS All Certifications Engineer

    JAWS登壇: オフラインは今回が初 好きなAWSサービス: AWS Lambda AWS Step Functions AWS CloudFormation 1 ※Xのアイコン X:@Nao_Engineer_AC
  2. テンプレート CloudFormation(Cfn)とは? 3 • YAML/JSONで記述されたテンプレートを元にAWS リソースをデプロイする • メリット ➢リソースをコードで管理するので各リソースの設定の確認、変更管理が容易 ➢一括で

    デプロイできるのでリリースの負荷や手動操作の設定ミスのリスク減少 ➢関連する機能やツールが多い リソース スタック 各リソースの状態を YAML/JSONで定義したもの テンプレートからプロビ ジョニングされるリソー スの集合 コード(YAML/JSON) → リソース
  3. CfnのPolicy as Code:AWS CloudFormation Guard • AWS CloudFormation Guard(Cfn-guard) •

    独自ルールを定義してテンプレート定義の正しさを検証 • 意図せぬ設定でデプロイされることを防ぐ Template <例> Lambda タイムアウト=◦◦ メモリサイズ=◦◦ など任意ポリシーを定義 ※単項演算子 (exists,is_string等)、二項 演算子(==,>=等)で評価 CloudFormation Stack ※Cfnテンプレートを元にルール ファイルを作成することも可能 Cfn-guard Template Cfn-guard 意図せぬ変更がないか 定義したルールに従っているか
  4. 過去のPJの概略図 DEVアカウント STG/PRD兼用アカウント EC2 instance contents AWS Step Functions workflow

    Stack (STG) Stack (PRD) AWS Step Functions workflow Template • DEVは各リソースを手動作成しているサーバレス系サービスが多いシステム • STG/PRDデプロイ時にFormer2で一連の機能ごとにCfnテンプレート作成 • Former2で出力したテンプレートをSTG/PRDにデプロイ AWS Step Functions workflow Management Console スキャン Former2のおかげでIaC運用が簡単に行えそう ノーコードでテンプレ出力
  5. 一括テンプレ化の課題 • 別環境用のパラメータ化の際に結局、手作業修正が発生 • 環境固有の設定値が固定値で出力されるので修正が必要 (リソース名、ARN、SfnステートマシンのJSON定義内のARN) • 一連の機能の大きなテンプレートを一括手修正するため、修正ミス発生 • 一度の手作業修正の範囲が大きい

    • DEV環境開発後にテンプレ化するため、 開発時に行った設定のテンプレ化忘れも発生しやすい 8 ①DEVをそのまま テンプレート化 ③手動修正による修正漏れや テンプレ化忘れ発見、再修正 ②環境に合わせるための手作業編集 めちゃ手作業 時間もかかる DEV_Function1 →${Env}_Function1 など各種変数化 <Former2を使った別環境デプロイ作業イメージ> Stack Template Template テンプレート化忘れの リスク有り
  6. 運用を改善:DEV開発時点からIaC管理 9 DEVアカウント STG/PRD兼用アカウント AWS Step Functions workflow Stack (STG)

    Stack (PRD) AWS Step Functions workflow Template AWS Step Functions workflow Stack (DEV) DEV開発の段階でテンプレ作成 →開発完了時点でテンプレの正しさは検証できているはず DEVで検証済みのテンプレを再利用 手作業のリスクを回避 リリースの準備負荷軽減