« 週刊AWS - 2013年2月11日 | メイン | AWS Summits for 2013 - 世界12都市で開催。日本は12都市で唯一の2日間開催! »

【AWS発表】AWS OpsWorks - Chefを使って柔軟にクラウド内のアプリケーション管理ができる新サービスを発表

Amazon EC2がサービス開始してから6年以上が経ちました。サービス開始後、私達はアプリケーションのデプロイや管理をより簡単にするようなソリューションをいくつも提供してきました。

2年前、関連するAWSリソースの集合を作成し、それらを整然かつ予測可能な方法でセットアップする簡単な方法を提供するためにAWS CloudFormationを、AWSクラウド上のアプリケーションをすばやくデプロイ、管理する方法としてAWS Elastic Beanstalkをサービス開始いたしました。お客様がAWS上でより多くのアプリケーションを稼動するにつれて、それらのAWSリソースを管理し、アプリケーションをデプロイする方法を自動化するためのより洗練されたツールを求めるようになりました。

AWS OpsWorksはAWSの新しいアプリケーション管理ソリューションです。リソースのプロビジョニング、設定管理、アプリケーションのデプロイ、監視、アクセスコントロールを含むアプリケーション全体のライフサイクルを管理するのに役立ちます。AWS OpsWorksはどんな複雑なアプリケーションとも一緒に使うことができ、特定のアーキテクチャパターンに依存しません。

AWS OpsWorksは任意の制限を課すことや、過度に制約されたモデル内で動作するよう強制することなく、アプリケーションのライフサイクルを管理するプロセスを単純化するように設計されています。 アプリケーションスタックを自分の好きなように設計できます。

システムレベルの設定変更をしたり、ツール、ユーティリティ、ライブラリ、およびアプリケーションのコードをアプリケーション内のEC2インスタンスにインストールするために、Chefのレシピを使うことができます。 AWS OpsWorksのイベントモデルを活用することにより、アプリケーションのライフサイクルオの重要なポイントで、お好みのレシビをアクティブにすることができます。AWS OpsWorksは非常に多くのソースコードのリポジトリからコードをインストールする機能を持っています。

AWS OpsWorksのご利用には、追加の料金はかかりません。アプリケーションで使っているAWSのリソース(EC2インスタンス、EBSボリュームなど)だけの支払いでOKです。

AWS OpsWorksは本日よりご利用可能となっておりますので、今すぐ使いはじめることができます!

AWS OpsWorksの概念
最も重要なAWS OpsWorksの概念を見ていくことからはじめましょう。

AWS OpsWorksのStackAmazon EC2インスタンスとインスタンスの起動と管理のために使われる設計図(AWS OpsWorksではLayerと呼びます。)を含みます。 各Stackは1つ以上のApplicationをホストします。Stackは他のユーザー権限やアプリケーションに関連づけられているリソースのためのコンテナとして機能もします。StackはChefのクックブックへの参照をいくつでも含めることができます。

各StackはいくつかのLayerを含みます。各LayerはEC2インスタンスやEBSボリュームやElastic IPアドレスなどの関連するAWSリソースのセットアップと設定を指定します。 RubyPHPNode.jsHAProxyMemcached、およびMySQLのような一般的なテクノロジーのためのLayerをあらかじめ用意しています。 これらのLayerを自分用に拡張することもできますし、スクラッチからカスタムLayerを作ることもできます。 特定のイベント(セットアップ、設定、デプロイ、アンデプロイ、シャットダウンなど)に反応するお好みのChefレシピをアクティベートすることもできます。

AWS OpsWorksは1つ以上のリポジトリからコードを引っぱってくることにより、EC2インンスタンス上にApplicationをインストールします。コードはGit もしくは SubversionのリポジトリからHTTPリクエストを介して取得するか、Amazon S3 bucketからダウンロードするかを指定できます。

Stack、Layer、Applicationを定義した後、EC2インスタンスを作成し、それらを特定のレイヤーに割りあてることができます。 インスタンスを手動で起動することもできますし、負荷または時間に基づいてスケーリングするよう定義することもできます。どちらの方法でもインスタンスタイプ、アベイラビリティーゾーン、セキュリティグループ、およびOSをを完全に制御することができます。インスタンスは、起動中に、インスタンスを含むLayer用に定義されたレシピを使って、指定した仕様に設定されます。

AWS OpsWorksはインスタンスを監視し、Amazon CloudWatchにメトリクスをレポートします。(もちろん必要であればGangliaなども使えます。) そして、自動的に壊れたインスタンスを完全に設定された新しいインスタンスと交換します。

AWS Management Consoleを使ってAWS OpsWorksのStackを作成、管理することができます。 OpsWorks APIを介して行うこともできます。

AWS OpsWorks in Action
AWS OpsWorksのコンソールを簡単に見ていきましょう。 ウェルカムページでは、AWS OpsWorksを使いはじめる際の手順についての概要を見ることができます。

