AWSのデベロッパーカンファレンスre:Inventは、たくさんの発表があるので、同社自身の重要な新製品の、影が薄くなってしまうこともある。同社の待望のElastic Container Service for Kubernetesはかなり大きく報道されたが、より斬新なコンテナサービスであるFargateのローンチは今もまだ、あまり知られていない。
今週たまたま会う機会があったAmazonのCTOでAWS担当VP(そしてEDMの熱心なファン) Werner Vogelsも、それを認める。彼曰く、“Fargateはそのほかの発表の下に埋もれてしまったようだ。しかしそれは、コンテナをもっとクラウドネイティブにするための重要なステップだと思うし、すでにかなりの数の顧客がFargateを採用している。”
Fargateは、AWSのコンテナサービス、Elastic Container Service(ECS)やElastic Kubernetes Service(EKS)のために、コンテナを動かすためのインフラストラクチャを抽象化する技術だ。ユーザーはコンテナオーケストレーションエンジンを指定するだけで、あとのことはこのサービスがやってくれる。個々のサーバーやクラスターをユーザーが管理する必要はない。むしろユーザーは単純に、ECSやEKSに、Fargateでコンテナをローンチすると告げ、そのアプリケーションのCPUとメモリの要求を定義し、あとはサービスにまかせる。
Fargateに関する長いブログ記事を今日(米国時間4/11)発表したVogelsにとってこのサービスは、デベロッパーが、インフラを気にせずに自分のアプリケーションだけに集中できるようにするというAWSのミッションの一環だ。彼曰く“クラウドの初期のころを、よく思い出す。AWSが登場するまでは、クラウドから仮想マシンを提供するサービスしかなかったんだ。多くの企業がそれを利用してビジネスを築き成功させてきたが、でも仮想マシンを動かすときには、依然としてハードウェアを管理しなければならない。[…] われわれがAWSのクラウドコンピューティングサービスの中核であるECSをかつて導入したときに起きたことの一つは、いろんなものをハードウェアから切り離してしまったことだ。[…]それによってデベロッパーの生産性は、ものすごく上がったと思うね”。
しかしAWSやECSの上でコンテナを動かそうとすると、初期のコンテナツールでは、コンテナを実際に動かすこととは無関係な多くのことを、やらなければならなかった。“それは、クラウドの初期と同じだ”、とVogelsは語る。“仮想マシンがコンテナにとってのハードウェアになってしまっている。デベロッパーはコンテナのオーケストレーションのために、VMを相手に大量の作業をしなければならない”。
しかしAmazonの顧客が求めるのは単純に自分のコンテナを動かすことだけだ。Vogelsの言う“ハードウェアに直接触(さわ)るような管理作業”なんか、やりたくない。“それはまるで、クラウド以前の時代に戻ったみたいだ”、とVogelsは述べ、そして今日のブログ記事では、“コンテナのオーケストレーションは、あまりクラウドネイティブではない、といつも感じていた”、と言っている。
Vogelsは、インフラストラクチャを気にしなければならないならそれはクラウドネイティブではない、と考えているようだ。彼によると、AWSの最初の約束は、インフラストラクチャに関してはAWSが面倒見るからデベロッパーはビジネスにとって重要なことだけに専念すればよい、というものだった。その哲学をさらに徹底したサービスがFargateであり、Lambdaだろう。
ECSやEKSのようなクラウドサービスがあっても、クラスターはまだ完全に自動的に動くわけではなくて、つねに必要とはしない能力や容量でも、ユーザー自身が確保(プロビジョニング)しなければならない。Fargateの約束は、そのようなスケーリングを自動化し、ユーザーは実際に必要とする能力と容量だけに支払えばよい、という状態にすることだ。
Vogelsはこう言う: “顧客は、ソフトウェアを作りたいだけだし、自分のアプリケーションを作りたいだけだ。このコンテナをどの仮想マシンに置くか、なんてことで悩みたくはない。でも今は、デベロッパーがそれをやっている。Fargateがあれば、ユーザーはタスクに対するCPUのタイプを指定するだけで、スケーリングは自動的に行われる。実際に使う能力容量に対してだけ、支払えばよいのだ”。
インフラの抽象化という点では、Fargateはコンテナのためにそれをやるのだが、AWS Lambdaのようなプロダクトはもっと徹底している。それは Vogelsにとってはひとつの連続体であり、顧客の要望が生んだものだ。今のAWSはコンテナをきわめて重視しているが、彼の現実的な見方によれば、近未来がコンテナ一色に塗りつぶされてしまうわけではなくて、VMを必要とする開発ニーズも残る、VMはなくならない、という。
Lambdaのようなサーバーレスのプロダクトでは、インフラストラクチャのことをまったく考える必要がない。コンテナのことすらも。ユーザーはただ単に、やりたい処理を指定するだけだ。そしてそのコードの実行に対して支払う。しかもVogelsの視界の中では、VMとコンテナとサーバーレスは一つの連続体の各部だ。顧客は、そのどれからどれへ移行してもよい。彼によると、今ではコンテナを完全に飛び越えて、何もかもサーバーレスで行くエンタープライズも見かけるようになった、という。
〔関連記事: 昨年のre:InventにおけるFargateの発表〕