- はじめに
- re:Inventとは
- 基調講演ハイライト
- KEY002: CEO Matt Garman
- Amazon S3 Tables
- KEY005: Dr. Werner Vogels Keynote
- 参加したセッション
- ARC303-R: Building, operating, and testing resilient Multi-AZ applications
- GHJ303: AWS GameDay: Security and Networking (sponsored by Fortinet)
- イベント
- EXPO
- re:Play
- Tips
- re:Invent会場のご飯
- 立ち回り方
- Sessionへの参加登録
- 現地でのSession参加
- おわりに
- 佐々木
- 城間
はじめに
こんにちは、新卒2年目エンジニアの佐々木と新卒1年目エンジニアの城間です!
このたび、右も左もわからない新卒2人でre:Invent 2024に参加してきました。今回は、現地での体験や感じたことを皆さんにお伝えしたいと思います。
これからre:Inventへの参加を検討されている方の参考になれば幸いです。
re:Inventとは
AWSが毎年ラスベガスで主催する世界最大規模のカンファレンスです。2024年は12月2日から12月6日の5日間にわたり開催され、全世界から約6万人の参加者が集まりました。
このイベントでは、基調講演での新サービスの発表をはじめ、2300を超えるセッションやワークショップが開催されます。また、参加者同士の交流を目的としたExpoや、夜の大型パーティーイベントであるre:Playなど、多彩なプログラムが用意されています。
基調講演ハイライト
KEY002: CEO Matt Garman
Amazon S3 Tables
Amazon S3は、Parquetファイルをはじめとするさまざまなデータフォーマットを保存できるデータレイクとして広く利用されています。特に、複数のデータセットにまたがるクエリを実行する際には、オープンソースのApache Icebergがよく利用されています。しかし、そのメンテナンスコストの高さが課題となっていました。
この課題を解決するために、Apache Icebergのテーブルデータに最適化された新しいストレージサービス「Amazon S3 Tables」が発表されました。これにより、圧縮、スナップショット管理、不要なファイルの削除などのテーブルメンテナンスが自動化され、メンテナンスコストが大幅に軽減されます。
また、Amazon Athena、Amazon EMR、Apache Sparkなどのクエリエンジンを利用して、簡単にクエリを実行できます。さらに、自己管理の Apache Iceberg テーブルと比較して、クエリパフォーマンスが最大3倍に向上し、トランザクション処理能力も1秒あたり最大10倍に向上しました。
所感
S3の歴史から始まり、その変遷について聞くのがとても面白かったです。新しいサービスが発表されるたびに、会場の皆が「おー」と盛り上がり、海外の文化も感じることができました。また、ビッグデータやAIに関連する発表も多く行われ、技術の進歩を間近で体感することができました。
KEY005: Dr. Werner Vogels Keynote
Dr. Werner Vogels氏のKeynoteでは、複雑性を管理しつつシンプルなシステムを構築するための「6つの教訓」についての話がありました。Elastic Infraで日々実践している運用効率化や改善の考え方と共通する部分も多く、参考になる内容でした。以下に主なポイントをまとめます。
Werner氏は、システムが複雑化することは回避すべきだが、システムは時間経過とともに機能が追加され規模も拡大するので、複雑化が起こることは必ずしも悪いことではなく、いかに複雑さをコントロールするかが重要であると述べていました。
また、「システムの複雑さ = コンポーネントの数」という誤解について、自転車を例にした説明が面白かったので紹介します。
一輪車 | 二輪車 | 三輪車 | |
コンポーネント数 | 少ない | 普通 | 多い |
柔軟性(曲がりやすさ) | 良い | 良い | 悪い |
乗りやすさ | 難 | 普通 | 簡単 |
一輪車はコンポーネント数は少ないものの、乗るための難易度が高いです。一方、二輪車はコンポーネントの数は増えますが、乗る難易度は高くなく、曲がりやすさ(柔軟性)も備えています。また、三輪車のようにコンポーネントが増えて乗りやすくなっても、柔軟性が損なわれる場合もあります。
つまり、システムのコンポーネントが増えても複雑さをうまく管理すれば、全体を見たときにシンプルで有用なものにすることが可能です。このシステムの複雑さとシンプルさのバランスは「Simplexity」と表現されており、システムをシンプルに保ちながら複雑さを加えるには以下の教訓が必要であることが述べられていました。
1. Make evolvability a requirement
システムは時間とともに変化するため、将来の変更に柔軟に対応できる設計が必要です。
S3が例として挙げられており、サービス開始の2006年当時は6個のマイクロサービスから構成されていましたが、2024年現在は300を超えるマイクロサービスから構成され、多くの機能が追加されています。しかし、利用者には既存システムの変更を強いることなく進化を遂げており、これは進化可能性を重視した設計の成功例だと言えると思います。
2. Break complexity into pieces
システムの複雑性を減らし、管理を容易にするためには複雑さを細分化する必要があります。
ここではCloudWatchが例として挙げられていました。CloudWatchでは、以下の画像にようにシステムを小規模で結合度の低いコンポーネントに分割することで、全体の複雑さを管理しやすくしています。(普段から使っているサービスですが、中身を意識したことはなかったので新鮮でした)
3. Align organization to architecture
複雑性に対応するための組織方針では、メンバーにオーナーシップを持たせることが重要です。「自ら進んで考えて作ったものの品質は、指示されたまま作ったものとは大きく異なる」という視点から、経営者は課題の重要性を伝え、メンバーの主体性を引き出す環境を作るべきだと述べられていました。
経営者がというよりも、仕事の質を上げるために言われたこと以外も自分で考えて提案できるようになりたいところです。
4. Organize into cells
2と少し似ていますが、こちらは可用性や障害対応に焦点を当てた内容になっており、セルベースアーキテクチャに基づいてシステムを設計することで、障害発生時の影響範囲を縮小させるというものです。
5. Design predictable systems
システムの不確実性は、意図しない複雑性を生む原因となります。
例としてELBの設定反映方法が挙げられました。設定変更がイベント駆動で反映される仕組みでは、設定変更が頻発した場合にELBへの変更負荷が予測不可能になります。これに対し、AWSでは設定変更時にファイルをS3に配置し、ELBが定期的にその設定を取得する仕組みを採用することで、予測不能性を排除しています。
このアプローチは非常にシンプルながら、効果的だと思いました。
6. Automate Complexity
自動化は大規模なシステムを管理するために不可欠です。
ここでは「何を自動化すべきか」ではなく「何を自動化しないか」と問う方が正しく、人による高度な判断が必要であるかを基準に考えるべきということが述べられていました。
所感
CTOのKeynoteなのに技術ではないマインド面の話が7割くらいを占めていて驚きましたが、日々の業務で意識すると意思決定をするための重要な要素になる内容だと思いました。
また、上記6つの教訓を全て満たしたシステムを構築することがベストではありますが、コンポーネントの細分化や自動化を取り入れると開発工数は上がるので、工数に対するリターンとのバランスも考慮すると良いと思いました。
参加したセッション
ARC303-R: Building, operating, and testing resilient Multi-AZ applications
このワークショップでは、単一AZ障害への対応をハンズオン形式で学びました。
ワークショップの内容は以下のとおりです。
- CloudWatch Dashboardsでレイテンシがどのように測定され、追跡されているかを理解
- SSMドキュメントを使用し、ランダムなAZへ障害を注入。そして、その影響を観察。その後、影響を最小限に抑えるためALBのクロスゾーン負荷分散を無効化
- AWS Fault Injection Serviceを使用し単一AZ障害を導入。そして、ユーザ体験に与える影響を観察。その後、障害の影響を軽減するために、ALBのゾーンシフト機能を実行
構成図:
自身のPCと提供されたAWSアカウントを使用します。詳細な手順書があり、自分のペースで作業を進められました。また、分からない点はAWS講師(日本人はいませんでした)にすぐ質問できる環境は心強かったです。
今回AWS Fault Injection Serviceを使って単一AZ障害をシミュレーションし、CloudWatch Metricsでレイテンシの上昇を観察しました。その後、Amazon Application Recovery Controllerのゾーンシフト機能で障害が発生しているAZのALBへのトラフィックを除外し、レイテンシが正常に戻っていく様子を確認できました。
普段から単一AZ障害を意識して設計や作業を行っていますが、実際に発生することはあまりないため、発生した場合の緊張感を体感しながら、対応方法を学べたことは非常に有益でした。
GHJ303: AWS GameDay: Security and Networking (sponsored by Fortinet)
Security and NetworkingのGameDayは、実際のAWSアカウントを与えられ、4人1組で制限時間内にSecurity / Networkに関する課題を解いてポイントを競うイベントでした。
re:Invent初参加で初のイベントがチーム形式だったので不安でしたが、運良く日本人の方と同じチームだったので英語でのコミュニケーションに困ることはありませんでした。
(参加中も日本人のスタッフのサポートもあったので、言語の壁はそこまで無さそうです。)
出題された問題は実際のNetwork要件やSecurity対策を想定したシナリオになっており、
- Access Analyzerによる外部アクセス許可のあるリソースの特定・削除
- Secrets Managerでのデータベース認証情報の管理
- フォレンジック分析
- 制約条件下でのNetwork疎通性確保
- Network Firewallでのワークロード内のVPCのトラフィックフィルタリング
など、難易度および扱うAWSサービスは様々でした。
普段使う機会のないAWSサービスにも触れ、チームの方と相談しながらタスクを進める中で、自分が現状理解できている点・知識を補わないといけない点を認識できたと思います。
結果は、約60チーム中10位以内と健闘しました。チームの方々の高いスキルに支えられた部分も大きいですが、その中でAccess Analyzerを活用した外部アクセス許可の削除・通知設定を完成さたり、Network疎通性確保の問題に対するアプローチの提案をしたりとチームに貢献できたことは収穫でした。
イベント
EXPO
大規模なAWSパートナー企業の展示会です。各企業のブースでは、提供するサービスの説明を聞いたり、体験したり、ノベルティを受け取ることができます。こちらが戦績です!
re:Play
最終日の夜はre:Playに参加してきました。
今年はZeddによるライブパフォーマンスが開催されました。
終了時間ギリギリに参加したのでクライマックスの盛り上がりを見ることができました。
最前列には比較的苦労せず行けたので、近くで見たい方はぜひ挑戦してみてください。
Tips
re:Invent会場のご飯
re:Invent会場のホテルでは、ビュッフェ形式の朝食と昼食が提供されます。これはMGM Grandでの昼食です。ホテルごとに異なる食事が提供されるので、さまざまな会場で試してみるのも面白いと思います!
立ち回り方
実際にre:Inventに参加して、会場の周り方でもっとこうすれば良かったと思った点をまとめます。
Sessionへの参加登録
re:Inventに参加登録したらセッションの登録ができるようになります。自分は今回初めてで、興味のありそうなものを手当たり次第登録していましたが、以下の点を意識すると良いと思いました。
- セッションには、Keynote, Innovation Talks, Workshop, Breakout Sessionなどの種類があります(各セッションの特徴は色んな方が記事にまとめているので詳細は省略します)。
- セッションの開催地はラスベガスの各ホテルに点在しているので、建物が異なる開催地のセッションに参加する場合は30分~45分の間を空けた方が良いです。
- 人気のあるセッションはすぐに満員になってしまいますが、直前になると予約がキャンセルになって空きが出ることが多かったです。予約が埋まっていてもどうしても参加したいセッションがある場合は小まめに確認しましょう。
Breakout Sessionは後日YouTubeで動画がアップロードされるので優先度は下げてもいいと思います。個人的には、現地でしか体験ができないWorkshopやディスカッション形式のイベントに積極的に参加すると良いと思いました。
現地でのSession参加
- ホテル間の移動用のバスが常に利用できますが、夕方は道が混むのでモノレールや徒歩で会場に向かった方が早い場合があります。
- セッションに予約していても、時間ギリギリで到着するとWalk-upで並んでいた人が優先されて会場に入れないことがあります。逆に言うと、満員で予約ができなくても早く並べば参加できる可能性があるということです。
おわりに
佐々木
「行くべきですか?」と聞かれたら、自分は迷わず「ぜひ行ってください」と答えます。社会人になってからは日々の業務に追われ、学生の頃のように自由に学ぶ機会が少なくなり、視野が狭くなっているとre:Inventに参加して強く感じました。
新しい技術を学ぶのは本当に楽しいものです。何よりも、re:Inventの規模の大きさに圧倒され、世界の広さを肌で感じました。そして、イベント後に設けられた日本人同士の交流の場では、多くの素晴らしい方々とお話しする機会を得ました。
社内でも多くの学びがありますが、社外で知識や経験が豊富な方々と直接触れ合うことで、新たな視点を得ることができました。自分の知っている世界はまだまだ広げられると実感すると同時に、いつか自分も相手の視野を広げられる存在になりたいと強く思う機会となりました。
1週間にわたるre:Inventへの参加は、かけがえのない経験でした。日々の業務に追われる中でも、好きなことや新しいことを学ぶ機会を作ることの重要性を改めて実感しました。新しい視点や出会い、そして自分自身を成長させる多くのきっかけがそこにはあります!
城間
新卒1年目で re:Invent のようなイベントに参加できたことは、非常に貴重な経験でした。イベントの規模感や会場の熱気を肌で感じて、AWSの技術に対する関心が一層高まりました。
また、今回はセッションへの参加以外にもAWSのマネージャークラスの方や現地参加の日本人と自分たちの課題やAWSの特定のサービスについてディスカッションする機会があり、非常に刺激を貰えました。うまく会話できた部分もありますが、自分のタスクで取り組んでいる領域でも事業として把握すべき事の前提を明確に説明できないことがあり、改めて現状を深く理解する必要性を感じました。
あとは、自分が普段触る機会のないAWSのサービスについてもある程度議論できるくらいの知識があるとより楽しめたかと思うので、業務経験を重ねながらも勉強時間を確保し、幅広く技術理解を深めてからまた次回参加したいと思いました。