この記事はなに?
2024/07/06 に開催された「AWS CDK Conference Japan 2024」で登壇した、「LocalstackとcdklocalでつくるCDK開発環境入門」に関する登壇内容の補足とします。
当日の懇親会の様々な人との会話を経て、登壇内容にもっと書けることがあったなーと思い、補足しよう!と思ったのがきっかけです。
Localstackは dev環境となり得るのか?
Localstackがあれば、開発環境となるAWSリソース群は必要ないのか?
今のところ、私はNoだと思っていて、dev環境は必要だと考えています。
なぜ?
稀に、イベント駆動系など、実際のAWS上で期待する挙動と異なるケースに遭遇したことがあるためです。
これは「Localstackが悪い!」と言いたいわけではなく、『当時の私の使い方 × Localstack v3.5』で得られた結果です。なので、もしかすると「そんなことないよ!」という声があるかもしれません。
ただ、上記ケースにおいて、Localstackだと少しイマイチだけれど、AWS上のdev環境だと期待する動作となるケースがありました。
なので、当時の自分の検証においては、Localstackのアレコレを更に頑張って実現するよりも、AWSのdev環境での動作が正とした方が、時間的コストがかからないと判断しました。
そのため、個人の感想として、「エミュレートは、あくまでエミュレート」、dev環境は必要だと現時点で考えています。
さらに、『シンプルに私の使い方が悪い可能性』も十分にあり得るので、Localstacker
な人が増え、「そんなことない!これでいける!」というような知見がコミュニティに出てくると嬉しいなと願っています。
余談
ちなみに、Localstack公式によって、各AWSサービスのエミュレート範囲のカバレッジが掲載されています。
こちらと実際のユースケースを考慮して、Localstackを使う・使わないの判断することもできそうです。
では、何のためのLocalstackなのか?
「少しAWSと違うのであれば、使用するケースってあんまりなくない?」という声もありそうな気がするので、私なりにメリットとユースケースを考えてみました。
メリット
- AWSサービスの利用料がかからない
- 環境がトラブっても、影響範囲が小さい
- 何度デプロイしてもいいし、壊してもいい
ユースケース
- CDKを学んで動かしてみたいけれど、AWSアカウントはまだ使いたくない場合
- CDKやSAMなどでとりあえずデプロイしたときの動作を見たい時
- プロジェクト開始などの構築の黎明期などの、とりあえず試せる環境
- 環境変数の
SERVICES
を制約して、反映されるAWSサービスを確認したい時 - 自身の手元での動作確認用
--
といった感じだと考えています。
プロポーザル段階では、「CDK学びたいけれど、AWS環境上には実行したくない人」向けに、Localstack使ってみようぜ!というような導線を考えていました。
ただ、資料を作る際にそこがスコッっと抜けていました
対象者
Localstackを知りたい・始めたい人
CDKの開発環境に悩んでいる人
最後に
というわけで、「AWS CDK Conference Japan 2024」、お疲れさまでした!
当日はかなり巻きで発表が終わってしまったので、「このあたりも資料に盛り込めておけば丁度だっただろ~~~~!!」と悔やむ気持ちがあります。
ただ、登壇を聴いていただいた方々とお話して、発表できなかった自分の意見が生まれたことを、自分でもうれしく思います。
思い返すと、概要だけのフワッとした発表だったと思いますが、前置き・自分の意見を盛り込むことを、今後の糧にさせていただきます!
またどこかでお会いしましょう!