Amazon Web Services(AWS)は、米国時間12月1日から3週間に渡る年次イベント「re:Invent 2020」をオンラインで開催している。同15日の最終となる基調講演には、Amazon 最高技術責任者(CTO)のWerner Vogels氏が登壇し、クラウド環境の障害対策を事前に講じる「AWS Fault Injection Simulator」など複数の新サービスを発表した。
re:Invent 2020の基調講演は、例年の開催地となる米国ラスベガスの会場や舞台を模したスタジオで行われたが、Vogels氏が登場したのは、自身の故郷というオランダのアムステルダムにある精糖工場の跡地。現在は産業遺産に指定され、さまざまなイベントが行われる場になっているという。
Amazon 最高技術責任者のWerner Vogels氏。故郷のオランダ・アムステルダムにある産業遺産の工場跡から基調講演を行った
跡地には、商品としての砂糖を製造するための重厚長大な各種設備が保存され、かつての機械産業を支えたレガシーなテクノロジーの姿を今に伝えている。砂糖製造が主要ビジネスではなくなってからはその役目を終え、市民にエンタテイメントを届けるのが現代の役割だ。Vogels氏は構内を歩きながら、もし現代のテクノロジーをここに活用すれば、設備に取り付けたセンサーからさまざまなデータをリアルタイムに収集、分析し、工場の生産性や安定稼働率や高めたり、障害などに強い環境を構築したりできるだろうと説いた。
2020年は現代の人々が全く経験したことのない新型コロナウイルス感染症の大流行によって深刻な影響を受け、コロナ禍で起きているさまざまな環境変化への対応を強いられている。Vogels氏が講演で伝えたのは、精糖工場という産業のインフラが現在に見せている時代と役割の変化への対応だった。
現役時代には、安定的で信頼性の高い砂糖の大量生産を実現するために、多くの技術者が設備の稼働を監視し、目や耳でわずかな異変を捉えて問題が起きないように運用や保守に尽力した。また、この工場を運営していた企業も現在は砂糖以外のさまざまな食品を取り扱い、ビジネスモデルを変化させることで時代の変化に対応しているという。現在のコロナ禍は、働く場所がオフィスではなく自宅などに変わってもいかにビジネスの効率性と生産性を維持、向上させるか、そして、そのためにテクノロジーをどう活用できるかが重要になる。
コラボレーションの舞台をリアルなオフィスからクラウド上のバーチャルな場に移し、仮想デスクトップなどのツールを活用して、ビジネスを推進していく。そのためにはITインフラも変化が必要であるが、安定かつ信頼あるビジネスを支える役割を果たさなければならない。同社が「ビルダー」と呼ぶ、ITに携わる人々が激変する環境に対応しながら、どう自身の役割を果たすべきか、そのためにテクノロジーをどう利用するかが、Vogels氏の基調講演におけるメインテーマだった。
Vogels氏が基調講演でまず発表したのが、AWSの各種サービスやツールにコマンドラインのアクセスを行うためのブラウザーベースのシェル機能「AWS CloudShell」だ。ここにはAWSのコマンドラインインターフェース(CLI)やECSのCLI、ランタイム、PythonやNode.jsといった開発や運用に必要なツール群が用意されている。IDベースのサービスとなるため、ユーザーはどこに所在していようともブラウザーからAWSのコンソールにアクセスし、CloudShellのアイコンをクリックするだけで、どこにいても自身のいつもの作業環境を使うことができるという。同日から東京リージョンでも利用可能になっている。
AWS CloudShellは東京など一部リージョンから一般提供が開始されている
続いてVogels氏は、精製工程での過酷な現場環境においては、安定性や信頼性が極めて高く障害に強い堅牢な生産設備をどう維持させるかが重要だとした。実は精製工場がフル稼働するのは、原料の収穫を終えてからの3カ月程度だったという。この特性は、例えば、現在ならクリスマス商戦の短い期間にアクセスやトランザクションが激増するECサイトに似ている。もしこの期間に障害が起きれば、ビジネスに深刻な影響が出るのは当然だろう。精糖工場には異なるメーカーの2つの大型発電機が設置され、万一の停電障害に備えていたという。
Amazonにとってシステム障害によるサービスの停止が自社ビジネスに甚大なダメージを与えるリスクであるのは言うまでもないだろう。Vogels氏は、20年以上に及ぶシステム運用の改善の取り組みにおいて、全てのシステムのあらゆるログを蓄積、分析し、システムの安定稼働に支障をきたしかねない兆候などを見つけるための仕組みを開発したり、障害発生を防ぐための地道で幾重もの改善に取り組んできたりしたと説く。現在は、その一つとして人工知能(AI)を用いた自動推論技術の活用を推進している。
ただ、あらゆる障害に備え得るテクノロジーの利用には高度な能力も必要とする。Vogels氏が提起するのは、想定し得る障害に備えるというアプローチであり、一例としてNetflixが古くから取り組んでいるという「カオスエンジニアリング」を挙げた。カオスエンジニアリングは、分散型のシステムでその稼働が不安定になる状態を起こさせることで、発生箇所や事象、条件、要因などを把握し、障害の発生を防ぐ改善を図る取り組みになる。
ここでVogels氏は、AWSのワークロードに対するカオスエンジニアリングを実行できるフルマネージド型サービスとしてAWS Fault Injection Simulatorを発表した。
Vogels氏自身としては今回最大の発表というAWS Fault Injection Simulatorは2021年から提供予定
「AWS Fault Injection Simulatorは、私にとってre:Invent 2020最大の発表だ。自動推論とは違い、だれもがカオスエンジニアリングに取り組めるサービスになる。サーバーのエラーやレイテンシーといった問題や障害の状況を起こさせることで、仮説から監視を通じて状態を確認、検証し、改善に結び付ける。カオスエンジニアリングをCI/CD(継続的インテグレーション/継続的デリバリー)のパイプラインやビジネスのフローなどに組み込むことで大きなメリットになる。発生頻度の小さい障害への対応の訓練に役立てられる」(Vogels氏)
AWS Fault Injection Simulatorは、2021年初頭に提供を開始する予定で、当初はElastic Compute Cloud(EC2)とElastic Container Service(ECS)、Elastic Kubernetes Service(EKS)、Amazon RDSの各サービスでの障害をシミュレーションできるという。
また、システムの状態をいかに正確かつ効率的に、迅速に把握できるかも重要であり、システムの可視化を支援するとして、ビジュアル化のオープンソースソフトウェア「Grafana」のマネージドサービス「Amazon Managed Service for Grafana」と、 インフラやサービスを監視する「Prometheus」のマネージドサービス「Amazon Managed Service for Prometheus」も発表(プレビュー)した。
Amazon Managed Service for Grafanaでは、CloudWatch、Elasticsearch、IoT SiteWiseなどやサードパーティーのデータソースと連携し、アプリケーションの可視化をサポートするという。Amazon Managed Service for Prometheusでは、コンテナーの監視やアラートの機能を提供する。両者を組み合わせてダッシュボードも構築できる。
システムやアプリケーションの監視で「可観測性」を向上させるとする
Vogels氏は、キーワードに「Observability(可観測性)」を挙げ、これを構成するロギング、メトリクス、トレーシングの3要素のうちロギングが最も重要だとした。「ログにこそ真実がある」と述べている。