今回は会社のチームメンバー(遠方カンファレンス初参加)を伴っての遠征でした。
が、しかし・・・
ちょっと時間を勘違いして来るのが遅れたけど会場着。#jawsug_cdk #cdkconf
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
あーなるほど途中で開始時刻が変わってたんだ(新幹線、GW頃にファミリー早特で取ってた)。 pic.twitter.com/XFB5i2jYXH
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
というわけで開場・開始とも 1 時間早まったのを知らずに会場まで来たので、着いた頃にはすでにキーノートは終わり、最初のセッションが始まっていました。
(13:00 〜 13:30 頃に入ってくる参加者が何人かいた様子なので、もしかして、同類の皆さんだったのでしょうか?)
なお現状、わたし自身は CDK をほとんど触っておらず、一緒にカンファレンス参加したチームメンバーがメインで取り組んでいる状況です。
今回は、
- CDK 初心者が初めて触れてみた話
- CDK 以外の IaC ツールをメインで使っていた視点からの CDK に対する感想
- CDK を使う上でのベストプラクティスとバッドプラクティス
- Stack 分割は極力行わない、行う場合の境界の決め方と Stack 間リソース参照、複数アカウント、テスト実装など
- CDK の活用事例
- 短期間でのサイト公開、一括ログ設定、AWS Copilot のカスタマイズなど
- CDK のマニアックな話
- 制約が厳しい状況下で CDK を利用する工夫
- 普通に CDK を使うのに必要な権限を与えられていないケース
というイメージのセッションラインナップでした。
資料は Connpass のページに公開されています。
これらのうち複数のセッションで語られたことがいくつかありましたのでピックアップしてみました。
- まずはワークショップを体験してみよう
この辺りですねhttps://t.co/Iej9vAE96A
— ryosaan (@hr0hr57) 2023年5月20日
#jawsug_cdk #jawsug
- Former 2 が便利
あれ、FORMER2なんてのが出てたのか!完全に見逃してた。https://t.co/l26oBQTg8N#cdkconf #jawsug_cdk
— 濱田孝治(ハマコー) (@hamako9999) 2023年5月20日
- 環境別のパラメーターは
cdk.json
ではなく.ts
(parameter.ts
)で
BLEAこれかー
— ちゃちい (@chatii) 2023年5月20日
> NOTE: BLEA used Context (cdk.json) to set parameters until v2.x, but after v3.0, parameter.ts is used.#jawsug_cdk #cdkconfhttps://t.co/l2NrpMuunn
(参加者の中に刺さっている人多数)
- CDK Pipelines を使ってみよう
CDK Pipelineってのがあったのか。https://t.co/IPzwqSsFt6#cdkconf #jawsug_cdk
— 濱田孝治(ハマコー) (@hamako9999) 2023年5月20日
- まずは最低限スナップショットテストからテスト実装を
嬉しい#jawsug_cdk #cdkconf pic.twitter.com/yBNvHTSJSp
— ゆっきー (@WinterYukky) 2023年5月20日
そして、話を聞いていた中での、個人的な感想も並べてみました。
まずは、環境別設定の記述の話。
ここで語られたプラクティスには同意する一方で、
以前ベストプラクティスのように言われてた手法が後にアンチパターン的に扱われるの、各所で見られる光景なのでそんなに刺されて○ななくても…。#jawsug_cdk #cdkconf
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
最初から本当にベストなものが作れるものでもない(状況が変わればベストプラクティスも変わる)ので、
- ベストプラクティスに合わせたときに実際にメリットが出るのか
- 現状採用しているやり方で実際に支障があるのか
- 現時点で特に支障がない場合、今後支障が生じるとすればどのような状況になったときか
を把握していれば過度に気にすることはない(「ベスト」に縛られすぎるのではなく、まずやってみて動くもの・使えるものを作るのが大事)と思います。
続いて、テストの話。
ここでテストの話が。
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
ツールや参照リソースがどんどんバージョンアップする中、テスト実装なしに破壊的変更がないか確認せず実行するのって怖くないのかな?と思ったり。
(最初に試行用環境で実行するにしても意図せず壊れたら面倒だし)#jawsug_cdk
とはいえ、
インフラじゃなくてアプリケーションコードのテストでも、実装の詳細までチェックするようなテストコードは書かないしなあ。#jawsug_cdk #cdkconf
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
という一方で、インフラをアプリと同じ原理原則のようなものに沿って設計・構築するのも必ずしも正しいとはいえない(類推がそのまま通用しない)し、難しいな、と。
TDDをやるのはすごく難しそう。#jawsug_cdk #cdkconf
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
ベースに CFn があり続ける以上、CFn が人間にとって親和性の高いものにならないと無理かなあ…それとも CFn から離れる?(CFn 遅いし)
そしておまけ(CDK を使うときに書く言語の話)。
正直インフラ寄りならもうちょっとGoに頑張ってほしい感がある。#jawsug_cdk #cdkconf
— hmatsu47(まつ) (@hmatsu47) 2023年5月20日
…と書いてはみたものの、Go で書く場合は構造体に限らず文字列をパラメーターに使う場合もポインタを多用しないといけないので、「IaC のためだけに言語を覚える勢」に対するハードルが高いかもしれないですね。
なお、セッションと並行して Ask an Expert ブースが用意されていたり、急遽ワークショップが開催されたり、オフラインのメリットが感じられるカンファレンスになりました。
カンファレンス本編の後は懇親会に参加してきました。
登壇者でもある、あんどぅさんが熱く語る(?)マネージャー論が印象的でした。
個人的にはマネジメント方面には行かず、今時の呼び方で言うところのスタッフエンジニアっぽい方向に向かっているので(IT インフラ出身の SRE チームメンバーなのでソフトウェアエンジニアではないのですが、最近主に取り組んでいるのがソフトウェアを中心とした技術的な課題解決や技術の導入提案だったりします)、違う組織の違う立場の方に、考えていること・思っていることを率直に語っていただけるのはありがたいです。
(その話を聞きながら、一緒に参加したチームメンバーとも今後のキャリアについて少し話したりもしました)
都合で懇親会を途中離脱し、泊まることなく当日帰宅しましたが、オフライン開催の際は、今後も(楽しんで)参加していきたいと思います。