Stackを追加することから始めます。リージョンとデフォルトアベイラビリティゾーンを選択することができます。Stack内のEC2インスタンスに命名規則を設定できますし、スタックを区別しやすくするために色を選択することもできます。

AWS OpsWorksは起動している各EC2インスタンスに名前を割り当てます。名前のテーマを次の中からひとつ選択することができます。

1つ以上のChefクックブックへの参照を追加することができます。

これで作成したStackにLayerを追加することができるようになります。

Layerは事前に定義されたLayerタイプから選択することもできますし、PostgreSQLSolrなどのようなソフトウェアのためのコミュニティクックブックを使って、カスタムLayerを作成することもできます。

事前に定義されたタイプのLayerを追加した場合、必要に応じて、設定をカスタマイズすることもできます。例として、以下にRuby on Rails Layerを選択した際のカスタマイズ方法を紹介します。

LayerにはカスタムChefレシピと任意の追加ソフトウェアパッケージを加えることができます。さらにEBSボリュームやElastic IPアドレスを要求することもできますし、RAIDマウントポイントを設定することもできます。

AWS OpsWorksが用意しているビルトインのChefレシピを確認することができます。アプリケーションライフサイクルの様々な点で使うためのカスタムChefレシプを追加することもできます。PHP Layerが含まれたビルトインレシピは次のようになっています。

こちらが4つのLayerを追加したスタックの様子です。(追加したLayerの数とタイプにより、見ためは変わります。)

Applicationはあなたのコードです。次のように、1つ以上のアプリーションをスタックに追加できます。オプション(およびこの画面)は追加するアプリケーションのタイプによって変わります。

Stack、Layer、Applicationが定義できたら、各LayerにEC2インスタンスを追加していきます。少し前に述べたとおり、アプリケーションに応じて、Layerに固定数のインスタンスを追加することもできますし、時間または負荷に基づいたスケーリングを使うこともできます。

非常に柔軟な方法で時間に基づいたスケーリングを定義することができます。 曜日毎に同じスケーリングパターンを使用することもできますし、特定の日のためのパターンを定義することもできますし、それらを組みあわせることもできます。

全ての定義が完了したら、全てのインスタンスをワンクリックでスタートすることができます。(必要であれば個別にインスタンスを制御することもできます。)

間も無くインスタンスが稼動を開始します。

その後、Applicationをインスタンスにデプロイすることができます。

どのインスタンスが各デプロイを受けとるかを正確に制御することができます。AWS OpsWorksはアプリケーションのLayer全てを設定するために、選択されたインスタンス上で各々、リポジトリからコードを取得し、デプロイレシピを実行します。 これは次のように動作します。アプリーションをデプロイする際、データベースlayerに新しいテーブルを作成するような、特定の設定作業を実行するレシピがあるとします。この時、Layer上のレシピは、単一のアクションでアプリケーション内の全てのリソースに設定を行います。


また、インスタンスにログインする必要があるかもしれないということはよくあります。この際にもAWS OpsWorksは役立ちます。IAMユーザー毎にSSHの鍵を設定できますし、どのIAMユーザーがsudoを使えるかも設定できます。

AWS OpsWorksの最上位レベルでは、数回のクリック操作で、スタック全体を管理できます。

AWS OpsWorksツアーを楽しめましたでしょうか? 今回はハイライトをお見せいたしましたが、AWS OpsWorksにはここでは紹介しきれなかった機能がまだまだあります。

AWS OpsWorks デモ
AWS OpsWorksのデモムービー(約5分)を用意いたしましたのでご覧ください。

早速はじめましょう!
いつものように、AWS OpsWorksをはじめるための資料をいくつか用意しています。

今後の予定
現在、AWS OpsWorksはEC2インスタンス上のソフトウェアを完全にコントロールすることができます。そして、S3やAmazon RDSのようなAWSリソースと統合するためにCehfレシピを使えます。今後、複雑なコントロールの必要がないレイヤーの管理を単純化するために、追加のAWSリソースの統合サポートの導入を検討しています。いつもどおり、皆さまのフィードバックが、開発の優先順位づけの助けになります。

いかがでしたでしょうか?
是非この新しいAWS OpsWorksを試して、感想をお聞かせください!

堀内康弘 (Facebook, Twitter)

 

 PS - Amazon CTOであるWernerもOpsWorksに関するブログを公開しています。こちらもお見逃しなく! - Expanding the Cloud - Introducing AWS OpsWorks, a Powerful Application Management Solution

コメント

トラックバック

この記事のトラックバックURL:
http://www.typepad.com/services/trackback/6a00d8341c534853ef017d4123fcfc970c

【AWS発表】AWS OpsWorks - Chefを使って柔軟にクラウド内のアプリケーション管理ができる新サービスを発表を参照しているブログ:

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31