Agile Cat — in the cloud

Elastic Beanstalk とは? – Amazon CTO の Werner Vogels が語る

Posted in .Selected, Amazon, PaaS by Agile Cat on January 25, 2011

AWS Elastic Beanstalk: A Quick and Simple Way into the Cloud
By Werner Vogels
January 19, 2011 12:00 AM


Flexibility is one of the key principles of Amazon Web Services – developers can select any programming language and software package, any operating system, any middleware and any database to build systems and applications that meet their requirements. Additionally customers are not restricted to AWS services; they can mix-and-match services from other providers to best meet their needs. A whole range of innovative new services, ranging from media conversion to geo-location-context services have been developed by our customers using this flexibility and are available in the AWS ecosystem. To enable this broad choice, the core of AWS is composed of building blocks which customers and partners can use to build any system or application in the way they see fit. The upside of the primitive building block approach is ultimate flexibility but the flipside is that developers always have to put these blocks together and manage them before they can get started, even if they just quickly want to deploy a simple application.

フレキシビリティは、Amazon Web Services における重要な原則の1つである。つまり、デベロッパーは、あらゆるプログラミング言語および、ソフトウェア・パッケージ、オペレーティング・システム、ミドルウェア、データベースを選んで、自身の要件を充たすシステムやアプリケーションを構築できなければならない。 さらに顧客は、AWS サービスに制約されていない。 つまり、そのニーズを最適な方法で充たすために、他のプロバイダーから提供されるサービスを、組み合わせることが可能となる。たとえば、メディア変換のサービスから地図ロケーションのサービスにいたる、革新的で斬新なサービス全体が、この柔軟性を活用する顧客により開発され、また、AWS エコシステムの中で利用できる。 この、広範囲におよぶ選択を実現するために、AWS のコアはビルディング・ブロックで構成され、それらを用いて顧客とパートナーは、あらゆるシステムとアプリケーションを、その目的に適合した方式で構築できる。 プリミティブなビルディング・ブロック上では、究極の柔軟性を持つがアプローチが展開される。 しかし、その一方では、シンプルなアプリケーションをディプロイする場合であっても、それに先立ちデベロッパーは、ブロックを組み立て、管理していくことを、常に要求されていた。


To battle this complexity, developers who do not need control over the whole software stack often use development platforms that help them manage their application development, deployment and monitoring. There are some excellent platforms running on AWS that do precisely this; Ruby on Rails developers have Heroku and Engine Yard, Springsource users have CloudFoundry Drupal developers can use Acquia, and PHP aficionados can sign up for phpfog, just to name a few. These platforms take away much of the “muck” of software development to the extent that most RoR developers these days will choose to run on a platform instead of managing the whole stack themselves.

この複雑さと闘うためには、開発プラットフォームで頻繁に使用されるソフトウェア・スタック全体を、デベロッパーがコントロールしなくても良い環境が必要となる。それにより、アプリケーションの開発および、ディプロイメント、モニタリングが促進されていく。それを AWS 上で正確に実現する、いくつかの素晴らしいプラットフォームがある。 二三の例を挙げると、Ruby on Rails には、デベロッパーが HerokuEngine Yard がある。そして、Springsource ユーザーは CloudFoundry を、Drupal デベロッパーは Acquia を使える。さらに、PHP マニアは phpfog に SignUp できる。 それらのプラットフォームは、ソフトウェア開発における多くの 『 ムダ 』を取り去り、今日における RoR デベロッパーが、ソフトウェア・スタック全体を管理するのではなく、プラットフォーム上での実行に注力できるようにする。

Developers have continuously asked us to create similar platforms to simplify development on AWS. However, given that there are probably as many different approaches to development as there are developers, instead of creating a particular platform, we are launching AWS Elastic Beanstalk, an application development container that can be the basis for the development of many different development platforms. It targets both the application developer by providing a set of simple tools to get started quickly and the platform developer by giving control over the underlying technology stack.

