Amazon Web Services(AWS)の年次イベント「re:Invent 2018」が米国ラスベガスで開催されている。現地時間11月29日の最後の基調講演にはAmazon 最高技術責任者(CTO)のWerner Vogels氏が登壇。多様化する開発者の環境に対応するための多数の新機能・サービスを発表した。
Amazon 最高技術責任者のWerner Vogels氏
講演の前半は、Vogels氏を中心に幹部陣がAWSのインフラ開発の歴史を振り返った。Vogels氏はAmazon Alexaと会話しながら、Amazonでの仕事で“最悪”の日と“最高”の日を挙げ、“最悪”の日は2004年12月12日、“最高”の日は2018年11月1日だという。
「2004年12月12日という日は決して忘れられない」(Vogels氏)というのは、Amazonでクリスマス商戦における顧客からの注文と商品の配送が佳境を迎えたこの時期に、突然数時間にも及ぶシステム障害に見舞われたからだった。原因は膨大なトランザクションをリレーショナルデータベースが処理できずにダウンしたためで、同社のビジネスにとってまさに致命的といえる悪夢のような経験になったという。
この教訓から障害は必ず発生するものであり、その前提で突発的な事象がもたらす影響を最小化させる取り組みの歴史だったとVogels氏。古いアーキテクチャのデータベースは、レプリケーションとシャーディングによる対策を講じても同社のような事業規模では影響の抑制に限界があり、また拡張性の点でもクラウド向きではなかった。このためセルベースアーキテクチャに基づくマイクロサービス化の流れからAmazon Auroraが開発され、Amazonのショッピングカートを起点に複雑かつ高速処理への対応からKVSのAmazon DynamoDBも生まれた。S3ストレージサービスでも、物理ドライブの故障から、実際には起きていないがデータセンターの破壊も念頭に「セキュリティ脅威モデルに似たデータ損失のリスクに対応している」(S3およびGlacierサービス担当バイスプレジデントのTomsen Bukovec氏)という。
加えてVogels氏は、データウェアハウス(DWH)サービスのAmazon Redshiftにおけるデータの整合性チェックといったサービス品質を確保するための“可視化”の取り組みを性能改善にも生かしているとし、直近の6カ月で1時間当たりの平均クエリ処理スピードを6.5倍に向上させたという。Vogels氏が“最高”の日とした2018年11月1日は、旧システムのDWHからRedshiftへの完全移行を成し遂げた日であることを明かした。
新発表の1つは、Amazon Redshiftにおけるクエリ処理の待ち時間を“ゼロ”に近づけることを目指した「Amazon Redshift concurrent scaling」で、「Redshiftのクエリの87%は待ち時間ゼロだが、残る13%もゼロを実現していく」(Vogels氏)という。ほとんどのユーザーには自動スケーリングのための追加費用も発生しないだろうとしている。
Amazon Redshift concurrent scalingの利用効果
講演前半でVogels氏は、障害や問題への対応で同社の開発者やエンジニアが、本業以外の仕事に追われたり、方法がなく非効率な作業を強いられたりする“不本意”な状況から脱却してきたのかを説いた。そして「開発者はもっとビジネスロジックの構築にフォーカスしてコードに向き合いたいはずだ」と来場者に呼びかけ、講演の後半で多くの発表を行った。
まず開発環境では、AWS Toolkit群がサポートする統合開発環境(IDE)にVS CodeやPyCharm、IntelliJを追加した。AWS LambdaではRubyを新たにサポートし、さらに開発者が自身の好む言語を利用できるようにする「Custom Runtimes」を発表。AWSのオープンソースとしてC++やRustをサポートするほか、ElixirとErlang、PHP、COBOLのパートナーサポートも明らかにされた。なお、会場では「レガシーなCOBOLをAWSで使うユーザーが本当にいるのか……」という感想もちらほら聞かれた。
「Custom Runtimes」のサポートにCOBOLが含まれていた
Lambda関連ではこの他に、主要機能を共通ライブラリ化した「Lambda Layers」や、サーバレスアプリケーションの共通ライブラリ「Nested Applications Using Serverless Application Repository」、API GatewayによるWebSocketのサポート、AWSロードバランサでのサポートを発表。ストリーミングデータへの対応では、Apache Kafkaのマネージドサービスを新たに開始する。また、ユーザーがAWSのベストプラクティスに基づく開発や運用を行っているかを自己評価できる「AWS Well-Architected Tool」も提供する。
新発表の多くは多様化する開発者ユーザーの環境への対応にフォーカスしている