初参戦SRE目線：AWS re:Invent 2023 参加セッション25個の感想

AWS最大のイベント「re:Invent」に今年初参戦した際の、参加（& 視聴）セッション全25個の感想まとめです。

2000以上のセッションがあった中のほんの一部ですが、今年の配信を見られる方や、来年以降にre:Inventへ参加される方の参考になればと思います。

- セッションタイプ別、1つのタイプ内は日時順
- タイトル横の★は完全に私見の5段階評価（星1 ★☆☆☆☆ ～ 星5 ★★★★★）
- セッション内の箇条書き箇所と "" は内容のメモ、それ以外は感想


# 属性
どういう人が見ておもしろかったのかわからないとピンとこないと思うので、自分の属性を紹介
* B2BのパッケージソフトとそのSaaS版を提供する会社で、SaaSの方のSRE部門マネージャー
* 利用AWSサービスはEC2, ECS (on Fargate), EFS, S3, RDS, SSMなど、サーバーレス少なめ、AI/ML系はほぼ経験無し
* AWS保持資格はSAP, DOP
* 主な関心事はSaaSインフラの信頼性、パフォーマンス、運用の効率性、コスト、最近は生成AIも


# Keynote [配信あり]
- CEO, CTOなどが話す一番大きなセッション
- 1日1つ
- 配信あり

内容の純粋なおもしろさというよりは、ライブ感、新サービスが眼の前で続々発表されるワクワク感で評価が上がっている。発表内容はたくさん記事があると思うので感想のみ。

### ★★★★★ KEY001 | Monday Night Live with Peter DeSantis 
https://youtu.be/pJG6nmR7XxI?si=_o0WTNAHGPmoOf3C

初日夜のキーノート。19:30開始で18:25から並んで結構最初の方だったが、意外と近くない席に案内される。バンドの爆音が鳴り響き、キーノートというよりはライブイベント。ComputingのVPなので、Computing関連を深掘りしていく発表。

Grover, Nitro, Caspianと内部的なプロジェクト名たくさん。Caspianは聞いたことがなく、あまりこういったセッション視聴していないので、新たに公表された事実なのか、過去のおさらいなのか区別がつかず（実際は今回が初公開のものだった）。JavaのXms, Xmxの関係のように見える。

Aurora Limitless Databaseは、最近記事も見たTiDBなどと同じ方向性なのか? この発表だけでは判断つかず。TimeSyncServiceのマイクロ秒サポートも最近アップデート入ったというのを知らなかった。知らないことだらけ。


### ★★★★★ KEY002 | Adam Selipsky Keynote
https://youtu.be/PMfn9_nTDbM?si=plaDBGI2rZK5FyvI

2日目のCEOキーノート。このキーノートだけは同時間帯に他のセッションが全く無く、全員聞けよという圧がある。もちろん新サービス発表盛りだくさんで楽しい。今回は並ぶのが遅れて別会場（オーバーフロー会場）へ。いっぱいになる度に別のところへとたらい回しにされるので、時間がかかる。

OpenAIのGPTような人気のFoundation modelをawsは持ってない。それが弱みとなるのか、いろんなモデル選べるよという強みになるのか。Claudeを開発するAnthropic CEOに対しては、"AWSの最初の頃を見ているようだ。最先端を貪欲に開拓し続けている。" というコメントが印象深い。Fine tuningとRAGの話は、みんな1年前には使わなかった用語を当たり前に使っているのがおもしろい。

Bedrockエージェント。Lambdaとデータソースとモデルを選ぶだけでカスタムした生成AIを呼べる。embeddingのためにS3とかにドキュメントファイル上げるだけとかでokになるなら、めっちゃ簡単。と思ったが、データソースはドキュメントを上げるだけというわけではなくて、事前にopen search serverlessなどでベクター情報のデータベースを用意してね、とのこと。ここの手間は変わらないが、つなげる手間はなくなると。

Bedrockのガードレール機能。特に顧客向けに提供するなら必要か。社内の生産性向上のためだとそこまで気にしなくてもよい部分。

Amazon Q発表。今度は社内向け。権限管理もできるとのこと。勝手にベクターデータを作ってくれる！！みんなの欲しかったものはこれ。IDE統合も。copilotと比べた優位性はどこなんだろう。開いているファイル以外もコンテキストに含めてくれるとすると高くなりすぎないか、事前学習することになるのか。Code transformationは言語のアップグレードもサクッとできるとのこと。全体をガツっと変えてそのまま本番で使えることはほぼない。ただ、その手前のところは大幅に節約できることは確か。Amazon QのQuicksight統合は、開発者とかaws利用者の “正確なaws知識持ったチャットボットに教えて欲しい” 要求を叶えてくれる。これもどんどん拡大してほしい。

SaaSベンダーとしては、Amazon QでいうところのSlackやSalesforceのようにベクターデータを提供する側になりたい。ここで出ている会社は、どこもAmazonとそういうデータを送るようにしているはず（もしくは元データを送ってAWS側でベクター化しているか）。ただ、Slackは画像とテキストデータが大量にあるだけだから、あとはどのチャンネルを対象にするとかそういう制御だけでいい。少種大量のデータ。対して、多種中量（少量も）のデータで、それぞれを細かく制御しないと利便性が出にくいとなると難しい。


