理論、発信、そして行動 今年もビルダーに強いメッセージ
倹約的なアーキテクトとは? AmazonボーガスCTOが今一番気になるコストとAIを語る
2023年12月07日 09時30分更新
AWS re:Invent最終日の基調講演に登壇したAmazon.comのCTOであるヴァーナー・ボーガス氏は、世界的な物価高の中、もっとも気になるコストについて真正面から取り上げた。そして、AIに関しては、放射線科医だった過去の経験を活かし、機械学習のモデル生成に自らチャレンジ。会場のビルダーたちの心をわしづかみにした2時間のセッションをレポートする。
アーキテクトはコストを意識しなければならない
基調講演はマトリックスを模したコミカルなショート動画でスタート。役者さながらの演技を見せるボーガス氏がこの動画でテーマとしたのは、クラウドマイグレーションだ。登壇したボーガス氏は、「クラウドが登場する前、ハードウェアのリソースに制約があった」と振り返る。Amazon.comで分散型システムを担当していた当時のボーガス氏は、決して悲観していたわけではない。「制約があったからこそクリエイティビティがあった」と聴衆に語りかける。
ボーガス氏はAmazon CEOからキャパシティについてリクエストされていた。システムをコロケーションしていた時代は、15%くらいの余剰を持ってシステムを構成していたが、コマースサイトの宿命としてトラフィックの増大に悩まされる。アクセスできないユーザーはF5キーを連打するのでサイトの負荷はますます大きくなるため、他のユーザーに迷惑をかけないように施策を打たなければならない。コマースサイトの設計・運用は事業に直接影響を与える。「Black Fridayのときは、制約の中、チームがさまざまなアイデアを試した。なんとかしてやりくりしていた。ある意味、アートのようなものだった」とボーガス氏は振り返る。
その後、ボーガス氏はAmazon.comのCTOとなり、この20年弱でAWSのさまざまなサービスを構築してきた。そしてクラウドの時代となり、ハードウェアの制約の多くはなくなった。以前はできないことができるようになり、物事を考える余裕も生まれた。驚くようなイノベーションが実現できるようになった。しかし、変わらぬ課題はコストだ。「コストをつねに頭に入れておかなければならない。リソースは確保しなければならないが、つねにコストは意識する必要がある」とボーガス氏。アーキテクトにとって永遠のテーマだ。
コストを意識したアーキテクチャの重要さを示すべく、ボーガス氏が披露したのはPBSという放送局の事例だ。同社は少ない予算の中で、ストリーミングを実施する必要があったが、セサミストリートの40周年記念番組を流すと、トラフィックは増大し、サイトは硬直してしまったという。ハードウェアの制約に限界を感じた同社はAWSに移行したが、元々コロケーションサイトにあったアプリケーションをそのままリフト&シフトしても無駄が多かった。「PBSはクラウド化したが、アーキテクチャも変えなければいけなかった」とボーガス氏は語る。
実際、PBSはクラウドはAWSのさまざまなサービスを用いた新しいアーキテクチャに移行し、コストを80%も削減できた。これには会場からも拍手。その後、人気のあるドキュメンタリー番組を配信するようになっても、コストはきちんと維持できた。「これはクラウド化のときにアーキテクチャを変えたからだ」とボーガス氏は語る。
今回はおもにコスト管理が大きなテーマだが、ユーザーはコストだけではなく、サステイナビリティも意識しなければならないとボーガス氏は付け加える。たとえば、アムステルダムのWe Transferは透明性の高さも有名で、二酸化炭素の排出量もきちんとモニタしつつ、約8000万のユーザーにファイル転送サービスを展開しているという。
コストは非機能要件でなければならない S3の料金をどう決めたのか?
冒頭の動画でボーガス氏がクラウドマイグレーションに悩むアーキテクトに渡したのは「倹約的なアーキテクト(THE FRUGAL ARCHITECT)」という一冊の本。これはAmazon.comのシステムを運用したユーザーとしての経験、かつAWSとしてサービスを提供するプロバイダー側の経験を持つボーガスが、コストを意識したアーキテクチャについてまとめたもの。長らくクラウドアーキテクチャの哲学を啓蒙してきたボーガス氏は、「デザイン」「測定」「最適化」の3つの観点で、この本の7つの法則について説明を行なった。
最初に説明したのは「コストは非機能要件にする(Make Cost a Non-functional Requirement)」ということ。セキュリティ、コンプライアンス、アクセシビリティ、パフォーマンス、アベイラビリティ(可用性)、スケーラビリティ、メンテナビリティなどはアプリケーション機能と関係なく必ず考慮しなければならないのが非機能要件。このうちセキュリティ、コンプライアンス、アクセシビリティは必須だが、他はトレードオフが可能。そして、ボーガス氏はこのリストに、コストとサステイナビリティを追加すべきという主張する。
ボーガス氏はCTOになった当初は、「データベースの会社に多額の小切手を支払っていた」という。しかも、5年後を見据えて支払わなければならなかったため、大変だった。そのためボーガス氏は、自ら提供するサービスに「どれくらいコストがかかっているか」をつねに意識しなければならなかったという。
サービスとコストの関係で最初に取り上げられたのは、AWSで最初にサービス化されたオブジェクトストレージのAmazon S3だ。AWSのクラウドは従量課金をいち早く導入したことで知られているが、サービス開始当初は大変だった。「自分たちが作ったサービスにどれくらいコストがかかっているのかを考えなければならなかった。データベースはリソースに投資しなければならないからだ。では、私たちはなににお金をかけているのか、どれくらい回収しなければならないのかを考える必要があった」とボーガス氏は語る。
当初サービスのコスト要素として組み込んだのは、転送とストレージ容量だけだったが、サービスを始めてみると、ユーザーは違うリソースを使っていることがわかった。そこで追加したのがリクエストの数だ。新しいサービスの場合、どのリソースを消費するかはなかなかよくわからない。そのため、ユーザーを興味深く観察し、どのリソースを使っているかを把握する必要があるという。
Amazon S3に対してDynamoDBは、デフォルトの結果整合性とオプションの強力整合性という2つの読み込みから構成すればよいので明確だったという。「強力整合性は結果整合性の2倍の作業が必要になるので、当然コストは2倍となる」(ボーガス氏)。サービス料金に明確な妥当性を持っているため、ユーザーの納得も得られやすくなる。