[レポート] Cell-Basedアーキテクチャでblast radiusを縮小 #reinvent #ARC411

2019.12.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。大阪オフィスの林です。

2019年12月02日〜2019年12月07日で、アメリカのラスベガスにてAWS re:Invent 2019が開催されています!この記事は「Reducing blast radius with cell-based architectures」セッションに参加したレポートです。

セッション概要

私たちが学んだことの1つは、障害はさまざまな形で発生することです。コアの考慮事項は、障害の爆風半径を最小化する方法です。この講演では、セルベースのアーキテクチャに焦点を当てます。システム、セル、およびルーターのプロパティ。また、AWS Lambda、Amazon Kinesis、Amazon Simple Storage Service(Amazon S3)、Amazon Simple Queue Service(Amazon SQS)などのサーバーレステクノロジーを活用したAWSでの障害に対する設計方法 このセルベースのアーキテクチャは、28ペタバイトのデータを処理し、1か月に10億トランザクションを処理します。

 

また昨年2018年のre:InventでもAWSは下記のメッセージを残しています。

AWSでは、運用の卓越性を重視しています。10年以上にわたるクラウドの運用経験と、約半世紀にわたるAmazon.comの運用のルーツにより、システムの可用性を深く理解しています。私たちが学んだことの1つは、障害はさまざまな形で発生することです。ゼロから構築し、失敗を受け入れることが重要です。コアの考慮事項は、障害の「爆発半​​径」を最小限に抑える方法です。この講演では、セルベースのアーキテクチャ、シャッフルシャーディング、アベイラビリティゾーンの独立性、領域の分離など、採用している一連の爆発半径低減設計技術について説明します。また、爆風半径の縮小が運用慣行に与える影響についても説明します。

※re:Invent2018の映像はこちら

 

セッション形式

時間 1h
セッションタイプ Session
スピーカー Karthik Kumar Odapally - Sr Solutions Architect, Amazon Web Services

Vignesh Janakiraman - Principal Engineer, Amazon.com

セッション内容

なぜ「Cell-Based Arichitecture」を選択するのか?

下記のトピックが挙げられていました。
・障害を封じ込める(限定できる)。
・数百万のTPSをスケールできる。
・自動修復できる。
障害を限定できるという部分が”blast radiusを縮小”につながってるんですね。

そもそも「Cell」とは何か?

正直私自身も定義を正確に把握をしていなかったのですが、セッションでは下記が「Cell」の定義として取り上げられていました。
・定額のリソースである。
・明確に定義された関数である。
・他のセルは呼び出さない。
・セル自体は拡張しない。
・多様である。
そしてその「Cell」を扱ううえでのレイヤーにも役割(名称)があります。「control plane」と「data plane」です。

「control plane」と「data plane」

「Cell-Based Arichitecture」を考えるうえで、「control plane」と「data plane」の役割も抑えておく必要があります。
Service Control plane Data plane
DynamoDB DescribeTable API Query API
Amazon EC2 RunInstances API A running EC2 Instance
AWS Lambda CreateFunction API Invoke API
「Control plane」はリソースの管理を指し、「Data plane」はリソースの使用を指します。
レイヤーが分かれており、使われるAPIも異なるようです。

architectureの紹介

最後にアーキテクチャの紹介がありましたので載せておきたいと思います。同じCell-Baced Architectureでももちろんですが用途に応じて構成は変わります。

  • Analytics cellのアーキテクチャ(参考)

 

  • Cell health serviceのアーキテクチャ(参考)

まとめ

体系的内容なセッションではあったものの、障害を最小限に抑える考え方や自動復旧の考え方など、セッションを聞いて「Cell-Baced architecture」にますます興味が出てきました!まだまだ勉強不足なところもあるのですが、情報収集してまた「Cell-Baced  Architecture」関連のブログを書ければと思います!

 

以上、大阪オフィスの林がお送りしました!