AWSは、AWS Cloud Development Kit(CDK - オープンソースプロジェクト)のコンポーネントであるCDK Migrateの一般提供(GA)を発表した。CDK Migrateは、開発者がAWS CloudFormationテンプレート、以前にデプロイされたCloudFormationスタック、またはInfrastructure as Code(IaC)の外で作成されたリソースをCDKアプリケーションへの移行を可能にする。
CDK MigrateのGAリリースとともに、同社はCloudFormation IaC Generatorも発表した。これは、開発者がCloudFormationの外部で作成されたリソースをテンプレートにインポートし、新しく生成されたフルマネージドのCloudFormationスタックにインポートするのに役立つ。
AWSでのリソースの作成と管理には、AWS Console経由の "ClickOps"、AWS API、Infrastructure as Code(IaC)など、さまざまな方法が存在する。IaCでリソースの管理を推奨しているが、始めたばかりのうちは、コンソールの使用に頼ることが多い。コンソールの使用は、小規模なケースでは十分だが、複雑さが増すにつれて面倒になり、主に複数のアカウント、環境、またはリージョンにわたって設定を複製するときに潜在的なエラーにつながる。
AWSのシニアテクノロジストであるAdam Keller氏は、次のように書いている。
IaCは、ユーザーが一度定義すればどこにでもデプロイできるため、この問題を解決することに役立つ構築になっています。IaCへの移行を先延ばしにしてきた人々にとって、今こそIaCジェネレーター機能とCDK Migrateで移行を加速・簡素化し思い切って移行する時だと思う。
しかし、彼はツイートで限界についても言及している。
私はこの機能と、この機能を使ってできることにとても興奮しています。とはいえ、いくつかのリソースタイプをインポートする際には制限があります。これを見てください:https://t.co/jKV2WR6LrR
CloudFormationテンプレートからCDKへの移行は、cdk migrateというコマンド一つでできる。コマンドを実行した出力と結果は、CDKのコードと依存関係で構成されたディレクトリになるが、スタックはデプロイされない。CDK CLIはテンプレートを変換し、CDKアプリケーションに必要な依存関係とともにプロジェクトフォルダを作成する。
CDK Migrateコマンド(出典:AWS DevOpsブログポスト)
出力は、デプロイの準備が整ったCDK Typescriptアプリケーションの雛形となる。デプロイの前に、開発者はcdk bootstrap コマンドを実行する必要があるかもしれない。これは、CDK がリージョンとアカウントにリソースを適切にデプロイするために必要なアセットを作成する。次に、cdk diffを実行して、何が配置されるかを確認できる。これは変更セットを作成し、提案されている変更を表示します。そして最後に、cdk deployコマンドを実行することで、スタックをデプロイできる。
AWSサーバーレスの第一人者であるYan Cui氏は、CDK Migrateへの熱意をツイートで表明した。
私はCDKのファンではありませんが、これはかなり魅力的だと思います。
sheraz氏はこのように答えている。
私がこれまで見てきたのは、AWS CFNであれterraform HCLであれ、システム管理者出身の人は宣言型スタックを好み、開発者出身の人はCDK/Pulumiを好むということです。
そして、AWSのセキュリティリーダーであるTeri Radichel氏は、長文のツイートでこう述べている。
CloudFormationを学びたくない、あるいは書きたくない人がCDKを使う理由はわかる。しかし、CDKはボンネットの下でCloudFormationを書いている…。
レイヤーが役に立つこともあります。レイヤーは物事をより速く終わらせるのに役立ち、CDKはそれを可能にするかもしれません。しかし、私にとっては、CloudFormationを学び、自分の組織のガバナンス標準に沿った再利用可能なテンプレートを作成し、レイヤーをなくす方がいい。誰かがCDKを使って最初のテンプレートを作りたければ、それは素晴らしいことです。しかし、テンプレートをソースコントロールにチェックし、ドリフトを検出する必要があります…。
CDKは、CloudFormationの書き方を知らない人、学びたくない人を助けるツールだと思っていました。テンプレートを書くシステムにテンプレートを送り込むのは、私には意味がないように思えますが、それは人それぞれです。
最後に、詳細なガイダンスはベストプラクティスガイド、CDKワークショップ、YouTubeチャンネルのCDK Live!で閲覧可能だ。