この記事は以下の記事

AWS re:Invent 2023に参加してきました!
こんにちは。まだまだ世の中に出て4年目のもりかぷです。 2023/11/27 ~ 12/1 にアメリカ合衆国、ラスベガスにて開催されたAWS re:Invent 2023に個人として参加してきました!(おかげさまで2回目の参加です!) 今回は参加した感想だったり、所感、皆様にもワクワクを共有できればと思います。 ※参加にあたり、会社の所属部門にスポンサーになってもらいました。 AWS re:Invent って何? AWS(Amazon Web Services)が主催する学習型のカンファレンスです。 AWSのサービスについて実際に触って学習するワークショップや、事例や使い方などのセッ…

のセッションの感想等を入れた記事です。
今回聞いた・体験したセッションは以下の通りです。

Breakout Session(基本的に聞くだけ)

  • BOA320 | Building high-performance gaming applications with Redis
  • BOA306 | Building an AWS solutions architect agent with Amazon Bedrock
  • QTC204 | Practical implementations of quantum communication networks
  • SUP205-NEW | [NEW LAUNCH] Collaborate within your company and with AWS using AWS re:Post Private

Workshop(実際に手を動かしてサービスなどを触る)

  • ROB306 | Build a cloud- and AI-powered dancing robot
  • SVS202 | Getting started with serverless patterns
  • DOP302 | Build software faster with Amazon CodeCatalyst
  • AIM252-NEW-R1 | [NEW LAUNCH] Learn generative AI with PartyRock, an Amazon Bedrock playground [REPEAT]

Chalk Talk(発表者と参加者がディスカッションしながら進める)

  • DOP317 | Applying Amazon’s DevOps culture to your team
  • BOA202-R1 | DevOps in practice for beginners [REPEAT]
  • ARC212 | Be prepared: Learning from incident response
  • CMP409-R1 | AI/ML inference on AWS Graviton3–based instances [REPEAT]

Gamified Learning(ゲームのような勉強、競技)

  • GHJ302 | AWS GameDay Championship: Network Topology Titans (sponsored by Lacework)

Keynote(基調講演)

  • KEY001 | Monday Night Live with Peter DeSantis
  • KEY002 | Adam Selipsky Keynote

その他

  • EXPO(スポンサーなどのサービス展示)
  • re:Play(イベント終盤にあるパーティ)

この中からいくつか気になったセッションの感想を書いていきます。(太字で書いてあるものです)

BOA320 | Building high-performance gaming applications with Redis

アーカイブ動画

概要

リアルタイムに対応するアプリケーションのデータベースとして、Redis、Amazon MemoryDB for Redisに焦点を当てたセッション。

特に大規模なリアルタイム性を要求されるアプリケーションとして、オンラインゲームなどに焦点を当て、堅牢且つ高速なソリューションとしてAmazon MemoryDB for Redisを紹介していた。

セッションを受けた感想や気になるトピック

もともと同じようなサービスとして Amazon ElastiCache for Redis がありましたが、これに耐久性を足したものが Amazon MemoryDB for Redis と理解しました。

耐久性については各アベイラビリティゾーンにノードが配置されており、トランザクションログをそれぞれで保有しているため保証されるとのことでした。

今回はNPCなどの学習といったゲームを例に挙げられていましたが、読み取りがマイクロ秒単位、書き込みが1桁ミリ秒単位で行えるのでリアルタイムなデータを用いて機械学習する際などにも使えるのではないかなと感じました。

読み書きが低遅延で行えるので、例えばチャットボットなどでユーザからの入力をコンテキストとしてモデルに渡すことで、ユーザの状態を考慮した応答ができるといったメリットを感じました。また、Amazon ElastiCache for Redisとは違い半永久的な保存が行えるので、過去の状態をすぐに呼び出して応答を続けられるため、生成AIなどの活用に使えると感じています。

(あとは個人でMastodonやMisskeyサーバーを運営していまして、ジョブキューの管理にRedisを使っているので適用できるか試してみたいところ。)

BOA306 | Building an AWS solutions architect agent with Amazon Bedrock

アーカイブ動画

概要

Amazon Bedrockと呼ばれる、カスタマイズ可能な生成AIを用いることでエージェントを作る話。

このセッションでは生成AIをAWS ソリューションアーキテクトとして機能するようにし、AWSドキュメントの検索や、コードの生成、構成図の作成をさせるデモがありました。

セッションを受けた感想や気になるトピック

従来はユーザからの入力に対する回答を返す、ということが中心だったのが、このエージェントによってS3やLambdaにアクセス、実行することでユーザが保有するデータを返すことができるというものでした。