デベロッパーたちは、AWS 上での開発を単純化するために、それらの類似するプラットフォームを作るようにと、継続的に求めてきた。 しかし、デベロッパーの数に等しいだけの、開発に関するアプローチがあるため、私たちは特定のプラットフォームを作成する代わりに、AWS Elastic Beanstalk を立ち上げた。それは、多様な開発プラットフォームにおいて、それらの基礎となり得る、アプリケーション開発コンテナである。 それは、素早く開発に着手するためのツール・セットを、アプリケーション・デベロッパーに供給することで、また、基礎をなすテクノロジー・スタックの制御を、プラットフォーム・デベロッパーに提供することで、双方をターゲットにしている。


Elastic Beanstalk makes it easy for developers to deploy and manage scalable and fault-tolerant applications on the AWS cloud. It takes just minutes to get started and deploy your first application. AWS Elastic Beanstalk automatically creates the AWS resources and application stack needed to run the application, freeing developers from worrying about server capacity, load balancing, scaling their application, and version control. There is no charge to use Elastic Beanstalk and developers only pay for the AWS resources used to run their applications.  Elastic Beanstalk stays true to the AWS principles by not locking customers into a black box; Elastic Beanstalk creates resources on behalf of the developer providing transparency and control over application operations as well making it easy to move applications out of the container at any time. An Elastic Beanstalk container comprises an application software stack running on Amazon EC2 compute resources with an Elastic Load Balancer, pre-configured EC2 Auto-Scaling, monitoring with Amazon CloudWatch, the ability to store data in Amazon S3, and multiple database options.

Elastic Beanstalk は AWS クラウド上で、スケーラブルでフォールト・トレラントなアプリケーションの、デベロッパーによるディプロイと管理を容易に実現する。あなたにとっての、初めてのアプリケーションのディプロイは、わずか数分で完了するだろう。 AWS Elastic Beanstalk は、対象となるアプリケーションの実行に必要な、AWS リソースとアプリケーション・スタックを自動的に作成する。その結果として、デベロッパーは、サーバー容量や、ロード・バランシング、アプリケーションのスケーリング、そしてバージョン・コントロールといった厄介ごとから解放される。 Elastic Beanstalk を使うために、コードを変更する必要性はない。そしてデベロッパーたちは、対象となるアプリケーションが消費する AWS リソースの分だけ、対価を支払うことになる。Elastic Beanstalk は、顧客をブラック・ボックスにロックインしないというAWS の原則に対して忠実である。つまり、Elastic Beanstalk は、アプリケーション運用における透過性を実現し、その制御を提供する。 したがって、デベロッパーにとって適切なかたちでリソースは作成され、また、対象となるアプリケーションは、いつでもコンテナから容易に取り外せるようになる。Elastic Beanstalk コンテナが構成するのは、Amazon EC2 コンピューティング・リソース上で実行される、アプリケーション・ソフトウェアのスタックである。そして、このスタックには、Elastic Load Balancer および、事前にコンフィグレーションされた EC2 Auto-Scaling、Amazon CloudWatch によるモニタリング、Amazon S3 へのデータ・ストア、そして多様なデータベース・オプションが含まれる。


Developers who want even more control have access to the AWS resources supporting their application and can easily select more advanced deployment options such as using multiple Availability Zones for higher availability, logging into their Amazon EC2 servers, opening specific network ports for use, or taking control of Elastic Load Balancer or Auto-Scaling settings. The public beta release of AWS Elastic Beanstalk supports a container for Java developers using the familiar Linux / Apache Tomcat application stack. We plan to make additional containers available over time including support for customers and solution providers to develop and share their own containers.

さらに多くの制御を必要とするデベロッパーは、自身のアプリケーションをサポートしてくれる AWS リソースへアクセスし、先進的なディプロイメント・オプションを容易に選択できる。それらのオプションには、さらなる高可用性のための マルチ Availability Zones の利用および、Amazon EC2 サーバーへのログイン、特定ネットワーク・ポートのオープン、そして Elastic Load Balancer と Auto-Scaling の設定などが含まれる。 AWS Elastic Beanstalk のパブリック・ベータ・リリースでは、多くの Java デベロッパーのが利用している、Linux /  Apache Tomcat アプリケーション・スタックのためのコンテナがサポートされる。私たちの計画は、時間をかけながら追加のコンテナを提供していくことである。 そして、そこには、自身のコンテナを開発/共有する、顧客とソリューション・プロバイダーのニーズが取り込まれていく。

