echo("備忘録");

IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。

【JAWS-UG】JAWS DAYS 2021 -re:Connect- で登壇しました。

はじめに

2021/03/20(土) にオンラインで「JAWS DAYS 2021 -re:Connect-」という、JAWS-UG(Japan AWS Users Group)のイベントが開催されました。

jawsdays2021.jaws-ug.jp

少し前から告知していましたが、このイベントで「AWS Lambdaのテストで役立つ各種ツール」という内容で登壇しましたので、今回はそのお話です。

登壇内容の概要

概要としては、2021/1/6(水) の「Serverless Meetup Japan Virtual #14(以下serverlessjp)」の登壇内容である「Serverless Framework Pluginで行うLambdaテスト」をベースに、その際お話しできなかった下記の内容を追加した形です。

  • aws-sdk-mockの紹介
    • serverlessjpでは、時間の関係まるまるカットした部分です。
  • メリット・デメリット(注意点)
    • serverlessjsの時より、一歩深いとこに踏み込んでます。

また、紹介したツールは以下の通りです。

  • aws-sdk-mock
  • Serverless Framework
  • Serverless Offline
  • Serverless DynamoDB Local
  • Serverless S3 Local

セッション資料&GitHubソース

セッション資料

www.slideshare.net

GitHubソース

github.com

目的(伝えたかった事)

テストをより便利かつ効率的に

自動テストについて、いろいろなやり方がありますので、その一例を紹介したかったのがあります。

例えば単体テストはともかく、結合テストってなかなかローカルで実行するのが難しい部分があります。(例えばDockerで環境を作成したり...でしょうか)

また、「結合テストは開発(またはテスト用)のAWSにデプロイしてE2Eテストで...」ということも少なくないと思います。

そのような時に「ツールを使うことで、ローカルでもある程度結合テストができる」というのを知っていると、例えばコスト面、および工数面などでも違ってきますし、ローカルテストも導入しやすくなる、と思いました。

ただし、「E2Eテスト自体を省略できる」ということではありません。
というより、いくらローカルで結合テストを行ったとしても、最終的なE2Eテストは必要だと思います。

自動テストの導入

僕自身が昨年から自動テストを導入して、自動テストの恩恵を受けまくっているので「絶対に自動テストは導入してほしい!」というのを伝えたかったです。

なかなか自動テストは導入が難しいし「そんな時間あるならプロダクトコードを...」と思ってしまいがちですが、本当に受けられる恩恵が大きいので、そういった意味で、今回資料に単体テストを追加しました。

また、その際にどうしても「AWSリソースの処理のMock化」がネックになってきますが、それを行うのにとても便利だった経験から、aws-sdk-mockを紹介しました。(登壇資料にも記載しましたが、E2Eテストでの再現が難しい「AWSリソースの処理でエラーになった場合」のテストを行えるのが大きなメリットです)

感想・反省点など

運営の方々の対応が素晴らしかった

正直、大きなイベントということもあり、不安もありましたが、運営の方々の対応が本当に素晴らしかったので、そこまで大きなトラブルはありませんでした。

この場を借りて、お礼を申し上げたいと思います。

あまり参加できなかった

当日が結構プライベートで予定が詰まっており、あまり他の方のセッションを聴くことができなかったのが残念でした。(なのでアーカイブ動画の公開が楽しみです)
またトークにも参加できなかったので「もっといろんな方とお話ししたり、繋がりを持ちたかったなあ...」という反省が残ってしまったのも残念でした。(「縁」というのはいろんな意味で、非常に大事ですからね)

次回はちゃんと都合をつけて、フルで参加できるようにしたいです。(ただ地震の影響で、懇親会自体は急遽中止になってしまいましたね。でも正しい対応だと思います。)

終わり良ければすべて良し(遠い目)

僕のセッションの終わり方が中途半端な終わり方で「途中で切れた?」みたいに思われた人もいたようです。(実際、途中で切れたんだけど)

微妙な時間の残り方をした関係で、「終わりにします...か?デモをやります...か?」みたいな感じにしてしまったのが良くなかったと思います。

なので、次回があるならば、その点はしっかり修正したいと思います。

まだまだ知らないことが山ほど

後で他の方のセッション概要や資料を見たのですが、とても有用な内容がいっぱいあり、「またまだ勉強することが山ほどあるなあ」と思いました。

個人的な感想として、他の人のセッションは設計や運用に関わるような部分が多く、自分がまさに知りたい部分なので、次回があればそういう部分で何か登壇したいと思いましたし、それができるようにもっと学ばなければ、と思いました。

最後に

JAWS DAYSは「聴く側」として参加経験があるのですが、「登壇側」としての参加は初めてだったので緊張しましたが、終わってみれば本当にいい経験だったと思います。

来年はオンライン/オフラインどちらになるかはわかりませんが(個人としてはオフラインがいいなあと思っていますが)、また可能であれば登壇者として参加できればなあ、と思っていますし、それができるように自分も今以上に努力しなければ...と強く思いました。

また、今回学んだ知識を業務でも活かしたいですし、活かせる環境で働きたい。
そして、それができるようにならなければならない、とも強く思いました。

最後になりますが、運営の方々、セッションを聴いてくださった方々、ツイートなどで盛り上げてくれた&感想などをしてくれた方々、本当にありがとうございました。

それでは、今回はこの辺で。