Mesosphere DCOSでつくるクラウドアプリケーション

第1回DCOSを使ってみよう

DCOS GA開始

2015年6月10日、米国Mesosphere社がかねてより開発を行っていたDCOS(Data Center Operating System)が晴れてGA(General Available, 一般向け利用の開始)となりました。弊社は以前よりMesosphere社と密接な関係を持っており、DCOSについてもその評価を進めてきましたが、GAとなったことを受けて、改めてDCOSについてご紹介したいと思います。

DCOSとは何か、DCOSで何ができるのか?

Mesosphere社はデータセンター全体をあたかも1つのオペレーティングシステムでコントロールする仕組みがDCOSであると言っています。とはいうものの、皆様の中には普段から自社の内製ツールやソフトウェアでデータセンターを運営していたり、OpenStackのような複数のホストを制御して一体のサービスとしてユーザに提供している方も多いと思います。さてDCOSとはそのようなソフトウェアとどのように異なるのでしょうか。Mesosphere社の挙げるDCOSを利用する利点は、以下の通りです。

1.Scale Infinity(無制限のスケーラビリティ)

DCOSはオープンソースのMesosをベースに構築されたクラスタソリューションスイートです。Mesosは従来のクラスタ管理ソフトウェアと比べ、配下でコントロールできる処理用ホスト(ノード)を非常に大きくできることが特長の1つです。1つのクラスタマスターはおよそ1万ノードの処理用ホストを制御することが可能です。

2.Run Anywhere(どこでも動く)

従来のクラスタ管理ソフトウェアは動作要件が複雑であるなどの理由で、オンプレミス環境でのみ動作することが一般的でした。昨今ニーズとして現れている、オンプレミスとパブリッククラウドを併用するような用途のためには大規模な改修や、高価なアドオン、複雑な運用管理を必要とすることが一般的です。DCOSは設計当初からハイブリッドクラウドの利用が想定されており、複数のリソース、クラウドを効率的に管理します。

3.Never Fail(ダウンしない、可用性が高い)

DCOSではクラスタで実行したプロセスを監視し、何らかの理由で停止した場合には自動的に再起動する機能を有しています。これにより、サービスを常時稼働させておくために別途プログラムを導入したり、作り込む必要がありません。

4. Optimize Resources(リソースの最適化)

DCOSは投入したプロセスが要求するリソース(CPUコア数、メモリ量など)を把握し、クラスタ内部の空きリソースを適切に割り当てます。したがって、事前に負荷を予測し最大利用にあわせて高価なサーバやインスタンスを事前に用意しておく必要がありません。DCOSクラスタ全体のリソースが逼迫した時には、追加のサーバやインスタンスを適宜追加することで、クラスタ全体のリソース容量をオンデマンドで増減させることができます。

5.Operate Automatically(オペレーションの自動化)

DCOSにはオペレーションに必要な定時処理(毎週月曜9:00に行う処理など)を自動化するプログラムChronosが同梱されています。これはUNIXのcronのようにふるまい、定期的にDCOSクラスタ内でプログラムの実行を行うことができます。もちろん実行されるプログラムはDCOSによって制御され、なおかつ複数の相互依存のあるプログラムを順番に実行することも可能です。

6.Develop Quickly(迅速な開発)

これによりアプリケーションプログラマはインフラの容量を気にせず、DCOSでの開発に専念することができるようになります。

7.Docker Support(Dockerサポート)

DCOSでは、Dockerと連携してアプリケーションを実行する機能をサポートしています。Dockerコンテナによりアプリケーションの異なる実行環境を簡便にパッケージすることが可能になり、同一ライブラリ複数バージョンのサポートといった、クラスタ環境の統合に伴う課題を解決することができます。またDCOSではDockerプライベートリポジトリとの連携もサポートしているため、企業内で独自に保有しているソフトウェア資産と連携しながら柔軟でスケーラブルなアプリケーション実行基盤を提供することが可能です。

DCOSを起動してみよう

上記の特長により、DCOSは複数のサーバやクラスタのリソースをまとめ、抽象化することで1台の仮想的なコンピュータを作り上げ、アプリケーションを実行する基盤を提供することができます。私たちが普段目にするOSとはだいぶ趣きが異なりますが、DCOSは大量のサーバやインスタンスを効果的に管理するオペレーティングシステムと言えるでしょう。

まずはDCOSを起動してみましょう。現在一般利用可能なDCOSは、AWS上のインスタンスとして提供されています(導入形態にもよりますが、m3.medium、m3.xlargeインスタンスを6~9個程度使用します⁠⁠。まずはMesosphere社のホームページをブラウザで開き、右上の[Get Started]ボタンをクリックします。

画像

"Community Edition"と、"Enterprise Edition"の2つがありますが、今回は"Community Edition"の[Get Started For Free]をクリックします。

画像

導入するパブリッククラウドを選択します。"Community Edition"はAWS上でしか提供されていませんので、AWSを選択します 。

画像

AWSの起動画面に遷移しますので、⁠Get Started on AWS For Free]をクリックし、