特にユーザがたくさんのデータソースを保有していたり、任意のコードの実行結果をもとに自然言語で回答を得ることができるため、繰り返し行われるタスクや事前に定義されたワークフローなどを自然言語で実行できるのはかなりのメリットだと感じました。

例えば、チャットボットでユーザーからの問い合わせに対し、今までは「○○が参考になるかも?」で文献を渡して解決しなかった場合、問い合わせフォームに移動させて再度ユーザに問い合わせを入力させるといった2重の操作が、エージェントにより、入力された内容を元に本文を自動生成して、チャットボット上で問い合わせを完結させるなど、人の手を動かすことを減らせるのではないかと感じました。

その他、デモではユーザーからの入力を元に構成図を生成するといったものもあり、該当するサービスのアイコンを探す、配置する、矢印を伸ばす、といった操作も全て自然言語で行えるため、人間の言葉で直感的に構成図を作れるのは魅力的に感じました。(複雑なものの場合、人の手も必要になるかもしれませんが)

DOP302 | Build software faster with Amazon CodeCatalyst

概要と感想

Amazon CodeCatalystと呼ばれる統合開発環境でCI/CDやコラボレーション、プロジェクト管理機能(Issueの発行・追跡など)、PRの作成・マージなどを体験するワークショップ。

実際に触った感想としては、極端な話、GitHub、Jenkins、IDEなどが全て一つで完結ししかも連携も楽であるため、CodeCatalystの操作さえ覚えてしまえば、だいたいなんとでもなる、というメリットを感じました。

CI/CDの画面。ワークフローなどがグラフィカルに表示される。

使っていて面白いな、と思ったのがコードを編集するに当たり、AWSだからCloud9でしょ?と思いがちなのですが、JetBrains系IDEやVisual Studio Codeとの連携も行えるとのことで、CodeCatalystのメリットを受けつつ、自分に合ったIDEを使えるのはかなり魅力的でした。(JetBrains系IDEはリモート開発クライアント、JetBrains Gatewayを使うみたいでした)

また、これは今年発表された生成AIサービスAmazon Qの機能の一つでもあるのですが、Pull requestのタイトルを書くとタイトルやコードの変更内容から、生成AIがPull requestの説明を生成してくれる機能などがありました。(β版機能)

タイトルを書くと説明文を自動生成してくれる

実際に生成された内容を読んでみましたが、かなり精度が高く(変更内容について細かく書いてくれる)ついに人間が文章をあまり書かなくても良い時代が来たか...!と思いました。

本業でも結構Pull requestを作成、内容の執筆をしたりするのですが、意外と書くことが多くて大変なんですよね。

個人的に期待しているものとしてはAmazon Qはビジネス向けということもあり、カスタマイズ可能とのことなので、例えば本文の記載ルールなどが会社で決められている場合、ルールを考慮した本文を生成してくれることにより、人間が気を使う範囲を狭められる、チェックの工数を削減できるのではないかなと期待しています。

まだβ版機能とのことだったので、これからも注目していきたいと思います。

AIM252-NEW-R1 | [NEW LAUNCH] Learn generative AI with PartyRock, an Amazon Bedrock playground [REPEAT]

概要と感想

PartyRockと呼ばれるAmazon Bedrockがバックエンドのサービスを使って生成AIに触れるというワークショップでした。(Amazon Bedrockを触れる、というよりは生成AIに触れるものでした。)

PartyRockのホーム

面白いのが「Build your own app」というボタンから始めるのですが、どのようなアプリにするかを自然言語で入力すると、自動的にプロンプトなどを生成してくれて書いた文章通りのアプリを作ってくれます。(もちろん一から自分で作ることもできます。)

できたアプリがこちら

あとは実際に入力フォームに必要な事項を入れると、生成AIが目的に沿ったものを作ってくれます。

テキストだけでなく、Stable Diffusionによる画像生成もできます。

このワークショップはビジネス向けのサービス、というよりは生成AIに触れるというものでしたが、テキストまたは画像とはいえ、決まったものであれば自然言語でアプリを作れることに魅力を感じました。

普段、我々が使っているようなビジネスアプリケーションも自然言語で入出力を書くだけで自動で作ってくれる世界が来るかもしれないと、ちょっと期待しています。

(それはそれで僕の仕事がなくなってしまいそうですが、また別の仕事を見つけます。)

このPartyRock自体は一般公開されており、AWSアカウントなども不要なので試してみたい方は以下からどうぞ。

https://partyrock.aws/

BOA202-R1 | DevOps in practice for beginners [REPEAT]

概要と感想

DevOpsについて理解し、AWS CDKを用いて実装をしていくセッション。

IaC(Infrastructure as Code)、継続的構成自動化、CI/CD、可観測性とモニタリングの4つに重点を置き話が進んでいきました。