### ★★★★☆ KEY003 | Dr. Swami Sivasubramanian Keynote
https://youtu.be/8clH7cbnIQw?si=LpkBLPKdIAiy3xsP

こちらは帰国後にYoutubeで視聴。Wernerさんのあとに見たので違いがわかりやすい。こちらは大規模言語モデル推し、それによる業務効率化も推し。まるでライバル会社のCTO同士のように見えた。

* ラブレス夫人の反論「機械は思考できない」
* 1つのモデルが支配しているわけではない
* Claude v2.1サポート
* ベクターによる進化
* Titanマルチモーダル Embeddings
* TItan Text Lite, Titan Text Express
* Titan Image Generator
* データによる生成AIの差別化
* Fine tuning と Continued Pre-Training対応
* RAG
* Knowledge Bases for Amazon Bedrock
* Agents for Bedrock
* SageMaker 新機能
* Store, Act and Govern
* Aurora Postgres ベクター対応のパフォーマンス20x
* インメモリDBのベクター対応
* zero ETL S3 for opensearch
* booking.com でのAIトリッププランナーの例
    * PII保護
    * レビューデータをRAGで取ってくることでプランナーのおすすめ精度を上げる
    * LLMにjson出力させて直接レコメンドエンジンとやりとりさせる 
* 多次元のデータを管理すること人間には難しいがコンピューターにはできる。Redshift serverlssのAIによるスケーリングの例
* Amazon Qが開発者をサポートする領域は、デザイン・開発・テスト・保守・トラブルシューティングなど繰り返し発生するすべてのタスクへ
* GenAIは自然言語からコードへの翻訳得意。だからSQLへの翻訳もできる。自然言語にするとシンプルな要求でも意外とSQLは複雑になりがち。そこでAmazon QによるRedshiftのSQL生成機能。
* Amazon QによるAWS Glueでのパイプライン作成機能
* Amazon Q in QuickSight

モデルは群雄割拠でOpenAIが独り勝ちという状況ではなくなっているというのは確かに。Cohere、Metaはどういうときに強いのかよくわかっていない。Claude v2はGameDayでもとりあえずでかいjson全部なげて質問に答えてくれるのは強かった。ベクターによる進化はおもしろい。単にキーワードで関連商品出すよりも精度高くなると。生成AIではなくLLMの利用ということか。応用範囲広い。ベクター化を一度しておけば検索のコストはそれほどかからないから、生成AIとして使うのに比べるとコスパはよさそう。

Fine tuning と Continued Pre-Trainingのやることの違いは何となくわかるが、この2つによる結果の違いとユースケースの違いがわからない。発表に対しておーーーではなく拍手パラパラだから、みんなそうなのかなと。

RAGの例はCTOが嫌いそう。マーケティングキャンペーンを効率的にやる話。Knowledge Bases for Amazon BedrockはRAGをアプリで実装することが簡単になる機能で、Auroraももうすぐ対応というのは良いニュース。Agents for BedrockはLambdaとして指定できるタスクは5つまでとか、かなりAWS側でやれることを限定してはいるけど、その分簡単に実装できる。

ベクター対応はいろいろ選択肢があるが、弊社だとインメモリDBほどパフォーマンスは要求されなさそう。一桁ms. Fraud detectionで銀行と言ってるから不正な取引のパターン一致をチェックするとかで、リアルタイム性（同期性）が求められることがあるのか。あとから取り消しは面倒だから?? 顧客はチャットボットから瞬間的なレスポンス求めると言っているけど、そこまでコストかける必要あるんだろうかは疑問。

zero ETL S3 for opensearchは良さそうに見える。APMツールでトランザクション特定して、すぐにopensearchでログを検索するみたいな感じか。ただ検索の頻度少ないならコスパはよくなくて、Athenaが適してるとかなのかな。SIEMにいい影響あるかも??

Booking.comの例はがっつり組み込んでいて参考になる。でも、この機能から利益出すの難しそう。LLM自由に使えるとなったらめっちゃお金かかる。そして肝心の旅行プランが出た段階で、自分の好きな予約サイトで予約すればいいとなってしまう。 

RedshiftのAmazon Qサポートは、スキーマをRAGで取り出して使うってことか。使うケースも限定されてるし、参照すべきデータもスキーマであって内部データを全部見る必要はないから合理的。GlueのAmazon Qサポートもとてもいい。機能がありすぎてユーザーがどう使えばいいかわからない場合を自然にサポートできる。その種となるデータは自分たちのサービス内に既に存在しているからRAGで参照すればいい。これはコードをサジェストするまでかな? それでも十分便利だけども。


### ★★★★★ KEY005 | Dr. Werner Vogels Keynote (オススメ)
https://youtu.be/UTRBVPvzt9w?si=6vK25gwei-ori07j

CTO Wernerさんの思想を全面に押し出したキーノート。だからこそ、単なるサービス発表に終わらず、あとからでも見る価値がある。最初や途中で出てくるムービーはマトリックスのオマージュでシリーズ物になっているので、今年のものだけでなく以前のキーノートもおすすめ。