画像

続けて[Get Started For Free]をクリックします

画像

導入形態を選択します。今回は"US East(us-east-1)"リージョンの、シングルマスター構成を選択しました。

画像
※)
"3 Masters"を選択すると、DCOSマスターをHA高可用構成で構成して起動することができるようになります。

実際の構成はAWS CloudFormationを使用して行われます。⁠Stack⁠⁠→⁠Name]にDCOSクラスタの名前を入力し、⁠Next]ボタンを押します。⁠TemplateはあらかじめMesosphereが作成済みのテンプレートがセットされていますので変更する必要はありません⁠⁠。

画像

DCOS起動に関するパラメータを指定します。

画像

それぞれの項目は以下の意味を持っています

  • AcceptEULA:End User License Agreementに同意する必要があります。⁠Yes]を選択します
  • AdminLocation:管理インターフェイスにアクセス可能なネットワークアドレスを指定することができます。"0.0.0.0/0"を選択すると、どのアドレスからもDCOS管理インターフェイスにアクセスすることができるようになります
  • KeyName:EC2キーペア名を指定します(作成していない場合は事前に作成してください)
  • PublicSlaveInstanceCount:パブリックIPアドレスとしてアクセス可能なDCOSスレーブノードの数を指定します
  • SlaveInstanceCount:DCOSスレーブノードの数を指定します

指定したら、⁠Next]ボタンを押します 。

オプション指定画面に遷移しますが、特に指定する項目はありませんので、そのまま[Next]ボタンをクリックします 。

画像

設定のレビュー画面が表示されます。

画像

画面下部の"I acknowledge that this template might cause AWS CloudFormation to create IAM resources."にチェックを入れて、⁠Create]ボタンをクリックします。

画像

AWS CloudFormationによる作成が開始されます。作成にはおおよそ15分~30分程度かかります。

作成が完了すると、ステータスが"CREATE_COMPLETE"になり、Outputsタブにホスト名が表示されます。ブラウザで"DnsAddress"の値をURLとして開いてください。

画像

無事にDCOSの管理画面が開きました。これでDCOSの起動は完了です 。

画像

DCOSでアプリケーションを起動する

DCOSは独自のパッケージマネージャやパッケージリポジトリを有しており、1コマンドで起動することができます。現時点では以下のアプリケーションが対応しています。

  • Apache Spark
  • Apache Cassandra
  • Kubernetes
  • Hadoop
  • Apache Kafka
画像

社内で使用しているアプリケーションについても適切なパッケージングを施すことで、DCOSで利用することが可能です。自社独自のDCOSアプリケーションリポジトリで運用することも可能です。

それでは実際にDCOSアプリケーションを起動してみましょう。現在開いている管理GUIにはコマンドスニペットがありますので、端末にコピーして実行します。

mkdir -p dcos && cd dcos && \
  curl -O https://downloads.mesosphere.io/dcos-cli/install.sh && \
  bash ./install.sh . http://cl-dcos-0-elasticl-XXXXXXXXX-XXXXXXXXXX.us-east-1.elb.amazonaws.com && \
  source ./bin/env-setup

処理が完了すると、dcosコマンドを使用することができるようになります。それではApache Sparkを起動しましょう。

$ dcos package install spark

15分くらい待つと、DCOS内でSparkが起動します。⁠Services]タブをクリックすると、Sparkアプリケーションが起動していることがわかります。

画像

また、sparkのリンクをクリックすることで、Sparkの管理画面(Sparkジョブの監視画面)を見ることができます。

画像

このように、従来では何日もかかっていたSparkの導入がほんの数分で完了してしまいます。

さいごに

DCOSは数多く分散されたサーバやインスタンスのリソースを統合し、最適な運用を行うことができる新しいオペレーティングシステムであり、昨今非常に多くリリースされているクラスタ形アプリケーションの迅速な実行、拡張に極めて柔軟に対応することができます。また、今回はAWS上での動作でしたが、DCOSはオンプレミス、プライベートクラウドでの動作もサポートしており、自社内のリソース集約にも貢献します。

次回はDCOSとDockerの連携についてご紹介します。DCOSとDockerが連携することで、企業内で独自に保有しているソフトウェア資産と連携しながら柔軟でスケーラブルなアプリケーション実行基盤を提供することが可能です。

DCOSに関してのお問い合わせがありましたら、遠慮なく弊社(sales@creationline.com)までお寄せください 。

おすすめ記事

記事・ニュース一覧