クラウド図鑑 Vol.19

概要

「AWS Elastic Beanstalk」は、AWSが提供する Platform as a Service である。当然ではあるが AWS のクラウド上で稼働しており、開発したアプリケーションをアップロードするだけで、Amazon EC2 仮想サーバーやストレージ、データベースなどのAWSのリソース、あるいは、要求に応じてロードバランサーやAuto Scalingなども自動的に設定することで、AWSのインフラの持つ可用性や拡張性のある実行環境インフラをオンデマンドで用意するサービスである。開発者はアプリケーション開発に集中でき、デプロイメント関連のタスク(サーバーのプロビジョニング、負荷分散の設定、スケーリングの管理など)から解放され、アプリケーションを短期で稼働させることができる。

AWS Elastic Beanstalkの設定画面
Screenshot 2015-08-10 at 09.35.57 - Display 1
(クリックで拡大)

URL   https://aws.amazon.com/jp/elasticbeanstalk/
2015年8月10日 株式会社クラウディット 中井雅也

機能

AWS Elastic Beanstalk では開発言語として Java、Node.js、PHP、Python、Ruby、.NET がサポートされる。OSは、オープンソース系の言語の場合はAmazon Linux か Debian Linux 、.NETの場合はWindows Server 2008 R2 となる。データベースは AWSのRDSのMySQL/PostgreSQL/Oracle/SQL Server、あるいはNoSQLのDynamoDBが使える。ストレージもAWSのストレージサービスを利用できるが、特にアプリケーションからアクセスしやすいS3が中心になると思われる。アプリケーションのためにElastic Beanstalkが構成/設定するリソースはAmazon EC2やS3など、AWSのサービスそのものであり、sshでのログインやAWSコンソールでの設定でコントロールが可能である。よく使われる統合開発環境として、Java アプリケーションに対しては AWS Toolkit for Eclipse、.NET アプリケーションに対しては AWS Toolkit for Visual Studio を使用可能で、これらのツールキットを利用するアプリケーションの開発、Elastic Beanstalk へのデプロイ、テストも、開発環境 の中から行うことができる。また、Git を使用して、作成したアプリケーションを AWS Elastic Beanstalk にデプロイすることもできる。さらに、2014年から、注目が高まるコンテナー技術のDockerに対応した。これにより、ローカルの開発環境からのポータビリティとクラウド上の実行環境の柔軟性を高めている。

使いやすさ

他のAWSのサービス同様に、基本設定はAWSコンソールからの操作となり、簡単にアプリケーションをAWS上に展開・実行ができる。当然のことながら、AWSのインフラの基礎知識があるほうが望ましいが、AWSのEC2やS3, Auto-Scalingなどの設定方法などを知らない開発者でも、一連の操作で自動的にインフラの構成や設定がされるようになっている。一方で、EC2などのAWSの知識のある技術者からは、AWSコンソールやsshログインなどで通常のAWSのサービス同様のコントロールが可能である。

マニュアルや書籍など

AWSによって豊富なマニュアルやチュートリアル、リファレンスアーキテクチャなどのドキュメントが用意されている。

拡張性

Elastic Beanstalkが生成する仮想サーバーインスタンスは通常のEC2そのものなので、EC2同様にスケールアップができる。またロードバランサー(Elastic Load Balancer)やAuto-Scalingによってスケールアウトによる拡張が可能。データベースも通常のRDSなので、大きなインスタンスタイプを指定、あるいはMySQL、Oracle、または PostgreSQL と、Amazon RDS プロビジョンド IOPS ストレージを使用している場合は、ストレージを最大 3 TB まで、IOPS を最大 30,000 までプロビジョニングして、スケーリングできる。さらにMySQL、PostgreSQL、Amazon Aurora の場合は、デプロイしたデータベースインスタンスにリードレプリカを関連付け、1 つのデータベースインスタンスの容量を超えてリード処理能力を拡張できる。また日本リージョンでは現在プレビューの新サービスAuroraは、従来のRDSより高いスケーラビリティを持つよう設計されている。Amazon DynamoDBではデータの格納に制限はなく、データが増えると、保存要件するために十分な数のマシンリソースにデータが自動的に分散される。ストレージも通常のS3であるため、極めて高い拡張性を持つ。

可用性

AWSのサービスをそのまま利用することで、エンドトゥエンドで高い可用性を実現可能である。アプリケーションサーバーは、ロードバランサーによって冗長化し可用性を高める。単一障害点になりがちなデータベースは、Amazon RDSをそのまま利用するため、マルチAZ構成によるフェールオーバーや、自動バックアップ機能により、DB インスタンスのポイントインタイムリカバリなどで高い可用性と復旧性を併せ持っている。

SLA

AWS Elastic BeanstalkのSLAは特に決められていない。

自動化機能

AWS Elastic Beanstalkは、アプリケーションにあわせたインフラの自動生成サービスであり、上述のように、EC2インスタンス、ストレージ、データベース、自動スケールの設定などが自動で行われる。さらに、RDSによってデータベースのバックアップなどの運用タスクも自動化されるため、アプリケーション実行環境がエンドトゥエンドで自動化される。

セキュリティ

セキュリティ関連機能に関しても、AWS Elastic Beanstalkによって生成されるAWSの各種サービスのセキュリティを踏襲する形となる。EC2の認証/アクセス制御、S3のストレージにおけるデータの暗号化、RDSのデータベースの暗号化、VPCによる隔離されたネットワークでの運用、さらに各種の認定を受けたデータセンターの物理セキュリティによってアプリケーションやデータを保護する。

データセンターの場所

リージョンという形でデータセンターの場所を指定することができる。2011年に開設された東京リージョンをはじめとして、US(バージニア、オレゴンなど)、EU(アイルランド、フランクフルト)、アジア(シンガポール、シドニー)な1112リージョンから任意のリージョンを選択することができる。AWSはデータセンターの拡張を続けており、2016年1月には韓国リージョンが利用できるようになった。

実績・シェアなど

IDC Japanの2014年11月10日の発表によれば、2013年の国内市PaaS場規模は前年同期比42.4%増の254億3800万円となり、ベンダーシェアは1位がセールスフォース、2位がアマゾン、3位がマイクロソフト、4位がグーグルだった。この中で、AWS Elastic Beanstalkがどれだけ占めているかは不明だが、AWSのページでは、スシロー、Adobe、Rettyなどの事例が紹介されている。
米Synergy Research Groupによる2016年第3四半期におけるワールドワイドのクラウドのシェアの調査結果では、IaaSではAWSが首位でシェアは45%で、2位はMicrosoft、3位Google、4位IBM、また、PaaSにおいてもAWSはシェアトップで、2位はSalesforce.com、3位Microsoft、4位IBMとなっている。

エコシステム

AWS Elastic Beanstalkは、EC2、S3、RDSといったAWSの通常のサービスをアプリケーションのために生成するため、通常のAWSのサービスのエコシステムがそのまま活用できる。

価格および支払い方法

AWS Elastic Beanstalk として料金は発生しない。アプリケーションの保存、実行に必要な EC2 インスタンス、S3 バケットなどのAWS リソースに対して料金が発生し、料金体系もEC2やS3と同じである。