AWS上にDC/OS環境を構築する
はじめに
DC/OS(Datacenter Operating System)は、Mesosphereが開発した分散OSです。複数のコンピューターを単一のコンピュータであるかのように取りまとめて管理することができます。Mesosphere曰く「データセンターが一つのPCであるかのように」扱えるとのこと。DC/OSはApache Mesosをベースに開発されており、Web UIとCLIがあります。一言で言うと「簡単に分散アプリケーションを構成できる」ものです。オープンソース版(コミュニティ版)は無料で使えます。これにMesosphereがサポートなどのオプションをつけた有償のエンタープライズ版もあります。
まぁ、物は試し。まずはやってみましょう!ってことで、AWS上に DC/OS環境を構築してみました。
やってみた
構築する
DC/OSのWebサイトから「Get Started]ボタンをクリックします。
[SELECT A SERVICE]画面が表示されます。今回はSparkを選んでみます。と言っても、ここで選んだサービスが入る訳ではないのですが...理由は後述します。
[SELECT A PLATFORM]画面が表示されます。AWSを選択します。
[RUN DC/OS]画面が表示されます。今回はカスタマイズなしにサクっと構築したいので[Template Install]をクリックします。
するとこちらのドキュメントに飛ばされます。 [DC/OS Template]というリンクがあるのでクリックします。
DC/OSのテンプレート一覧ページが表示されます。今回は東京リージョンのHA構成を選択してみました。
CloudFormation管理画面に飛ばされます。ここからは普通のCloudFormationの操作です。そのまま[Next]ボタンをクリックします。
必要なパラメーターを設定し、[Next]ボタンをクリックします。
オプションも特に何も設定せず、[Next]ボタンをクリックします。
CloudFormationの中でIAMの操作がありますので、Capabilities欄にチェックを入れて、[Create]ボタンをクリックします。
そのまましばらく待つと、StackがCREATE_COMPLETEになります。
さて、確認。EC2が10台立ち上がっています。これはなかなか壮観ですね。ただ、AZが一つに固まっており、Multi-AZ構成になっていません。これは気になりますね。
EC2はAutoScalingによって起動しています。Master、Slave、PublicSlaveの3種類で構成されています。
CloudFormationのStackでは以下の2つのOutputsがあります。
DC/OS管理画面にアクセスする
CloudFormationでOutputsされたDnsAddressにWebブラウザでアクセスすると、以下のようにログイン画面が表示されます。好きなログイン方法を選びます。
ログインすると、ダッシュボード画面が表示されます。
[Nodes]をクリックすると、DC/OSを構成しているノード(EC2)の一覧が表示されます。こちらのノードの状況が確認できるようにです。
Sparkをセットアップする
さて、それでは実際にDC/OS上にアプリケーションをセットアップしてみます。[Universe]をクリックし、[Package]の中にある[Spark]をクリックします。
ポップアップが開くので[Install Package]をクリックします。
[Success!]と表示されます。この間全く時間かかりません。早い。
[Service]を開くと、Sparkが追加されているのがわかります。こちらをクリックすると...
Sparkの画面が開きます。あっという間に、すごく簡単に、Sparkクラスタが構築できました!
さいごに
とりあえず動かすところまでをやってみました。管理が大変な分散アプリケーションクラスタをこんなに手軽に立ち上げられるのはすごいなと思いました。内部の細かい仕組みなどはこれから調べてみます!