https://youtu.be/RfvL_423a-I?si=hiSa2hM2-xdqX5hC

https://youtu.be/8_Xs8Ik0h1w?si=HeaJ5o8Taq8S-4Sc

最初はコストの話。"Frugal Architecture" というキーワードで、初めて聞く言葉。質素という意味らしい。使い放題用意したらユーザーの使い方が変わって利益に見合わなくなった例はおもしろい。Google photoも無制限やめたし、使い方が想定外だったのはあったんだろなと。Lambda は最初コストが悪くなるのはわかってたと。でも同時に新しい道を研究し始めたと。ほんとにそういう判断をしたのだとしたら、驚異的に戦略的。

Tier分けはSLOの参考になる。SLA=Tier 1はわかりやすいし決めているけれど、Tier 2, 3は基準と該当機能の整理が必要。"Disconfirm your belief" という言葉はとても好き。"No oracle"。ここでのオラクルは預言者としての意味。でも、絶対会社のOracleへの揶揄も含まれてる。

"AI for nowよりAI for good"。これが言いたいことなんだなと。かっこいい。ただ、実行は難しい。共感はあっても実行にまで移せる人は少ないだろうけど、確実に増える。技術そのものではなく使い方を考えようという内容で、General Purpose Technologyを目指すOpenAIと比べると未来を感じる度合いは正直少ないかもしれない。

Amazon Qによって世界全体でのAWS SAのニーズは確実に減るはず。サポート手厚いEnterpriseで契約しようと思ったけど、QがあるからBusinessでいいか、となるようなイメージ。いわゆるイノベーションのジレンマに陥りがちな案件に見える。だからこそすごいなと。

WernerさんはLLMで業務効率化をすることに興味ないのではと感じた。そもそもめっちゃリソース使うし、sustainableではない。それより、今まで解決できなかった社会の大きな問題を解決したいと。Amazon QであればAWS知識を持っているから、問題解決の意思はあるけどスキルのなかった人たちの力になる。且つ小さいモデル使えば比較的利用リソースは小さいくなる。だからGoを出したんじゃないかと勝手に推測。


# Breakout Session [配信あり]
- AWS開発者やユーザー企業などがプレゼンスタイルで話す
- 一番数が多い（1152個）
- 配信あり

### ★★★☆☆ SEG201 How to not sabotage transformation
https://youtu.be/heLvxK5N8Aw?si=Eod2nPMs0-tUBWxc
- レベル200
- トピック：New to AWS

Transformation（変革）を進めるための組織とかLeadershipの話。Enterprise Strategy team at AWS ということで、Googleとかで組織研究しているチームのような感じか。元ユーザー企業のCTOとのこと。

**”採用では今のスキルで判断するより学習する人を優先しよう。今の仕事の65%は子供時代には存在しなかった。”** という言葉は一番刺さった。
Wardley Mapというバリューチェーンを分析するときの手法をいろいろと応用して話している。一度聞いただけでは理解は難しかった。なるほどと思うような、なんか騙されているような。いわゆるコンサルが出す図という感じで身構えてしまう。


### ★★★★☆ DOP201-SC1: Best practices for Amazon CodeWhisperer
https://youtu.be/F_dSkRHCXBc?si=24Kjvbnbx6p8IU4n
- レベル200
- トピック：DevOps and Developer Productivity

※Content Hubという、その時間帯にやっているbreakout sessionの配信を見られる会場で視聴。大画面だがYoutube視聴とそこまで変わらない。週の後半には録画のものも流される。空き時間にオススメ。

最近発表されたCLI統合のデモがおもしろかった。`cw ai` でCodeWhispererのCLIを呼び出し自然言語でやりたいことを書くと、統合先のCLIコマンド（例えばAWS CLIのコマンドやgitコマンド）を出してくれる。

すべてターミナル上で完結するのでスムーズ。異物感が無いのがすごい。


### ★★★★★ NET402 : Surviving overloads: How Amazon Prime Day avoids congestion collapse （オススメ）
https://youtu.be/fOYOvp6X10g?si=Iq_zW_0ZDexLOzYj
- レベル400
- トピック：Networking & Content Delivery

**今回のre:Inventでキーノート含めて一番おもしろかった!!** と感じたセッション。

