Asgardを使ってみる。

Asgardって?

AsgardはNetflixが出しているオープンソースAWSマネージメントコンソールです。特にAWSだけでなくても使えるようにしてあるようにもみえますが、実質上はAWSのみが現在対応されています。あまり日本で使っている人をみかけないのですが、実は結構使えるだろうなとあてをつけていて、今回AWS温泉ハッカソンがあるのでせっかくなのでまずはAsgardをいじってみることにしました。

AsgardのWebサイトはこちら。


Asgardの特徴

AsgardがAWSのマネージメントコンソールと違って最も特徴的な点は、AWSのマネージメントコンソールが各サービス毎の管理機能を提供しているのに対して、Asgardはアプリケーションから見た管理にかなり重点をおいています。Appとよばれるアプリケーションのグループを作って、そこに各サービスを割り当てていくような方法を取ります。

Asgardをインストールしてみよう


https://github.com/Netflix/asgard/wiki

のとおりにやるだけですが、まずは下記のものが必要になります。

  1. AWSアカウント
  2. SimpleDBとSQS
  3. Asgardのjarファイル
  4. AWSのアカウント、アクセスキーIDとシークレットキー
  5. JDK 1.6以上


Asgardをインストールするサーバで、

java -Xmx1024M -XX:MaxPermSize=128m -jar asgard-standalone.jar

とすれば良いだけです。インストールはこれだけ。すっごい簡単です。
実態はTomcat Embeddedも入ってるので、デフォルトだと8080番ポートで起動してきます。


起動して、URLでアクセスすると、下記のような感じになります。




アカウントID、アクセスキー・シークレットキーを入れてしばらくすると、メニュー画面が出てきます。
Sydneyはまだですが、ほとんどのリージョンも対応しています。まずは東京リージョンでやってみます。




この後にAppタブでアプリケーションを作ります。これが各オートスケールグループやELBなどを管理する最も大きな構成単位になります。
このあたりはBeanstalkと少しかぶるのかもしれません。Appタブから適当に入力していけばアプリケーションは作成できます。


では肝心のオートスケールグループの作成部分をやってみます。





もう画面がついているだけで相当楽ですね。


しかもオートスケーリンググループへの変更を変更管理して、デプロイするアプリやAMI、オートスケール設定などを変更させて、その上で元のオートスケールしたインスタンスを落とすようなことが出来るようになります。例えばアプリケーションがバージョン1からバージョン2へ移行するのに、AMIが変更があったとしても、その変更をAsgard経由で管理することが出来ます。やり方としてはELBの下に一時期に2倍のインスタンスがぶらさがる形になりますが、現状からの変更をきちんと見定めたうえで旧バージョンをターミネートできる極めて現実的なやり方だと言えます。オートスケールは動的な部分の管理が多くなるのでこのような変更管理の側面をきちんと抑えているのはとても良くできていると思います。




その他にもオートスケールでの実際のアクティビティをブラウザ上からみたりと結構至れり尽くせりな感じです。




とはいえ、たまにこんなエラーもあってそこはご愛嬌ですw





Asgard結構よいですのでぜひ使ってみてください!

Have Fun!!!