APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

AWS CloudFormation IaC GeneratorでAWSリソースのIaC管理を楽に実現する

こんにちは、クラウド事業部の山路です。

今回はAWSのリソースをCloudFormationテンプレートで表現・管理するのをサポートするAWS CloudFormation IaC Generatorを簡単に触ってみました。

docs.aws.amazon.com

aws.amazon.com

背景

AWS CloudFormation IaC Generatorは今年2月ごろに登場した機能で、CloudFormationで管理されていないAWSリソースをCloudFormation / CDKテンプレートで表現し、IaCによるリソース管理をサポートする機能です。

AWSリソースの大半はCloudFormationが対応しており、リソースをコードで管理することができます。またAWSリソースをCloudFormation以外で新規作成をした場合も、CloudFormationのインポート機能を使い、作成後に管理することもできます。

一方で、インポートを実行するには、それを行うテンプレートを利用者が作成しなければならず、テンプレートの作成方法や関連するリソースの調査などを行う必要がありました。また、自分たちのリソースの何がCloudFormationで管理しているのかを棚卸する必要もあり、規模の大きいプロジェクトであるほどその作業は大変になります。

IaC GeneratorはAWSアカウント単位でリソースをスキャンし、CloudFormationで管理していないリソースを検出します。またインポートするリソースを選択するとテンプレートを生成しcloudFormationスタックの作成をサポートするため、上記の課題を全て解決することを期待できます。

なおIaC Generatorには以下の制限があります。

  • サポートするのは、利用するリージョンのCloud Control APIでサポートされているリソースのみです。
  • 1回のアカウントスキャン処理できるリソースの最大数は100,000個までです
  • 1日当たりのスキャン回数は、リソース数に応じて変わります。10000未満の場合は3回、10000以上の場合は1回までです。

検証

IaC GeneratorはAWSコンソール・AWS APIのどちらからも操作可能ですが、今回はAWSコンソールで操作しました。またテストのため test-vpc-for-iac-generator というVPCを事前に作成しています。

AWSリソースのスキャン

IaC Generatorを操作するため、CloudFormationメニューに移動し、画面左から IaC ジェネレーター を選択します。

IaC Generatorの画面に遷移します。ますは 新しいスキャンを開始 を選択し、AWSリソースのスキャンを開始します。

選択するとスキャンを開始し、ステータスの推移を確認できます。リソース数にもよりますが、今回は10分程度で完了しました。

テンプレートの作成・リソースの追加

スキャンを完了したので、次はテンプレートを作成します。

IaC Generator画面の下部にある テンプレートを作成 を選択します。

テンプレートの作成画面に遷移したので設定を続けます。テンプレートは新しいテンプレートを用意するか、既存のスタックのテンプレートを更新するかを選べますが、今回は 新しいテンプレートから開始 を選びます。あとはテンプレート名、削除ポリシー、置換ポリシーを設定して 次へ を選択します。

次にスキャンしたリソースの中からテンプレートに追加するものを選択します。

ここではリソースタイプ ( AWS::EC2::VPC ) でスキャンしたリソースを検索し、テスト用に用意したVPCを選択します。

次に、前頁で選択したリソースに関連するリソースを含めるか選択します。VPC作成時はRouteTable / Security Groupなど複数のリソースがついてくるので、ここでは表示されたすべてのリソースを追加します。

最後に確認画面が表示されるので、作成を行います。

作成を開始してしばらくするとテンプレートの作成が完了します。

作成したテンプレートでは、テンプレートの定義やテンプレートに含むリソース、AWS CDKに移行する場合のコマンドなどを表示します。

CloudFormationスタックにインポート

最後に作成したテンプレートをCloudFormationスタックにインポートします。

テンプレート画面から スタックにインポート を選択します。

スタック名などを設定し、リソースのインポートを実行します。

しばらくするとインポートは完了します。これでVPCと周辺リソースをCloudFormationで管理できるようになりました。

さいごに

弊社はAWSアドバンスドティアサービスパートナー認定を受けております。また以下のようにAWSの活用を支援するサービスも行っているので、何かご相談したいことがあればお気軽にご連絡ください。

www.ap-com.co.jp