セッション始まる前、スピーカーの方が参加者に何している人? と聞いていく。Congestion Collapseという言葉知ってる? という質問には、前の方の一部が挙手。後から探したら、Jim Roskindさんという方で、[QUICプロトコル設計者としてWikipediaにもページあり](https://en.wikipedia.org/wiki/Jim_Roskind)。Amazon.com所属とはいえ、いろんな会社を渡り歩いてきた方でとにかく自由な雰囲気を感じる。話もずっとおもしろい。

- congestion collapseとは：
  - リソース利用率（CPU or disk or network）が100%になっているのに、何もタスクが進まないという状態
  - 高速道路での例。もし車と車の間が1inchだったら、時速何kmで進めるか? 正解は0km。混雑しすぎると進むことも降りることもできなくなる。それでも車は道路というリソースを占有し続ける。
- TCP congestion：
  - 混雑すればするほどパケットが再送され続け、さらに帯域を消費する
  - インターネットではスローダウンするとユーザーはページを更新する。それによってキュー待ちは10%upとかじゃなく2倍とか3倍とかになる。
  - 再送すると最初のリクエストは処理する意味がなくなる。でもFIFOで処理するから何も生産性がなくなる
  - 混雑中はキューを強制リセットすると、新しいキューが処理されるので生産的になる
  - サービス間のretryも事態を悪化させる。アクセス集中起きなくても congestion collapseは起きうる
- Prime Day 2018での事件:
  - 特定のセール商品にアクセスが集中。そのため、そのプロダクトIDを持つDBの特定のパーティションにアクセスが集中してTCPのキューが1000以上に ※多分APとDB間のTCP接続のこと
- マーケティングの人に伝えたこと:
  - Handle "some" people or no one。その間はない。リソースを100%使って捌けないか?と聞かれたら、あなたは話を聞いてないねと答えた。
- congestion collapseを想定したテスト：
  - 想定される負荷のテストだけでは十分ではない。あり得る限界まで負荷を上げる。そして通常まで下げて、どれくらいで通常通り処理されるようになるかを見る。数分とかなら及第点。戻るのに時間がかかるなら、どこかに悪いキューがいるからそれを見つける

後半はAWS開発者の方がJimさんの考え方を実践するためのサービスを紹介。
- ALBで通常より50xエラーが多くなった時に検知され、リクエストが自動でバランシングされる機能。リリースされたばかり
  https://aws.amazon.com/jp/about-aws/whats-new/2023/11/application-load-balancer-availability-target-weights/
- WAFでrateを測り、一定以上になったらHTTP code 429を返す機能。amazon.comでは犬の画面が出てちょっとまってねと促す

最初にJimさんの話を聞いたからこそ、50Xが出始めてから対応するのではなく、HTTP 429返す機能のように自分たちが設定した閾値でSorry pageを出す意味が腑に落ちた。

この人のセッションはREPEAT（後日同内容でのセッション）もなくここだけ。来年もこの人がAmazon.comにいてre:Inventで話すならぜひ参加 or 視聴したい。


### ★★☆☆☆ DAT343-NEW | [NEW LAUNCH] Analyze Amazon Aurora PostgreSQL data in Amazon Redshift with zero-ETL
https://youtu.be/EsakQCP9wUk?si=SZy_IzPoGZ5kkBQq
- レベル300
- トピック：Analytics, Databases

前日のキーノートで発表された新機能についてのbreakout session。
https://dev.classmethod.jp/articles/zero-etl-integrations-amazon-redshift-reinvent/

自分のチームではRedshiftは使っていないが、Redshift serverlessとzero-ETLを使ったら、とりあえず超簡単に試してみることはできるとわかった。

お固い感じのプレゼン且つ、録画されたデモがAurora Postgres側のusersテーブルに追加したレコードがすぐにRedshift側で見れてるよというもので、それくらいであればAurora側で直接SQL実行すればいいじゃんという気持ちに。

Zero-ETLといいつつ、Tのデータ変換が柔軟にできないと、ただデータをredshiftにコピーするだけになって、結局DMSいるじゃんとなる。セッション後のQ&Aではそこを突っ込んで聞いている人多数。


### ★★★★☆ STG204-What's new with Amazon S3
https://youtu.be/idz2SvBHK-s?si=QFvG_HF_3-8qDpKQ
- レベル200
- トピック：Storage, Business Applications

シンプルなセッション名なので当たりか外れかわからず参加。

- 60分で20の新機能を紹介。
- 最初の15分は、今回のre:Inventで発表されたS3 Express One Zoneについての話。
- 耐久性はイレブン9から変わらない。ただし、1 azが完全に落ちたときや一部落ちたときにはロスが起きうる。
- セキュリティ関連。ACLからPolicyへ、そしてAccess Grantsへ。
- オープンソース関連。Common Runtime, Mountpointなど

他セッションでも、durabilityとredundancyは違うよというロジックで 1azだけどイレブンナインのままという説明されていたが、どうにも腑に落ちず。。

あとからYoutube調べると、"What's new with ~~" で始まるセッションは毎年あり、どうも話す人も責任者レベルに見える。スピーカーは責任者など上の人になるほどスタイルが自由になる傾向があり（偏見あり）、話もおもしろいと思う。このセッションでは2人が入れ替わりながら話すスタイルで、どちらも話がうまく、それぞれの機能をなぜ出したのかという思いも聞けてよかった。


### ★★★★★ AIM240-NEW | [NEW LAUNCH] Bring the power of generative AI to your employees with Amazon Q
https://youtu.be/VVz6tNUYInY?si=LNa2Wx6Kpv9tJk-C
- レベル200
- トピック：AI/ML

みんな大好きAmazon Q。会場も広いしwalk up待ちもたくさん。

- スピーカーはGeneral Manager、Senior Product Manager
- Amazon Qが使える領域
- 管理者向けとエンドユーザー向けのkey features
- ドキュメントアップロードして回答を得るデモ
- JIRAなどアクションを実行するデモ
- RAGからの結果だけに回答を制限する機能
- トピックごとのガードレール
- 連携機能（Connectors）紹介
- Slack Botとしての実行デモ。AWS知識バッチリ

End user向けの話は、RAGを使った生成AIのメリットであって、Amazon Qだからこそのメリットではないとは感じる。ドキュメントアップロードするところはClaudeっぽい。複数のFoundation Modelを組み合わせているということで、AWS知識を学習させたところはTitanで、それ以外はClaudeだったりするんだろうか。Amazon Qの日本語対応はまだだけど、Claudeは日本語対応しているから、ほとんどはTitanなのかも。

Slackからアクション実行はいろんなサービスが対応しているが、それを自然言語をUIとしてできるのがいいところ。

RAGからの結果だけに回答を制限する機能は実用的に見える。わからなければわからないと回答返してくれる方がいい。設定画面デモもスムーズ過ぎて笑ってしまう。

セッション終了後、ステージ横での質疑。AWS新機能も即対応されるよと答えていたのが、RAGでできているんだから確かにと納得しつつ、すごい世界だなと思った。
```
Q Financial dataだから us-east-1に保存されるのが困る。他のリージョンは対応するか?
A 他リージョンは対応進める

Q AWSの最新情報へはどれくらいで追従するのか?
A ドキュメントが更新されしだいすぐに。数秒の世界。

Q Slack Botのデモがあったが、自分の会社はユーザーが5万以上いる。全員に課金されるのか?
A Slackでの権限管理もされる。指定したユーザーだけがbot呼べる。そのユーザーだけの課金。

Q Slackではなく別のチャットアプリを使っているが統合できるか?
A SDKあるからslack ではない他サービスへの統合はできる

Q どんな答えを返したのか管理者が見る方法はあるか?
A 分析ダッシュボードはもうすぐ公開される
※これが答えになっていたのかはよくわからない
```


### ★★★★☆ COP339 | What’s new with AWS observability and operations
https://youtu.be/E8qQBMDJjso?si=76H6mnnE5Z_XxvUU
- レベル300
- トピック：Cloud Operations

最後の20分くらいだけContent Hubで視聴したが、それだけでもおもしろい。CloudWatch, SSMなど幅広い。What's new with S3と同様に、責任者っぽい人が出て話す。次回参加できれば、ぜひセッション参加したい。

- CloudWatch logs infrequent accessはコスト半分
- CW application signals。SLIステータスなどを見られる
- Log anormaly detection。普段とは違うログを見つける

application signalsは今使っている商用監視製品を置き換えられるかを検証してみたい。


### ★★★★☆ COP343-R-SC4 | Building observability to increase resiliency
https://youtu.be/MARiKxvrdmc?si=koVPYlapjsYyu7H2
- レベル300
- トピック：Cloud Operations

こちらもContent Hubで視聴。

- スピーカーはSenior Principal Engineer
- これが一番re:Inventでエキサイティングなセッションだと言って始まる
- リクエスト全体で見るとエラーレートが上がっているように見えるが、ユニークユーザーで見ると特定ユーザーが押し上げているのが分かる。エラーの出ているユーザー割合を見るのがいい。

今の商用監視製品だとリクエスト全体の数値しか見られない（おそらく）。ユニークユーザーでエラー発生割合を見るという考えは取り入れたい。でも、1ユーザーのリクエストの中にエラーと正常が混じっていたらどちらにするのか、おそらくエラーかな。


# Chalk Talk
* ホワイトボードを使い、スピーカーが参加者とやり取りしながら進める
* スライド投影もある
    * ホワイトボードの使い方はかなり自由で、ほぼスライド投影と質疑のみでbreakout sessionに近いものもあれば、議論をホワイトボードにまとめていくスタイルのものまで幅広い
* 20人程度で少人数
* 配信無し（重要）

### ★★☆☆☆ BIZ203 | Bolstering incident response with AWS Wickr and Amazon EventBridge
- レベル200
- トピック：Business Applications, Security, Compliance, & Identity

[AWS wickr](https://aws.amazon.com/jp/wickr/) という通信をE2E暗号化するチャットサービスを、GuardDutyとノーコードでつなぐ方法を教えてくれるchalk talk。ホワイトボードに構成図がかかれた状態で始まる。

* GuardDutyのインシデント画面からWickrのRoomを作れる
* 基本用語 Integration と Bot
* WickrはAWSに買収されたサービスだからオンプレでも動く
* Wickr Federationで組織外の人にも権利を渡せる
* Moderatorだけがユーザーを追加できる
* API botはヘッドレスのWickrユーザー
* GuardDuty → EventBridge → API GW → ALB → ECS → Wickr

最後の方になって、ようやく構成図の意図を理解。結局のところ、Wickrという外部（AWSの1サービスだけど独立したサービスになっている）で障害対応用のRoom（Slackでいうところのチャンネル）をGuardDutyのインシデント情報をもとに自動で作るというデモだった。且つそこに必要な情報を初期情報としてGuardDutyから取捨選択してメッセージ投稿できて便利だよねと。

手動で部屋作って招待してとやるなら、こういう構成にする必要はなくて、単にWickr使えばいい。あとは、すべてAWSコンソールから作って設定できるものばかりだから、エンジニアじゃなくても実現できるよ、というのがポイントだったとのこと。 こういう構成をとらずに、EventBridgeからダイレクトにWickrへ連携できるようになるとうれしいと思う。

サービスのこと全く知らない状態でのchalk talkはよくないという学びを得た。参加しない方がいいというよりは、出るならサービス＋セッション内容を予習していくべき。


### ★★★★★ STG356-NEW | [NEW LAUNCH] Accelerate performance-critical apps with Amazon S3 Express One Zone
- レベル300
- トピック：Storage, AI/ML

新機能のchalk talkということでbreakout sessionでの紹介との違いを知るために参加。

* Principal Engineer, Distinguished Engineerなど多数の凄腕エンジニア達がデザインに関わった
* Latency低い。TPS高い
* ユースケース
  * Interactive app
  *  Fast data hydration
  *  Visual data rendering
  *  Machine learning
  *  Fast data processing
  *  IoT
* Building blocks (構成要素)
  * Rust
    * プログラミング言語としてRust採用。理由はGCがないから
  * Fast storage media
    * No spin disk
    * SSDなの? という質問には答えず、no spin diskだよ察してという回答
  * Fast checksum computations
    * チェックサムのアルゴリズムとしてCRC32Cを採用。理由は一番速いから。
    * md5, sha1, sha256, crc32, crc32cと順に速くなっていっていることを解説
* Single zone architcture
  * 物理の問題。S3フロントエンドとS3オブジェクトのインデックスとストレージを全部同じAZに置くのが単純に一番速い
* Session
  * 持続5分。SDKなら自動リフレッシュ
  * Bucket、VPCエンドポイントがスコープ。もしcreateSessionした認証情報を他VPCにコピーしても動かない
  * 複数バケットのセッションを同時に作るのは問題ない
  * バケットポリシーで読み書きの権限管理をできる
* meta dataの持ち方
  * 元々のS3がフラットにindexを作っていたのに対して、Directory Bucketsでは hierahcicalに作っている（階層的インデックス）
  * これがfirst byteのレイテンシを下げることに有効
  * オブジェクトがまばらなディレクトリ構造（sparse directory）は避けたほうがパフォーマンスは上がる
* DurabilityとRedundancyは違うもの。redundancyはないが、durabilityはgeneral purpose bucketと同じイレブンナイン

Q&A
```
Q AZ指定できないサービス（LambdaやSageMaker）から呼ぶと異なるAZから呼ばれる可能性があるがどうなるのか?
A その問題は理解している。小さいオブジェクトの場合には問題になる。大きいオブジェクトの場合には、オーダーが数百msになるのであまり問題にならない。

Q リージョンが少ない。それだとデータを置けない（法律などの問題で）ケースがある。
A これから拡大していく。リクエストがあればあるほど助けになる

Q CloudTrail保存先に選択することは可能か?
A おそらくできる。確認する

Q クロスアカウントやクロスリージョンでも作れる?
A 問題なし。でもクロスリージョンはパフォーマンスの問題あるのであまり意味がないけど

Q lifecycle ruleはサポートされるか?
A GA時点ではサポートされない。ただし、Batch opertionの仕組みがあり、Batch deleteもできる

Q AWS Backupで使えるか?
A 使えない

Q request料金が安く storage料金が高いということは、一時的な置き場を想定しているのか?
A あっている。典型的には機械学習で、同じデータに多数のアクセスがあり、学習が終わったら不要になる。

Q lambdaトリガーはサポートされているか?
A 現時点ではまだ

Q 自分の会社では基本長い期間S3に保管したいからユースケースが合わなさそうだった。何かオススメの利用用途はあるか?
A すべてを保存しておきたいわけじゃなく、分析結果だけ計算して元データはいらなくなるケースはきっとあるはず。そういうものにすすめる。
```


### ★★★★☆ AIM340-R2 : Customize your FMs securely to deliver differentiated experiences 
- レベル200
- トピック：AI/ML

この時間はfoundation modelのセッションが3つくらい。これはbedrock使うもの、他はsagamaker使うもの。

- FMを適応させる順番：プロンプトエンジニアリング→RAG→カスタマイズ or ファインチューニング→0からのトレーニング
  - あとになるほど複雑さとコストは上がる
- bedrockでできることの幅は広い。そのままでも、RAGとの組み合わせでも、agentでも、FM自体のカスタマイズでも
- Fine tuningとRAGのまとめ
- BedrockはいくつかのFMのfine tuningに対応している。Titan, Meta, Cohere。Custom modelsメニュー
- Bedrockを通してfine tuningすることで、そのカスタムされたFMはAWS上にセキュアに保管される。3rd partyの会社にはいかない
- Fine tuningをやる場合の構成図。カスタムFMがデプロイされるアカウントがある。トレーニングもそこでされる。SageMakerと同じ考え方
- トレーニングデータやプロンプトデータはFMプロパイダーの学習には一切使われない
- トレーニング中には通信はAWS内で閉じていてインターネットには出ていかない
- Fine tuningデモ
  - Fine tuningにはまずLightなモデルが適している。FM選択は一番重要。デモではTitan Lite を選択
  - VPCはオプション。特定のネットワーク経由で学習データにアクセスさせたい場合
SageMaker studioからjupiter notebookでコードを書く
  - provisionで学習に使うcomputing resourceのキャパ指定
  - Hugging Faceから持ってきたファッション業界用のトレーニングデータ（30個のペア）を使ってFMをfine tuneする例。特定の会社の情報を返すようになる
- Embeddingだと類似性だけで引っ張ってくるので、最新情報ではない可能性がある。それはFine tuningで防げることもある。継続的にfine tuningが必要
- Fine tuningはジョブがあり、そのログはcsvとして見られる。validation_loss, perplexity
- Model evaluation。どちらのモデルが期待する結果と一致するか評価することができる新機能。モデルによってパラメータ違う（AnthropicならHuman or Assisitant）ので、2つのモデルに全く同じプロンプトで試すのは難しい

Fine tuningでは知識の定着は難しいという記事を最近読んでいて、30個のペアで大丈夫というデモにはかなり???となった。Titan Liteというモデルが小さいからできることなのか、それでもRAGではなくFine tuningを選ぶべきというユースケースがあるのかなど疑問は多く残ってしまった。質問して聞けばよかったと少し後悔。chalk talkだが、情報整理されたいいスライドが多かった。


### ★★★☆☆ AIM347-R2 | Next-generation ML builder experience
- レベル200
- トピック：AI/ML, DevOps and Developer Productivity

最終日、最後の枠のセッション。

- メデューサ倒すために神から授けられた道具たち。それらがなければ、その人はただの人だった。どんな凄い人でも、ツールなしでは素晴らしい結果は出せないというメタファー
- SageMaker Studioで新しくなったポイントの紹介
  - UIが完全に新しくなった
  - 開くのに minutesかかってたのが secondsになった
  - Code Editorは新しいIDE。VS codeのOSSを使っている
  - Training jobがコンソールだけでなくStudio上でも見られるようになった
  - SageMaker endpointへStudioからリクエスト送れるようになった
  - Huggingfaceのモデルが検索できワンクリックでDeployできる
  - Evaluation a model機能
  - 以前のSageMaker studio（今はClassicと呼称）は、Jupyter Labそのままだった
  - 新しいStudioのアーキテクチャでは1つのインスタンス上にJupyter ServerとNotebookが同居している
  - Code Editor IDEはインスタンス上にコンテナとして立っている。あくまでインスタンスを選んで起動する
  - Code Editorでは Code Whisperer が使える
  - Jupyter Labにチャット画面がついて、直接モデルを選んで試せるようになった

bedrockとSageMakerの違いについての質問はたくさんの人がしているとのこと。わかる。Fine tuningがbedrockについてTraining jobという画面もできたし、どう使い分けるんだろうというのは思うところ。最後のセッションということもあってか、自分のようにSageMaker使ったことない人も半分。でもdata scientistですと手を挙げる人もたくさん。


# Gamified Learning
* ゲームのように楽しみながらAWSサービスを学ぶ
* GameDay や Jam というセッション名
* 1チーム4名で課題に取り組む
* 60チームほど集まる大規模なものと、エキスポの片隅でやっている小規模なものがある

### ★★★★☆ GHJ201 : AWS GameDay: League of Legends Esports Edition
- レベル200
- トピック：AI/ML, Analytics

エキスポの片隅で開催されていた、Riot games主催のgameday。League of Legendsの前半15分のデータを使い、最終的な勝者を予想する機械学習モデルを作ろうという課題。

* タスク1: sagemaker studioという sagemaker用のIDEでLoLの勝利チームを予想するモデルを作る
* タスク2: モデルを呼び出すLambda作成
* タスク3: lambdaを呼び出すfrontendをデプロイする

個人参加で他3名（米国、イギリス、スペイン）も1人且つre:Invent初参加。全員sagemakerとJupyter notebookは触ったことないながら、ChatGPTとかBardに質問して進める。これないと全然わからないし、時間が90分とされてるので理解する時間はない。みんなで一つの問題を進めていくけど、それぞれのPCでやってるから、最初は割と個人ワーク。できたという人のやつをみせてもらってなんとか進める。
ChatGPTとかはlolの単語や、モデルにおすすめのパラメータまで聞けば教えてくれて、ほんとなんでもありだなという感じ。ほとんどの時間は最初のタスクに使う。

内容はとてもおもしろく、時間だけが短すぎて消化不良で終わってしまったのが残念。


### ★★★★★ GHJ302: AWS GameDay Championship: Network Topology Titans (sponsored by Lacework)
- レベル200
- トピック：Networking & Content Delivery

同じ会社の人でチームを組んで参加。IPAM, Transit Gateway、そしてスポンサーのLaceworkの問題。難しいのと眠いのとで悪戦苦闘、疲労困憊。。。やる前はこのGameDayに一番自信持っていたものの、おそらく半分くらいしか問題終わらず。知識としてしか知らないという弱み、試行回数の圧倒的不足を思い知らされる。

ただ、GameDayに関してはスムーズに行ったときよりも、とにかく苦労したときのほうが学びは多い傾向にあると思う。


### ★★★☆☆ GHJ301 : AWS GameDay Championship: Building F.O.C.U.S. (sponsored by Datadog)
- レベル200
- トピック：Serverless Compute, DevOps and Developer Productivity, AI/ML

re:Inventでは3つ目のGameDay。一人参加で海外の方とチームを組む。最初の準備タスク以降は、それぞれ担当を決めて黙々とやるスタイル。テーマはAWS Amplifyを使ったreactアプリ開発で、datadogスポンサーということでdatadogのセキュリティ機能を使うタスクがあったため自分はそれを担当。

他にはグラフDBとgraphQLを使うタスク、画像認識と生成AIを使うタスクなどがあり。昨日のネットワークGameDayに比べると、比較的わかりやすい印象で、チーム間の得点差もそこまで開いてはおらず。お互いに教え合うというより、どんどん詰まったらAWS SAやdatadogの人に質問して進めていくという感じで、みんな聞くのがうまい。もちろんChatGPTのようなツールも必須アイテム。


### ★★★★☆ GHJ304 | AWS GameDay Championship: Building with Amazon Bedrock and PartyRock
- レベル200
- トピック：AI/ML

re:Inventでは4つ目のGameDay。偶然日本人の一人参加の方が3名並んでいて、そのまま日本人4人チームに。自分以外の3名はインフラ側というよりPython, node.jsを書いて、LambdaとかStep Functionsとか使う方たち。全員 re:Invent初参加。

Bedrockという非常に新しいサービスということもあってか、問題内容はGameDayというよりはWorkshopのような感じで簡単なものがほとんど。早々に終わっていたチームも結構あり。でも、いろんなbedrockの使い方（LambdaからAPI実行、ECSでコンテナ内実行、Jupyter notebookでコード実行）を知れて、モデルの claude-v2.1 めっちゃ賢い! などかなりおもしろかった。


# Builder's Session

* Workshopの短い版。Workshopは2~3時間、Builder's sessionは1時間
* 1テーブル10名以下で一人SAがつく
* 質問しやすい
* 時間は短いので、手を動かす時間は少ないし、簡単なものにはなりがち
* 自分のPCを持っていく

### ★★☆☆☆ SVS209-R2 | Using generative AI to build a serverless registration app
- レベル200
- トピック：Serverless Compute, AI/ML

Bedrock, AWS Lambda, AWS Amplify, Amazon DynamoDBを使って、re:Invent登録時におすすめセッションを自動で出すというワークショップ。

基本的にはコピペでファイル修正とコマンド実行するだけ。BedrockはAmazon Titanモデルを許可して、それをLambdaからAPIで呼び出す形。実際動くところを見れたのはよかった。あとSAに質問はしやすい。サービス自体の質問とかにも答えてくれる。ただ、いかんせんお膳立てされすぎてて自分にはあまり合わず。


# Community Activities

### ★★★★★ breakfast & lunch

セッションではないが、一応Community Activitiesとして登録されているので紹介。各会場で提供される、無料の朝食とランチ。味は個人的にはどれも満足で、コーヒーが一杯まるごとではなく好きな量だけ入れられるのもありがたかった。デカフェもあり。

朝食は7時から9時までとなっているが8:30頃になるともう何も残っていない可能性高い。最終日の金曜日はかなりキャパが限られていたようで、Caesar's Forumの朝食会場は大行列で入れず。メイン会場のVenetianは普通に食べられたとのこと。

### ★★★☆☆ ACT019 | Bingo Night

ビンゴ大会。景品を期待して行ったが、派手なイベントではなくて、地元のローカルイベントな感じ。ビンゴのルール理解が難しいので予習必要。途中からマイクをもった司会者がテーブルを回りみんなにビンゴジョークを聞いていくが、おもしろいポイントがわからず難しい。

こちらの記事が詳しい
[アメリカ式？re:Inventのビンゴ大会に参加してみた #reinvent](https://dev.classmethod.jp/articles/reinvent-2019-bingo/)


### ★★★★★ ACT037 | AWS re:Invent 5K run

ラスベガスの道路を走れるイベント。4時台起床、5時すぎシャトルバス乗車、6時に受付、6時半スタートとという、ランナーには普通なのかもしれないがだいぶネジの飛んだスケジュール。でも、ユニコーンクラスという歩いて全然OKなグループもあるので、意外と気軽に参加できる。オススメ。

 
### ★★★★☆ ACT159 | re:Play Party

木曜日夜（金曜は午前中セッションしかないので実質最終日）に開催される屋外イベント。ドッジボール大会、サスケや東京フレンドパークっぽい遊ぶやつなど見ても遊んでも楽しい。ただ、屋外なので結構寒く、連日のセッションで体調崩している人は無理に来ないほうがいいかも。限定Tシャツがもらえる。

# おわりに

今回は初参加で探り探りのセッション参加となりましたが、とにかく頭も身体も限界まで絞り尽くすような刺激的な一週間でした。

Code Talk, Innovation Talk, Workshopなど参加できなかったセッションタイプもありますし、エキスポに行く時間がほとんどなかったりと、まだまだやれることはあったなという感想です。他に今回のre:Inventでおもしろかったセッションがあれば（特に配信ありのもの）、ぜひ教えてください。