今回はCloudformation、「DEV317-R - [REPEAT] Deep Dive on AWS CloudFormation」の参加レポートです
会場は他のセッションと違い、Theatreを使っており独特な雰囲気があるよいところでした。
DeepDiveだけあって基本機能の紹介は一切なく、直近提供した/提供予定の機能がProductManagerとAdvocateの方から紹介がありました
ツアー参加者向けのwrapupでも出て来ないくらいの情報でしたが価値はあると思ったのでまとめます。
12/6追記
本セッションの動画が公開されていますのでリンク張っておきます
https://www.youtube.com/watch?v=01hy48R9Kr8
Stackの削除保護機能
Stackを間違って消してしまうことがないように保護する機能。
Cloudformationは複数のリソースを一気に作れるのはよいですが、間違った操作をするとひどいことになります。そうならないように追加した機能とのこと。
これはすでに実際の環境に適用されています。
初期状態で保護になっていないリソースもあるのでCloudformation使っている方は一度チェックしてみてください
スタックの概要タブに追加されています
Stackのdrift管理(コンソールなどから設定を変更したことがわかる)
これはすばらしい機能拡張。
Cloudformation使っててよくあるのが、少しの設定変更の際にいちいち設定ファイルを直すのではなく画面からぽちっとやってしまうこと。開発者以外がやってしまうケースもあり、気づけないところがたちが悪い。
そういうことが想定されるケースでは、最初だけCloudformation使って一気にリソースを作ってあとはコンソールから触ることにするという運用ルールにしていましたが、この機能でInfrastructure as a Codeの徹底ができます。ほんとすばらしいです。
少し見づらくて申し訳ありませんが、DriftStatusというところで確認可能です
しかも差分まで表示されるという。
※12/6 見にくかったので画像置き換えました
2018年の早めには提供予定とのことでしたので待ち遠しいですね。
AWS Configを使ったStackの変更履歴管理
AWSConfigを使ったことがなく、どういった使い方になるのかわからないのですが、画像にあるように視覚的にどんな変更がいつ行われたのかを確認できるような機能が追加されるようです
CloudformationのParameterの値とかに使われるのですかね・・?
リージョン、アカウントを超えたプロビジョニング
システムによっては環境ごとにアカウントを作成することがあるかと思いますが、そういった場合でも一気にCloudformationで作れますという機能。
正直なところ、各環境で作るので特に困っていない(というかテスト環境から本番環境触るの嫌です)のですが、テスト環境が複数必要な場合には重宝するのかもしれません。
以下のようなコンセプトだとのこと。複数のStackをStackSetという概念でまとめます
デモで紹介されていた画面です。ここで対象アカウントやリージョンを選択します。
バリデーション!
アジェンダにバリデーションと書かれていたので期待していたのですが、ここは期待外れでした。
以下の構成にあるように、CodeBuildやLambdaを使って個別に検証ロジックを実装しているだけのようでした。Lambdaでやればできるのはわかりますが、変更頻度に対して維持コストが高すぎるかと。。
既にどこかにあるかもしれませんが、Lint的なもので構文チェックしてくれるだけで十分価値があるのですがどうなのでしょう。
それとも何かのIDEで設定ファイル簡単に作れるのですかね?
感想
バリデーション部分は残念だったものの、保護機能やdrift機能など期待できるものが多くありました。
数々の新サービスが目立って、古くからあるサービスの情報は一切流れていませんが、着実に成長しているということはありがたいことです。
#世間的にもterraformとか3rd partyツールに流れてあまり使われていないんですかね・・?