AWSブログを3行でまとめる試み#4 : 新サービス AWS OpsWorks を発表するぞ
- AWS OpsWorks という新サービスを始めたぞ。AWS で動かすアプリケーション全体の管理を集中 & 自動化できるぞ。細かい調整は chef でするんだ。
- Stack と呼ばれる設計図みたいなのを作っておくとそこから、ボタン一発で Rails + memcached + HAproxy + MySQL みたいな好きな組み合わせで立ち上げられて、git からアプリケーションコードをデプロイして動かすなんてことができるんだ。しかも Autoscaling の設定とか障害時のインスタンス差し替えも一括でできちゃう! (ドヤァ)
- OpsWorks の利用には料金はかからない。また今日からもう使えるぞ。びっくりだろう?
すみません。今回は内容が濃いいので「まとめる」というか勝手に解釈して3行で書いてます。
コメント
これまたすごいのがリリースされましたねえ。AWS の開発速度が速すぎて3行ブログがつらい。
CloudFormation とかではインフラをまとめて用意するところまではできたけど、その中身で動く各種ミドルウェアやアプリケーション自体のプロビジョニングまでは面倒見切れなかった。OpsWorks は、そこまで含めて統合管理するためのツール・・・という理解になるだろうか。そしてプロビジョニングだけでなく AutoScaling とかその後の運用周りも、その統合された単位で面倒をみれるようにする。
例えば Rails、memcached、HAproxy、MySQL を使ったアプリケーションを開発したとする。これまではその運用環境を AWS で用意しようと思ったら EC2 をひとつひとつ立ち上げて、そこにそれぞれソフトウェアをインストールして、設定してということをしなければならなかった。最近はさすがにそれは面倒だよね、というのでみんな puppet や chef を使って設定自体は自動化するようになった。OpsWorks はその辺の「最近はこうするよね」というベストプラクティスを、コンソールからぽちぽちやるだけで実践できちゃうもの。まあ実際には chef のレシピの細かい調整などがあるので、そこまで簡単ではないだろうけど。
Stack という設計図に Layer を追加していってシステムの系全体を表現した抽象概念を作り、そこに実体である仮想サーバーつまりはインスタンスを割り当てて、システムを実体化する。それを一つの単位として、まとめて運用管理できるようにする、というもの。
実際コンソールから画面を触ってみると、Rails レイヤ、memcached レイヤを追加して、Rails レイヤにはこれこれこのレシピを追加して・・・という感じでひとつひとつマニュアル設定してやらなくても、コンポーネントを選んでいく感じでインフラ設計ができる。そしてその設計図から実際に動くシステムができあがる。面白い。
ぱっと見て思ったのは例の Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM) - Publickey にあった "クラウドネイティブなデプロイ" という「徐々にデプロイしてくのが面倒なら、システムまるごとコピーを立ち上げてロードバランサーで一気に切り替えちゃえばいいじゃない」という超富豪デプロイ、あれに使えるのだろうなと思った。この話を見たときに、実際理屈上はそれができるのは分かるけど、システムの系全体のコピーを作ってそれをひとまとまりのパッケージとして管理するというのが結構大変なんじゃないの、と思ってた。OpsWorks はその手段を提供しますね。
開発者に、実際のプロダクションで動いているのと同じ設計図 ─ Stack を渡しておいて、インスタンスは少なめに割り当てて検証用の環境を即座に立ち上げるなんてこともできる。
夢がひろがりんぐですなあ。
ぬ・・・まったく、3行では済まなかった。反省はしていない。
追記
例えば顧客毎にアプリケーションの実行環境を用意するようなビジネスのモデルなんかでも大活躍ですね。グループウェアとか。むしろビジネス的には、そこが一番重要なところなのかもしれない。