COLUMN
AWS Ambassadorが見るAWS re:Invent 2024 Dr.Werner Vogels Keynoteで発信された注目メッセージとレポート
こんにちは、白鳥です。 |
AWS re:Invent 2024の現地レポートをお届けします。
執筆日は会期中のため、なるべく生のメッセージを受けた印象を優先するため、誤解・誤り等が生じている可能性もありますが、ご容赦ください。
本コラムでは現地時間の12月5日(木)朝に行われたDr. Werner VogelsのKeynoteで発信されたメッセージや技術的な注目ポイントについて解説していきたいと思います。
本コラムにおいては、個別の新サービスの内容については触れません。
NTT東日本では、AWSなどクラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください。
本Keynoteの位置づけ
Werner VogelsはAmazon.comのCTOであり、AWSに多大なる影響を及ぼす一人となります。
一見すると理解の難しいことも語られますが、AWS初期に考えていたことや概念などを改めて発表することもあります。
AWS技術分野全体の方向性について理解を深め、そして技術そのものの理解が深ければ深いほど理解が深まるKeynoteにもなるので、現状AWSを使っていなかったとしても、今後の情報技術の潮流について知るいい機会となります。
今年は説明文を読む限り、「複雑化するシステムの管理について学んだ重要な教訓と戦略をご紹介します。基調講演では、大規模な分散システムを構築したAmazonの経験を活用して、複雑さを受け入れるための基本原則を探ります」とあり、Amazonの事例をベースに大規模な分散システムを構築するための基本原則や効率的な運用について語られるのではと考えていました。昨年のThe Frugal Architectのホームページもリブートされており、どのようなメッセージが追加されるのかも注目でした。
執筆時点でKeynoteの模様はYouTubeにアップされております。
NTT東日本では、AWSなどクラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください。
注目メッセージ
2つご紹介します。
Simplexity
本ワードはSimplicity(単純さ)とComplexity(複雑さ)を組み合わせた造語となります。大規模になればなるほどComplexityは増していき、だんだんと動きが遅くなったり、問題に対する対応ができなくなったりします。Complexityの兆候は次のようなものであり、無視してはいけません。
- Declining feature velocity (機能開発の速度低下)
- Frequent escalations (頻繁なエスカレーション)
- Time-consuming debugging (時間のかかるデバック)
- Excessive codebase growth (過度なコードベースの増加)
- Inconsistent patterns (一貫性のないパターン)
- Dependencies everywhere (あらゆる場所での依存関係)
- Undifferentiated work (未分類の業務)
複雑さはコンポーネントの数ではないことにも注意しておきます。時間の経過とともに発生していきます。このSimplexityの実現には、6つの教訓があります。
① Make evolvability a requirement (進化可能性を要件とする)
時代や外部環境の変化に対して対応できるようなコンポーネントの設計を行う。Complexityの兆候を見逃さないこと
② Break complexity into pieces (複雑さを小さく分割する)
高い凝集度と明確なAPIを持つようなビルディングブロックに分解する
③ Align organization to architecture (組織をアーキテクチャに合わせる)
挑戦しオーナーシップを奨励する小さなチームを構築する、オーナーシップを高めるために適切な危機感を与える
④ Organize into cells (組織やコンポーネントをセルに整理する)
影響範囲を縮小する、一つの影響がほかのセルに影響しないように整理する
⑤ Design predictable systems (予測可能なシステムの設計)
不確実性の影響を軽減する、イベントドリブンの設計を行う、ヘルスチェックを行う
⑥ Automate Complexity (複雑さを自動化する)
何を自動化しないかを決める、人がかかわる標準の行動を決定し、それ以外は自動化する。すべてのチケットを共有する
Share your lessons
Simplexityで得た教訓はWerner氏がAmazon.comのCTOを20年務める中で、Amazonのエンジニアたちとともに得たものでした。こうした教訓を共有することで高い可用性とセキュリティ、性能を持った分散システムが出来上がり、また次のシステムの構築に役立ちます。大きな教訓ではなくても、地に足のついた教訓を共有するコミュニティを構築できるようになります。
AWSの利用者が意識すべきこと
当初はシンプルに作ったものも時がたてば複雑になっていく、ということは経験したことがあるのではないかと思います。「何をやるか」よりも「何をやらないか」を最初に定義することで、基本原則をきちんと決めておくことが大切となります。Amazon S3は非常に大きなシステムになりますが、今でも基本原則は守られています。
参考:Amazon S3 Design Principles
これはビジネスにおいて強みを出していくうえでの教訓でもあり、「何でもおおむねできる」ものと「この一点においては誰にも負けない」ものであれば後者が選ばれることは往々にしてあります。AWSを使えばたいていのワークロードを実現することはできますが、その機能は本当に必要なのか、基本原則を外していないか?基本原則が誤りであれば、どう修正するか?を常に意識しておきたいところです。
技術的な解説要素
また、詳細は割愛しますが、本Keynoteでは二つの技術解説がございました。
分散データベース管理システムにおける同時実行制御
先日のCEO Keynoteで発表のあったAmazon Aurora DSQLにおける技術解説がございました。Amazon Aurora DSQLでは楽観的同時実行制御を採用しており、「競合は発生しても稀」という考え方となって、ロックを使わずにトランザクションを実行させて、競合が発生した際に解決する手法を取ります。これにより、以下の利点が得られます。
- 遅いクライアントや長時間のクエリに対するレジリエンス
- スケーラブルなクエリ処理への対応
- 個別のコンポーネントごとのセキュリティ要件対応
- 個別の障害発生時の可用性の確保
詳細な解説についは、AWSの公式ブログにすでに日本語で掲載されておりますので、こちらもご覧ください。
正確なクロックと時刻の同期
Amazon Aurora DSQLのような大規模な分散処理においては、マルチリージョンにおけるクロックの時刻同期の処理が大切になってきます。AWSではAmazon Time Sync Service を利用してマイクロ秒での制御を行っており、この制御のために衛星から時刻を配信し、Nitroシステムに組み込むことによって同期を行っています。このマイクロ秒での時刻同期はAmazon EC2などのユーザー側でも取得することができます。
本Keynoteで発表された新サービス(記録のみ)
本Keynoteでは、発表された新サービスはございませんでした。
まとめ
Simplexityはシステム構築だけではなく、組織編成や業務の組み立てといった部分でも大いに教訓になるお話であり、身につまされる話でありました。日々本サイトで学びや教訓を共有している身ではありますが、これからも共有を続けていきたいと考えております。
NTT東日本では、基本に忠実にかつお客さまの挑戦を後押しできるようなソリューション提供をおこなっております。
経験値豊かなメンバーがご担当させていただきますので、是非お気軽にお問い合わせください!
NTT東日本では、AWSなどクラウドに関するお役立ち情報をメールマガジンにて発信していますので、ぜひこちらからご登録ください。
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。