AWS Elastic Beanstalk has been developed in such a way that other programming platforms can be created relatively easily. This is extremely important as the AWS developer ecosystem has always been very rich and we want to keep it that way. Our goal is to ensure every developer’s favorite platform is always available on AWS so they can stop worrying about deploying and operating scalable and fault-tolerant application and focus on application development. In a nutshell, we want to let a thousand platforms bloom on AWS.

これまでの AWS Elastic Beanstalk は、他と比べると容易に、プログラミング・プラットフォームを作成できるような方式で開発されてきた。AWS デベロッパーによるエコシステムが極めてリッチであり、また、そのような状態を維持していこうと考えるとき、この方式がとても重要になる。 私たちのゴールは、それぞれのデベロッパーに好まれるプラットフォーム群が、AWS で常に利用できる状態を保証することにある。したがって、それらのデベロッパーたちは、デプロイメントや、スケーラブルな運用、フォールト・トレラントなアプリケーションについて頭を悩ませることなく、自身のアプリケーション開発に集中できるようになる。簡単いうと、無数のプラットフォームが、AWS 上で花開くようにすることが、私たちの望みである。

Last week I ran into an AWS customer at CES who was enthusiastic about how his digital production workflow and video encoding is now running reliably in the cloud. When discussing how AWS could improve to serve him even better he finished with “I have a bunch of smaller java apps that I really want to run in AWS but I just can’t be bothered with picking the right instance size and setting up the load-balancing, etc.” This is exactly where Elastic Beanstalk will help: to make it even simpler to get started and to run applications in the AWS cloud. “Easy to begin and impossible to outgrow” is an excellent characterization of Elastic Beanstalk which handles deployment, scaling and reliability such that its customers don’t have to.

先週のことだが、CES で出会した AWS の顧客は、自身のデジタル・プロダクション・ワークフローとビデオ・エンコーディングが、クラウド上で確実に動作している様子について、興奮気味に私に説明してくれた。AWS は、どのようにしたら、さらに良いサービスを提供できるのかというディスカッションは、『 一連の小さな java アプリケーションを持っていて、それらを確実に AWS 上で動作させたい。しかし、適切なインスタンスのサイズを選んで、ロード・バランシングを設定することは、苦痛以外の何ものでもない 』という、彼の発言で終了した。 それは正に、Elastic Beanstalk が支援していく領域である。 つまり、AWS クラウドにおけるアプリケーション運用について、容易な着手と単純な実行を実現することだ。 『 容易にはじまり、身の丈に合わせて成長する』という表現が、Elastic Beanstalk の特質を正確に言い表す。それにより、デプロイメント/スケーリング/信頼性が確保され、そこから顧客が開放される。

To get started using AWS Elastic Beanstalk, visit More information on the launch can be found on the AWS developer blog.

AWS Elastic Beanstalk を使い始めるときには、 を参照して欲しい。 また、今回の立ち上げの詳細については、 で詳細が読める。


Amazon Web Services ブログ


この All Things Distributed という Werner Vogels さんのブログは、昨年末に見つけたものであり、とても期待しています。 割と早めに、こうして抄訳をご紹介できて良かったと思っています。こういう人がいて、また、James Hamilton さんみたいな人がいて、原動力として機能しているところが、きっと AWS の強さの秘密なのでしょう。 ーーー __AC Stamp 2


Amazon CTO のブログ – All Things Distributed
Amazon は Beanstalk で、Microsoft と Salesforce に対抗していく!
Amazon Elastic MapReduce のアップデート – 5TB オブジェクトにも対応
GPGPU を用いたソートについて考える – James Hamilton

Comments Off on Elastic Beanstalk とは? – Amazon CTO の Werner Vogels が語る

%d bloggers like this: