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]ボタンをクリックします。

The_Definitive_Platform_for_Modern_Apps___DC_OS

[SELECT A SERVICE]画面が表示されます。今回はSparkを選んでみます。と言っても、ここで選んだサービスが入る訳ではないのですが...理由は後述します。

Get_Started___DC_OS

[SELECT A PLATFORM]画面が表示されます。AWSを選択します。

Get_Started___DC_OS 2

[RUN DC/OS]画面が表示されます。今回はカスタマイズなしにサクっと構築したいので[Template Install]をクリックします。

Get_Started___DC_OS 3

するとこちらのドキュメントに飛ばされます。 [DC/OS Template]というリンクがあるのでクリックします。

AWS_DC_OS_Installation_Guide

DC/OSのテンプレート一覧ページが表示されます。今回は東京リージョンのHA構成を選択してみました。

DC_OS_EarlyAccess_AWS_CloudFormation

CloudFormation管理画面に飛ばされます。ここからは普通のCloudFormationの操作です。そのまま[Next]ボタンをクリックします。

Create_A_New_Stack

必要なパラメーターを設定し、[Next]ボタンをクリックします。

Create_A_New_Stack 2

オプションも特に何も設定せず、[Next]ボタンをクリックします。

Create_A_New_Stack 3

CloudFormationの中でIAMの操作がありますので、Capabilities欄にチェックを入れて、[Create]ボタンをクリックします。

Create_A_New_Stack 4

そのまましばらく待つと、StackがCREATE_COMPLETEになります。

CloudFormation_Management_Console

さて、確認。EC2が10台立ち上がっています。これはなかなか壮観ですね。ただ、AZが一つに固まっており、Multi-AZ構成になっていません。これは気になりますね。

EC2_Management_Console

EC2はAutoScalingによって起動しています。Master、Slave、PublicSlaveの3種類で構成されています。

EC2_Management_Console 2

CloudFormationのStackでは以下の2つのOutputsがあります。

Stack_Detail

DC/OS管理画面にアクセスする

CloudFormationでOutputsされたDnsAddressにWebブラウザでアクセスすると、以下のようにログイン画面が表示されます。好きなログイン方法を選びます。

DC_OS

ログインすると、ダッシュボード画面が表示されます。

DC_OS 2

[Nodes]をクリックすると、DC/OSを構成しているノード(EC2)の一覧が表示されます。こちらのノードの状況が確認できるようにです。

DC_OS 7

Sparkをセットアップする

さて、それでは実際にDC/OS上にアプリケーションをセットアップしてみます。[Universe]をクリックし、[Package]の中にある[Spark]をクリックします。

DC_OS 3

ポップアップが開くので[Install Package]をクリックします。

DC_OS 4

[Success!]と表示されます。この間全く時間かかりません。早い。

DC_OS 5

[Service]を開くと、Sparkが追加されているのがわかります。こちらをクリックすると...

DC_OS 6

Sparkの画面が開きます。あっという間に、すごく簡単に、Sparkクラスタが構築できました!

Spark_Drivers_for_Mesos_cluster

さいごに

とりあえず動かすところまでをやってみました。管理が大変な分散アプリケーションクラスタをこんなに手軽に立ち上げられるのはすごいなと思いました。内部の細かい仕組みなどはこれから調べてみます!