AWS CDK レイヤーガイド - AWS 規範ガイダンス

AWS CDK レイヤーガイド

Amazon Web Services (AWS)、Steven Guggenheimer

2023 年 12 月 (ドキュメント履歴)

AWS Cloud Development Kit (AWS CDK) を支える主な概念の 1 つは、寒い日に暖かく過ごすための考え方によく似ています。この考え方をレイヤリングといいます。寒い日には、シャツの上にジャケットを着、寒さによってはさらに厚めのジャケットを羽織ることもあるでしょう。その状態で室内に入ったときに、暖房が効いている場合は、暑くならないように、一方または両方のレイヤー、つまりジャケットを脱ぐことができます。AWS CDK では、レイヤリングによって、クラウドコンポーネントを使用するためのさまざまな抽象化レベルを実現しています。レイヤリングの仕組みがあれば、Infrastructure as Code (IAC) スタックのデプロイ時に、必要以上に多くのコードを記述したり、アクセス権が少なすぎてリソースプロパティにアクセスできなかったりすることがなくなります。

AWS CDK を使用しない場合は、手動で AWS CloudFormation テンプレートを記述する必要があります。つまり、1 つのレイヤーしか活用できず、通常必要な数よりもはるかに多くのコードを記述せざるを得なくなります。一方、CloudFormation では通常、記述が不要なものの、それらが AWS CDK によってすべて抽象化されると、エッジケースに対応できなくなります。

この問題に対処するために、AWS CDK では、リソースのプロビジョニングを 3 つの異なるレイヤーに分割します。

  • レイヤー 1 CloudFormation レイヤー: 最も基本的なレイヤーであり、CloudFormation と AWS CDK のリソースは、ほぼ同じです。

  • レイヤー 2キュレートされたレイヤー: CloudFormation リソースがプログラムクラスに抽象化されるとともに、内部にある CloudFormation ボイラープレート構文の多くが合理化されるレイヤーであり、AWS CDK のほぼ全体を占めています。

  • レイヤー 3パターンレイヤー: 最も抽象化されたレイヤーであり、ここでは、レイヤー 1 と 2 が備える構成要素を使用して、特定のユースケースに合うようにコードをカスタマイズできます。

各レイヤーの各項目は、特別な AWS CDK クラスのインスタンスであり、これを Construct と呼びます。AWS ドキュメント では、こう説明しています。「コンストラクトは、AWS CDK アプリケーションの基本的な構成要素で、クラウドコンポーネントを表すものです。これによって、AWS CloudFormation でのコンポーネント作成に必要なあらゆる要素をカプセル化します」。こうしたレイヤー内のコンストラクトを、それらが属するレイヤーに応じて L1L2L3 コンストラクトと呼びます。このガイドでは、各 AWS CDK レイヤーを解説しながら、その用途や、レイヤーが重要である理由を明らかにしていきます。

このガイドは、AWS CDK が動作するための主な概念を深く掘り下げたい技術マネージャー、リーダー、開発者を対象にしています。AWS CDK は、広く利用されているツールですが、それが持つ機能の大部分が見落とされがちです。このガイドが示す概念を理解し始めると、新たな可能性の世界を導き出し、チームのリソースプロビジョニングプロセスを最適化できるでしょう。

このガイドの内容