啓(152)48この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。Preview版であるが故に以下の文言が強調して記述されています。production.まだまだ破壊的変更が入るから、本番でまだ使うんじゃねえぞという開発側の強い意思を感じます。今後来ると思う、いや来てくれるはず、むしろ絶対来てほしい、という気持ちなので、是が非でも応援していきたい所存。お願い開発チーム!CloudFormationはCloudのインフラリソースをjsonやyamlに記述し、コードで管理することができます。Codeを体現しているサービスと言えます。yamlやjsonをコードということに若干の違和感が・・・。プログラミング言語であるHTMLと言われているようななんとなくモヤモヤするようなものがありました。インフラのリソースが記述、制御できます。CloudFormationをどうしても使いこなせなかった自分にインフラの制御・管理ができるようになるワンチャン到来です。CDKの機能の一部を実際に利用してみます。これを使えば、インフラ側のエンジニアの人たちとスムーズにやりとりを行うためのプログラマ側の良きツールとして活躍してくれるのでは、という淡い期待を胸にWorkshopを覗いてみましょう。CDKは各種プログラミング言語でAWSのインフラリソースの構成を記述し、制御することができます。中間生成物としてCloudFormationテンプレートを出力するため、万が一ツールがオワコン化しても記述して生成したリソースはそのまま引き継ぐことが可能です。CDKを知らない人でもCloudFormationテンプレートを読んで理解することができるという利点があります。CDKをプログラマが利用するモチベーションとして、既存のプログラミング言語で記述ができるため、プログラミング言語の様々な制御構文や便利なライブラリを利用することが可能ということが大きいかと思います。CloudFormationテンプレートでの制御も可能ではありますが、プログラミング言語と比べるとどうしても可読性が落ちてしまうではないかというのが個人的な感想です。*1Workshopを試すWorkshopの内容はTypeScriptで構成されています。そのままWorkshopを試すのも良いですが、折角なので別の言語で試してみましょう。いうことでJavaを選択します。大きな作業の流れは以下のとおりです。DeployでResourceを作成Invokeではやっていきます。執筆時点での環境このツールは開発中のためすごい勢いでアップデートされています。現時点での自分の環境は以下のとおりです。init手始めにプロジェクトの雛形を作成しましょう。指定するとともに、アプリケーションかライブラリを指定します。*2Workshopの手順に沿ってはじめにディレクトリを作成し、移動しておくことをおすすめします。documentationEnjoy!mavenプロジェクトとしてJavaアプリケーションのサンプルアプリケーションが構成されます。サンプルアプリケーションの簡単な概要の説明もありますね。HelloConstruct)。クラスから生成されるインスタンスが2つあるようです。CompileJavaの場合はソースを変更した際にはCompileが必要です。Compileをスキップした場合コードの変更が反映されないのでご注意ください。mavenプロジェクトで構成されているためCompileにはmavenを利用します。実行するとCompileと同時にテストも実行されます。構造をざっと確認します。アプリケーションのエントリポイントです。mainメソッドが定義されています。同じStackクラスを2つインスタンス化しています。Bucketをfor文を使って生成するコードが記述されています。利用するプロパティビルダーのコードです。Stackのコードになります。SQSのリソースの作成、HelloConstructのインスタンス化などが記述されています。Bucketをいくつか生成するコードになっています。Bucketまで作成されてしまいます。TypeScriptのサンプルアプリケーションに合わせてコードを削ります。}}同じStackクラスを2つ生成する必要がないので削除。こちらをインスタンス化している箇所をHelloStackから削除します。}}ひとまずこれで最小限まで削りました。この段階でCloudFormationテンプレートを出力してみます。...続いてテンプレートの出力。