AWS Dev Day 2023 Tokyo 忘備録（個人メモ）

AWS Dev Day 2023 Tokyo に参加して印象に残ったセッションの資料と学び・感想を忘備録として残したいと思います。


## 『質とスピード』特別編 〜 現代のソフトウェア開発にキャッチアップしていくヒント〜
https://speakerdeck.com/twada/quality-and-speed-aws-dev-day-2023-tokyo-edition

### 気付き・感想

#### 「質とスピード」はトレードオフではない。

- クソコードを書く人は時間をかけてもクソコードしか書けない
- 質とは保守性のことと定義
- テストコードを書かないと、開発速度が落ちていく。手動テストを4回するあたりが損益分岐点
- 遠い未来（数年後）ではなく、1ヶ月後にはテストがないことによる不利益を受ける
- 「質とスピード」は「教育」がトレードオフになる。  
  つよつよのエンジニアを集めれば、質とスピードは上がる

#### 与えられた時間に対して、やることが多い場合
1. 品質を犠牲にする
1. スコープを削る
1. 人を増やす
1. 締め切りを伸ばす
上記のうち2,4が筋が良い。ただ、2が一番望ましい。（締め切りを伸ばすと癖になる。アジリティーが落ちるなど問題がある）

#### その他

運良く、レセプションで和田さんとお話しさせていただく機会があったので、そこでいただいた気付き・学びもこちらに書き記しておきます。

- AWSだからこそテストを書く。ユニットテスト絶対書く。動作検証を実際に動かすのではなく、テストで挙動を確認すると良さそう。
- E2Eテストは少なめにする。正常系のテストを網羅しておく。
- テストはやっぱりモックではなくフェイクを使用すべき。  
  モックだと自作自演のテストになり、本番環境の挙動が変わると意味がなくなってしまうので、フェイクを使った方が良い。
- フェイクとはLocalStackのようにAWSと同じ挙動をローカルで再現してくれるツールを使用する。（テストするときはLocalStackをDockerで立ち上げる）
- AWSから公式にリリースされてるDocker Imageがあればそちらを使うのが望ましい。



## モノリシック Lambda の何が悪い！ モノリスファーストなサーバーレス開発
https://speakerdeck.com/_kensh/monolith-first-serverless-development

### 気付き・感想
- lambdaを使う場合、アーキテクチャはイベントドリブン、非同期にできないか熟慮する。
- lambda内でマルチスレッドを実装するとlambdaの機能を最大限活用できない。（lambdaがうまくスケールしない）
- アーキテクチャ（デザインパターン）に思考をロックされない。
- lambdaから見た、モノリスとマイクロサービスとWEBアプリケーションから見た、モノリスとマイクロサービスは違う。
- lambda layer は枯れた日機能要件に使うと良い。
- Lambda Web Adapter 知らなかったちょっと使い方を調べる。
- Lambda SnapStart 多言語対応待ち遠しい。（現在はJava系しか対応してない）


## 「成長を続ける SaaS の AWS コスト管理において開発者としてできること」
https://speakerdeck.com/taishin/aws-devday-saas-cost

## 気付き・感想
- 「ユニットメトリクス」という言葉自体知らなかった。
- 自社でもビジネス指標を設定し、コストの監視をしたいというモチベーションが湧いてくる良いセッション。
- リソース管理にはタグを有効活用すると良いというのも、改めて勉強になった。（タグマネージャーを使用）


## サーバーレスで実現する高品質マルチテナント SaaS プロダクトの秘訣
資料なし

## 気付き・感想
- API Gateway Lambdaオーサライザーはエンドポイントごとに細かく認証（権限）などを設定できるのでかなり便利そう。
  ユースケースを知れて、良い学びになった。
- テナントごとにcognitoのユーザープールを発行する手法は面白いと感じた。
  そうすることによってテナントごとにより細かな設定をすることができるようになる。
  ただし、アカウントあたりのユーザープール数にクォータ（制限）があるので、ビジネス要件にマッチするかは確認が必要。


## クイズ形式で挑戦 ! AWS のアーキテクチャ改善を実践してみよう!
https://speakerdeck.com/sugikeitter/dev-day-2023-lets-improve-aws-architecture

## 気付き・感想
- AWSの認定試験を近くの人と相談しながら解いていく素敵なセッション。
- 半分くらいわからない問題があった。
- 隣の人と話しながらできるのとても良かった。ディスカッションは今回おまけのような感じだったと思うけど、そこの比重をもう少しあげるとまた面白いセッション（ワークショップ）になるかも


## Amazon CodeCatalyst ワークショップ：最新の DevOps サービスを使った開発を体験してみよう！
https://catalog.workshops.aws/integrated-devops/ja-JP

## 気付き・感想
- 事前準備の問題かコンテンツの問題か、期待する挙動にならない箇所があり講師陣が苦労されていた印象。
- ただ、ワークショップの機会がないと多分触らないだろうと思われるサービスを触ってみる機会は非常にありがたかった。
- トラブルはありつつも、デプロイと変更まで体験できたので非常に満足のワークショップでした。
- ワークショップの資料が公開されているので、個人の環境でいじり倒してみたい。（思ったよりも面白そうなサービスだった）


# セッションは見れなかったけど資料だけでも見返すやつ

## BLEA開発チームが学んだAWS CDKの開発プラクティス 2023年版
https://speakerdeck.com/konokenj/blea-cdk-dev-practice-2023

BLEA 自体を知らなかった。知ってたら多分聞きに行ってたセッション（悔しい）
https://aws.amazon.com/jp/blogs/news/announcing-baseline-environment-on-aws/

## 実践！モノリスからマイクロサービス！Event Stormingによるドメイン駆動設計から実装まで
https://speakerdeck.com/fatsushi/aws-dev-day-2023-e-3

クイズ形式で挑戦 ! ... に参加していたため断念したセッション。オンデマンドに期待してます。

## SQS + Lambda という⾮同期処理 ⻩⾦パターン再⼊⾨ #AWSDevDay / SQS-Lambda-DevDay2022

https://speakerdeck.com/pikosan0000/sqs-lambda-devday2022

Amazon CodeCatalyst ワークショップに参加していたので断念。直前までめちゃくちゃ悩んだセッション。


## その他　まだ中身確認してない資料

https://speakerdeck.com/gotok365/aws-dev-day-cdk-gof-design-patterns

https://speakerdeck.com/ugnom/awsdevday-2023-tokyo-e1-distributed-transactions

https://speakerdeck.com/twingob/shi-bai-zhi-shi-karaxue-bu-kuraudoapurishe-ji-debi-kerubekishi-li-tosonodui-ce

https://speakerdeck.com/gawa/modern-frontend-design-pattern

https://www.docswell.com/s/a-zara-n/5248R9-devday?utm_source=twitter&utm_medium=social&utm_campaign=singlepage

https://speakerdeck.com/yuukiyo/is-agile-development-really-necessary-and-what-does-it-solve