まず、そもそもDevOpsについて印象に残ったものとして、世の中には便利なツールがありDevOpsもそれらを使うことで推進していきたい印象があるか、本当に重要なのは自分なりのワークフローを見つけ、自分の目的に沿ったベストプラクティスを適用するのであって、ベストプラクティスを適用するためにツールを使うのではない、というものが特に印象に残っています。

ここは結構自分も誤解していて、チームで仕事をしていてルールを守るためにまずツールを使うというようなことはよくあったのですが、ツールを使うのは最後で、まずは人の理解が先ということを本セッションで学びました。

運用チームや開発チームを維持しつつ、色々な人を巻き込んでチーム全体を進化させることが重要なことと感じました。

その他、マネジメントコンソールは直感的に画面クリックでリソースを作れるけど、作りたい(または変更したい)リソースが数十個あったら数十、数百と画面クリックをする必要があり、とても困難・時間がかかるのでそこでAWS CloudFormationやAWS CDKを使ってね、といった形で話が進みました。

AWS CDKはPython、JavaScript、TypeScript、Java、Goなどといった一般的なプログラミング言語を使用してリソースやインフラストラクチャを構築できるオープンソースのフレームワークです。

AWS CDKの説明を受けていてAWS CloudFormationとどう違うの?といった疑問もありましたが、裏ではAWS CloudFormationを通してインフラストラクチャといったスタックをデプロイしているとのことでした。

また、もう一つの特徴としては細かな要素(AWS CloudFormationでは一つ一つ定義する内容)が抽象化されているとのことなので、AWS CloudFormationでは数行~数十行必要なものがAWS CDKでは1行程で済むといったメリットもあるとのことでした。

CI/CDなどのパイプラインもAWS CloudFormation同様、AWS CDKでも構築することができるため、DevOpsなどに最適とのことでした。

自身の得意なプログラミング言語且つ、AWS CloudFormationと比較し少ないコード量でスタックのデプロイができることは魅力に感じました。
また、CI/CDのパイプラインの構築、デプロイ後の運用・監視もAWSで一通り実装できるため、DevOpsを実践するにあたり一つのプラットフォームで丸々カバーできるのは、かなり敷居が低くなるのではないでしょうか。

ちょっとここら辺は個人でAWS CDKなどを触って、また備忘録みたいな形で残せればと思います。

ARC212 | Be prepared: Learning from incident response

概要と感想

まず、インシデントの定義について日々の活動を妨げ、ビジネス価値の損失を引き起こすものとしていました。また、コミュニケーションは物事を推進してシニアまたはリーダーへの疑問を浮き彫りにし、解決するため必要なものと定義していました。

Amazonではあらゆる組織にとって重要な指標がカスタマーエクスペリエンス(顧客体験)の重要性を強調しており、Salesforceのデータをビジネスによって重要な指標にしている強調し、データにアクセスできることがトラブルシューティングと問題解決に不可欠としていました。

組織によって重要なことの一つとして、全ての指標を組織内で利用可能な状態にしサービスごとに分類することとのことでした。
これによりサービスがどこのチームに依存しているのか、どこに調べに行くことで解決できるのが明確になるため、トラブルシューティング時により早く対応できるそうです。

AWSでは大規模なインシデントが発生した際に、4つの柱(技術的解決の内容、顧客、内部の担当チーム、指標)を元に情報を整理しており、誰が関与して、何をトラブルシューティングしているのか、インシデント発生時にどのような情報を使用しているのかを全て記録し、何が発生したのかを監査証跡として保持しているのとのことでした。

このセッションを通しての感想ですが、サービスの関係などをあらかじめ理解しておくことで、トラブル発生時に確実且つ迅速に対応できることを学習しました。今回はインシデントレスポンスを例にあげていますが、運用だけでなくサービスの開発時にも同じことが言えると思います。

特にマイクロサービスなどで構成される場合、エラーが発生した場合どことどこが関係しているのかを理解しておくことで、粗探しせず関係する箇所だけを調べることができるため、トラブルシューティングを高速化することができるのではないかと思います。

そのためにも開発時点の設計の重要性だったり、仕様を明確なものにしておくべきだと、改めて実感させられました。

GHJ302 | AWS GameDay Championship: Network Topology Titans (sponsored by Lacework)

概要と感想

ネットワーク系のAWS GameDay(チーム対抗戦の競技会)です。
Laceworkさんがスポンサーです。

課題に沿ってAWS上にリソースを構築、構築したリソースのURLやARNなどを入力し、正しくできていると点数がもらえます。

