[レポート] DEV372 AWS CDKによるインフラコード化 #reinvent

re:Invent 2018のセッション DEV372 Infrastructure Is Code with the AWS Cloud Development Kit のレポート
2018.11.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事はAWS re:Invent 2018のセッション「DEV372 Infrastructure Is Code with the AWS Cloud Development Kit」 のレポートです。

セッション概要

The AWS Cloud Development Kit (AWS CDK) is a new open-source framework from AWS that enables developers to harness the full power of modern programming languages to define reusable cloud components and applications and provision them through AWS CloudFormation. The AWS CDK is shipped with a rich class library that encapsulates the details-defining infrastructure on AWS and enables you to focus on your application. In this session, we discuss why we decided to build the AWS CDK; we describe some of the high-level concepts; and we write some code on stage to demonstrate why we think the AWS CDK is going to be your best friend.

スピーカーは以下のお二人。

  • Jason Fulghum - Software Development Manager, AWS SDKs and Tools
  • Elad Ben-Israel - Principal Software Engineer

レポート

インフラをプロビジョニングする方法は5種類。

  1. 手動
  2. スクリプト化
  3. プロビジョニングツール
  4. Document Object Models (DOM)
  5. AWS CDK

手動

ポジティブ
簡単に始められる。

ネガティブ
再現的ではない。
エラーを起こしやすい。
時間がかかる。

スクリプト化

ポジティブ
再現性がある。

ネガティブ
APIコールでエラーが発生しても何が悪いのかわかりにくい。
更新の管理はどうするのか?
リソースが使える状態になったことを知るすべは?
ロールバックは?

プロビジョニングツール

CloudFormationやTerraformのこと。
ポジティブ
自動化が容易。
再現性がある。

ネガティブ
構文をおぼえなければならない。
細かいことたくさん。

Document Object Models (DOM)

ポジティブ
リアルコード!
期待通りの状態になる

ネガティブ
抽象化されていない。 例えばVPCだけで218行

AWS CDK

※まだプレビューリリースの状態です。
Cloud Development Kit、略してCDK。
インフラストラクチャをコードで記述するための開発フレームワーク。
CDKのライブラリを使い、普段使っている言語でAWSサービスをコード化。

現在サポートしている言語は以下。

  • Java
  • JaveScript, Type Script
  • .Net

PythonはComing Soon。

軽くデモを開催。

裏側の処理はこうなっている模様。

さいごに

CDKのプレビューリリースは こちら で公開されています。
CloudFormationでは難しかった条件分岐やループなどが出来るようになるかもしれません。
これから触ってみます。