Amazon Web Services ブログ

サードパーティ拡張による AWS CloudFormation と AWS CDK の機能強化

AWS CloudFormation や AWS Cloud Development Kit (AWS CDK) でサードパーティのリソースを管理できることをご存知でしょうか? AWS CloudFormation パブリックレジストリは、CloudFormation 拡張機能を検索可能な形で提供し、簡単に見つけて CloudFormation テンプレートと AWS CDK アプリケーションでプロビジョニングできるようにします。過去3ヶ月間で、GitLab、Okta、PagerDuty などの新たな素晴らしいパートナーを数多くパブリックレジストリに追加しました (訳註: 2023年3月原文公開時点)。

レジストリで利用できる拡張機能は広範囲にわたっています。MongoDB などのサードパーティのリソース、プロビジョニングにセーフガードを追加するフック、ベストプラクティスを考慮した再利用可能なコンポーネントであるモジュールなどが含まれます。AWS パートナーネットワーク(APN)、サードパーティ、開発者コミュニティがこれらの拡張機能をパブリックレジストリに提供しています。拡張機能を使用することで、お客様はサードパーティベンダーのリソースタイプのためにカスタムプロビジョニングロジックを作成やメンテナンスする必要がなくなります。

過去数ヶ月間で、AWS はパートナーと協力して、CloudFormation のパブリックレジストリに 14 のプロバイダーを対象とした 80 以上の新しいリソースを開発および公開しました。以下は、新しく追加されたリソースタイプの概要です。

直近で更新されたサードパーティプロバイダー

プロバイダー ユースケース
MongoDB Atlas MongoDB Atlas内のコンポーネントの管理。Atlas内のプロジェクト、ユーザー、データベースデプロイメントなどのオブジェクトの追加、編集、削除。
GitLab 組織内のユーザーとグループの管理、ユーザー、グループ、アクセストークンを使用した新しいプロジェクトの設定、アクティブなCI/CDデプロイメントごとにプロジェクトへの自動的なタグ付け。
New Relic カスタムページ、ウィジェット、レイアウトを使用した新しいダッシュボードの作成。データの組織化と検索性の向上に役立つデータへのタグの追加。ワークロード関連のタスク。
GitHub 組織内のユーザーとグループの管理。ユーザー、グループ、アクセストークンを使用した新しいプロジェクトの設定。リポジトリへの webhook の追加。
Dynatrace サービスレベル目標、ロケーション、モニター、メトリクスを使用した新しいプロジェクトの設定。
Okta ユーザーとグループを使用した新しいアプリケーションのオンボーディング。
PagerDuty 新規または既存のアプリケーションのモニタリングの設定。
Databricks Databricks クラスタとジョブの設定。
Fastly WebアプリのCDNとしてのFastlyの構成
BigID BigIDアプリケーションのS3およびDynamoDBデータソースへの接続
Rollbar 新しいRollbarプロジェクトの設定とルール、チーム、ユーザーの管理。
Cloudflare Cloudflareを使用したDNSレコードとロードバランシングの構成。
Lacework Laceworkのアラートプロファイル、ルール、チャネルの構成とクエリの管理。
Snowflake データベース、ユーザーの作成、権限の管理。

主なメリット

パブリックレジストリへの拡張機能の公開には、拡張機能の開発者と利用者の両方に次のようなメリットがあります。

  1. 発見可能性 – パブリックレジストリに拡張機能を公開することで、100万人以上のアクティブな CloudFormation および CDK の利用者から見つけられるようになります。
  2. CDK のサポート – 開発者の間で AWS CDK の採用が急速に拡大しています。レジストリへの公開時に、追加作業なしで自動的に L1 CDK コンストラクトがサードパーティリソース用に作成されるため、CDK との互換性があります。これらのコンストラクトは Construct Hub にもリストされ、利用者による発見可能性が向上します。
  3. ドリフト検出 – パブリックレジストリのサードパーティリソースタイプは、ドリフト検出とも統合されます。サードパーティリソースタイプからリソースを作成した後、CloudFormation はテンプレート構成からのサードパーティリソースの変更を検出します。これはドリフトと呼ばれ、AWS リソースと同様に機能します。
  4. AWS Config – サードパーティリソースをレジストリから作成すると、AWS Config を使用してコンプライアンスを管理できます。CloudFormation を使用して作成、更新、削除した場合、リソースタイプは自動的に設定項目が追跡されます。使用するリソースタイプがサードパーティまたは AWS リソースのいずれであっても、変更履歴を表示でき、ベストプラクティスを検証する AWS Config ルールを記述できます。
  5. モジュールによるベストプラクティスの抽象化 – レジストリからモジュールを参照および使用して、CloudFormation テンプレートを作成し、ベストプラクティスに従ってリソースをプロビジョニングします。
  6. AWS Cloud Control APIAWS Cloud Control API を使用すると、API 呼び出しを使用して Create、Read、Update、Delete、List(CRUD-L)操作でリソースを操作できます。レジストリのリソースはAWS Cloud Control API と自動的に統合され、サードパーティリソースの互換性がさらに多くの AWS サービスと IaC ツールに拡張されます。

昨年は、パートナーと開発者コミュニティの両方から大きな支援がありました。パブリックレジストリへの継続的な投資とイノベーションを楽しみにしています。

はじめ方

リソースタイプのユーザー向け: サードパーティリソースタイプを探索してアクティブ化する

サードパーティのリソースタイプは、使用する前にまずアクティブ化する必要があります。AWS コンソール> CloudFormation > レジストリ> パブリック拡張機能> パブリッシャーをサードパーティに設定 を選択します。これにより、リージョンで使用できるサードパーティリソースのリストが表示されます(リージョンによって使用できるサードパーティリソースタイプは異なる場合があります)。アクティブ化するリソースタイプの横にあるラジオボックスを選択し、リストの一番上にあるアクティブ化ボタンをクリックします。

 AWS Console > Navigate to CloudFormation > Registry > Public extensions > Set the Publisher to Third Party

必要な拡張機能がレジストリにない場合はどうすればよいでしょうか?

Community Registry Extensions Github リポジトリの Issue トラッカーから新しいサードパーティ拡張機能のリクエストを送信できます! [New Issue] ボタンをクリックし、ユースケースに関する情報とともにサードパーティ拡張機能について説明してください。

開発者とパブリッシャー向け: CloudFormation 開発者コミュニティに参加して開発を開始する

AWS CloudFormation Community Registry Extensions リポジトリで、コミュニティによる拡張機能をご覧いただけます。あなた自身でコントリビュートもできます。また、Cloudsoft 社によるこのブログを通じて、レジストリへの公開の経験と学んだ教訓について読むこともできます。
パブリックレジストリに追加する新しいリソースタイプを作成する開発者は、このリソースタイプの作成のチュートリアルから始められます。リソースの作成、公開、またはディスカッションへの参加に関する支援が必要な場合は、CloudFormation Discord チャンネルで会話に参加できます。レジストリ拡張機能によるイノベーションの経験やユースケースについてお聞かせください。

本記事は、Anuj Sharma、Lucas Chen、Rahul Sharma による “Extending CloudFormation and CDK with Third-Party Extensions” を翻訳したものです。

翻訳はソリューションアーキテクトの山崎 宏紀が担当しました。