Amazon Web Services ブログ

[AWS Black Belt Online Seminar] AWS CloudFormation deep dive 資料及び QA 公開

先日 (2020/10/06) 開催しました AWS Black Belt Online Seminar「AWS CloudFormation deep dive」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。


※ライブ配信中に切れてしまった最後の部分を再編集して掲載しております。

20201006 AWS Black Belt Online Seminar AWS CloudFormation deep dive

AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます)

Q. DeletionPolicy:Retain のとき、削除されるリソースは Changeset でどう表示されますか。Stack のリファクタリングで元スタックを削除するのは怖いので確認したいと思っています。
A. DeletionPolicy を指定してリソースを作り、対象のリソースを除外したテンプレートを作って ChangeSet を作ると、ChangeSet 上は Remove と表示され、リソースが残ることの確認はできません。類似のテンプレートを使ってテストを行い、加えて本番の環境に正しく DeletionPolicy が設定されていることを CFn 画面や CLI で得られるテンプレート情報で確認して削除を行って頂くことをおすすめします。

Q. SAM のアプリを CodePipeline でデプロイする場合、sam deploy コマンドをパイプラインの中で実行する形でいいのでしょうか ? まだ仕組みとして洗練されていない感じがします。
A. sam deploy は個人用の環境をデプロイするために使用していただき、本番環境などをデプロイするには SAM の CloudFormation テンプレートを CodePipeline などからデプロイして頂くことをおすすめします。SAM を CodePipeline+CloudFormation でデプロイする方法は AWSLabs にサンプルがありますのでこちらをご参照ください。

Q. CFn のテストとは具体的にどのようなことを想定していますでしょうか?マネコンからデプロイされたスタックを確認ということでしょうか?自動テストができたら良いなと思っているのですが、うまい方法が見つからず悩んでいます。
A. テストにはいくつかのレベルが考えられます。ここでは CFn でアプリケーションも含めた本番同等の環境を作ったとして考えます。

  1. アプリケーションのエンドツーエンドテスト
    アプリケーションの結合テストやシステムテストを行うものです。テスト方法はアプリケーション開発方式によりますが、API を自動的に投げて機能や性能をテストする方法や、手動によるシナリオテストなどが考えられます。
  2. インフラ構成の機能/非機能テスト
    アプリケーションを除いた状態で、インフラとして正しく稼働していることを確認します。外部からアクセスして疎通性を確認したり、フェイルオーバなどの操作を行って想定通りにインフラレイヤが稼働することを確認します。手動でテストを行ったり、serverspec などでインフラのテストを自動化する方法が考えられます。
  3. CFn テンプレート自体のテスト
    CFn テンプレートの設定値が所定のルールに適合するかどうかを評価します。最近 GA となった cfn-guard、他にはセキュリティ評価を行う cfn-nag、Linter である cfn-lint などが利用できます。

CFn テンプレートのテストツールについて詳しくはこれらの情報をご覧ください。

Q. cdk deploy より CloudFormation をデプロイした方が早くブログも書かれていると話がありましたが、内容を知りたいため参考となるリンクがもらえると助かります。
A. CDK Pipelines というデベロッパープレビューのコンストラクトライブラリがあり、CodePipeline+CloudFormation を使った CDK コードのデプロイを行うことができます。このライブラリを使っていただく方法もありますし、この考え方を参考に独自のパイプラインを実装して頂くのも良いと思います。詳しくはこちらのブログをご覧ください。

Q. CodePipeline で開発と本番を使い分けるとありますが、開発アカウントと本番アカウントが異なるアカウント場合でも対応可能でしょうか?
A. はい。対応可能です。1つのアカウントに CodePipeline でパイプラインを作り、異なるアカウントに CloudFormation でデプロイする方法があり、こちらをご参照ください。
なお、上の回答でご紹介した CDK Pipelines は 異なるアカウント、リージョンにデプロイするパイプラインを容易に作成することができます。CDK を使われる場合はこちらもご参照ください。

Q. テンプレートファイルを作成する上でよく利用されている IDE のプラグイン(入力補完などができる)などがありましたら, 教えていただきたいです
A. 私は VSCode をよく使っていますが、次のツールが便利です。

別の観点ですが、エディタによる補完サポートという点では一般言語で記述できる CDK のほうが強力です。BlackBelt 実施後に CloudFormation テンプレートを include して CDK で管理できる CloudFormation-Include CDK モジュールの開発者プレビューが利用可能になっています。今後 CDK を使われる場合はこちらもお試しいただければと思います。

今後の AWS Webinar | イベントスケジュール

直近で以下を予定しています。各詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております。

AWSome Day Online Conference

「AWSome Day Online」は、AWSの主要サービスや基礎知識を約 2.5 時間という短い時間で、ポイントを押さえて紹介いたします。技術的な面だけではなく、AWS クラウドを学ぶために必要となる知識を身に付けたい方、エンジニアのみならず、営業職、プリセールス職、学生まで幅広い方々におすすめします。

※この回ではAWSエキスパートによる技術的な内容についてチャット形式でのQ&Aを実施します。
※AWS サービスの導入に関するご相談も同時にチャット形式にて対応します。
※2020年は毎月第一水曜日に開催します。

日時:2020 年 11 月 4 日(水) 15:00 – 18:00 終了予定 | 詳細・お申込みについてはこちら≫

AWS Black Belt Online Seminar

11 月のアジェンダを公開しました。10 月のアジェンダも併せてご確認ください。またセミナー中は内容に関する疑問点を質問することができます。参加された方だけの特権ですので、ぜひこの機会にご視聴ください。

10 月分の詳細・お申込はこちら≫

  • 10/14(水)18:00-19:00 AWS App Mesh Deep Dive
  • 10/20(火)12:00-13:00 AWS CodeCommit & AWS CodeArtifact
  • 10/21(水)18:00-19:00 Amazon VPC
  • 10/27(火)12:00-13:00 AWS IoT Core
  • 10/28(水)18:00-19:00 Amazon CloudFront deep dive

11 月分の詳細・お申込はこちら≫

  • 11/11(水)18:00-19:00 AWS CodeStar & AWS CodePipeline
  • 11/17(火)12:00-13:00 Amazon QuickSight のBI機能を独自アプリケーションやSaaSに埋め込む
  • 11/18(水)18:00-19:00 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
  • 11/25(水)18:00-19:00 AWS CodeBuild