問題の内容は規約の関係上、言えないのですがVPCの設定だったりCloudfront、S3+Lambdaなどの設定に関連する問題がでました。その他、Laceworkさんがスポンサーなので、ソフトウェアのマニュアルを読みながら進める問題などがでました。(課題を解いたチームメンバー曰く、どちらかといえば製品を知ってもらう内容だったとのこと)

結果としては50チーム中10位と入賞までは届かず...といった感じでしたが、実際にAWSマネジメントコンソールなどを触ったり、普段なかなか触らない設定や機能に触れることができたのでかなり満足です。

最高にイケているマウスパッド(AWSの方が言ってました)を参加特典としてもらいました。めっちゃクールです!!!

KEY002 | Adam Selipsky Keynote

概要と感想

今年は生成AI系のサービスが多く発表されました。
発表内容はAWSさんが日本語で分かりやすく公開しているため、本記事ではあまり言及しません。

気になる方は以下をどうぞ。

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_reInvent2023digest_1201_v1.pdf

個人的に気になったサービスは2つです。

  • Amazon S3 Express One Zone
  • Amazon Q

Amazon S3 Express One Zone

Amazon S3 Standardと比較して10倍ほど高速なストレージクラスが発表されました。
シングルAZ且つストレージ料金がStandardと比較して約7倍とぱっと見たときに冗長性を犠牲にしているのと料金が高い、というのがあるのですが、操作コスト(PUT、COPYなど)が安かったりや最低保存期間(一定の日数以内に消したとしても、特定期間保存したとみて課金される仕組み)がないため、一時的なキャッシュなどに使用するとかなりうまく使えるのではないかと見ています。

例えば、ファイルに対して一定期間多くの処理をする場合などはStandardからExpress One Zoneに移行してきて低遅延で処理を行う、処理が終わったらStandardなどに戻すことによってコストを抑えつつ、アプリケーションのパフォーマンスを向上できるのではないかと思います。(例えば機械学習の学習データだったり、データ分析時などに使えるのではないかと見ています。)

あくまでもOne Zoneで冗長性は確保されていないので、一時的に高頻度なアクセスを行う時に用いるのが良いと思います。

Amazon Q

ビジネス向けの生成AIサービス。

その名の通りビジネス向けでセキュリティとプライバシーへの考慮がされており、組織の情報などを利用して回答を得ることができる。また、モデルのトレーニングにあたり、ユーザの情報を使用しないと宣言しています。

ここまではよくある生成AIかな?と思いがちなのですが、個人的にAmazon Qのここがすごい!と感じているのが、

  • マネジメントコンソールでのエラー解決
  • Amazon CodeCatalystでの課題の解決、Pull requestなどの説明文生成
  • Amazon Q Code TransformでのJava 8からJava 17へのコード変換

といった機能です。

マネジメントコンソールでのエラー解決といった、状態に応じて原因が異なるパターンなどにもリアルタイムで対応するといった臨機応変さに驚きました。

また、Amazon CodeCatalystでの課題の解決ではこれは実際にワークショップを受けて、Pull requestを作成する際にコードの差分やPull requestのタイトルから説明文を生成してくれて、かなり精度が良く容易にPull requestが作れる点に驚きました。

最後に「Amazon Q Code TransformでのJava 8からJava 17へのコード変換」ですが、個人的には一番期待していたりします。というのも本業でJavaコードを書いたりするのですが、定期的にJavaアップデートでそこそこ大きい工数を使って調査、コードの更新を行っています。

AWSの発表によると2日間という短期間で約1,000個のアプリケーションをJava 8からJava 17にアップグレードに成功しており、大幅な工数削減につなげられるのではないかと思いました。

聞いた話ではコンパイルを通すレベル、とも捉えられますが、コンパイルを通すまでに必要な調査は莫大なものであることに違いはないので、これだけでもかなり魅力的です。

その他、近日中に.NET Frameworkアプリケーションをクロスプラットフォームに変換することができるようになるとのことなのでこれからの進化にも期待しています。

おわりに

ちょっとかなり雑な文章になってしまいましたが、気になったセッションと感想を簡単に述べてみました。

昨年~今年にかけてChatGPTなど生成AIが世の中で流行り、関連サービスがたくさん公開されました。その中でも、Amazon Qといったエンタープライズ向け且つ実際に課題の解決までも自動化するなどといった、実際に人の手をなるべく削減するなど様々な進化が見えた年でした。

これからもAWSの進化に注目です。

そういえば去年もAWS re:Inventに参加したのですが、あまり外部向けに文章を書くことがなく、どう書けばいいのかわからないところもあったので、アウトプットの練習にもなりました。

雑な文章ですが、アウトプットの練習にお付き合いいただきありがとうございました。

AWS re:Invent 2023 セッション編