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

第2回 DCOSでアプリケーションを実行してみよう

この記事を読むのに必要な時間:およそ 3 分

前回は,DCOS環境の構築方法と,アプリケーションの実行について解説しました。今回はDCOSとDockerを組み合わせた場合を含めた,より踏み込んだアプリケーションの実行方法について,いくつか例を挙げて解説します。

Worker Nodeの種類 ─Public Worker NodeとPrivate Worker Node

DCOSで実際にアプリケーションを動作させるノードをWorker Nodeと呼び,Publicゾーンに配置されるノード数と,Privateゾーンに配置されるノード数を任意に変更することができます。

Private Worker Nodeは内部ネットワークのIPアドレスだけが割り当てられ,インターネットからのアクセスができないのに対し,Public Worker Nodeは,グローバルIPアドレスが割り当てられ,インターネットからアクセスすることが可能です。

Public Worker Node,Private Worker Nodeを含むDCOSの各コンポーネントの関係図を以下に示しますMesosphere DCOS documentationより抜粋)。

画像

通常DCOSでアプリケーションの動作を開始すると,アプリケーションは自動的にPrivateゾーンのWorkerノードに配置されるため,インターネットからアクセスすることができません(Private Worker Nodeからインターネットへのアウトバウンド・アクセスは可能です)。これはApache Spark,Apache Cassandraのような,特段インターネットからのアクセスを必要としないアプリケーションであれば問題はありません。

しかし,ブラウザ経由でユーザとのやりとりを必要とするようなアプリケーション(たとえばWordpressのようなWebアプリケーション)の場合はインターネットとの疎通が必要であるため,Private Worker Nodeに配置すると,実質的に意味がなくなってしまいます。その場合は,WebサーバをPublic Worker Nodeに配置し,データベースをPrivate Worker Nodeに配置するようにDCOSに指示することで対応することができるようになります。

また,いずれのWorker NodeもCoreOSで動作しており,一般的なスクリプト(python/sh/bash)も動作させるることができます。

GUIとCLI

DCOSではGUIとCLIでできることが明確に分かれています。GUIはDCOSクラスタの稼働状態を表示することが主な機能であるのに対し,CUIはDCOSクラスタに対して操作を行うことが主な機能となります。

アプリケーションの実行方法

DCOSでのアプリケーション実行方法は大きく分けて2種類あります。

  1. DCOSアプリケーションリポジトリにあるアプリケーションの実行
  2. 独自アプリケーションの実行

DCOSアプリケーションリポジトリにあるアプリケーションの実行は非常に簡単で,dcos package install <アプリケーション名>と実行するだけで,DCOSクラスタ上でアプリケーションの実行が開始します(詳細は後述)。ただしDCOSアプリケーションリポジトリに登録されているアプリケーションに限られます。

DCOSアプリケーションリポジトリにない独自アプリケーションも,JSONファイルを記述することで実行することが可能です。複数の入力ファイルや実行プログラムのオンデマンドの配信(ステージイン)も行うことができます。Dockerと連携したアプリケーション実行もこの方法でサポートされています。こちらも後ほど実際のサンプルアプリケーションを用いて手順を記述します。

DCOSアプリケーションリポジトリ

DCOSの大きな特長の1つが,独自のアプリケーションリポジトリを有することです。これにより,ユーザはコマンド1つで複数のノードから構成されるクラスタアプリケーションをデプロイすることが可能です。現時点で対応しているアプリケーションは以下のとおりです。

  • Marathon
  • Chronos
  • Apache Spark
  • Apache Kafka
  • Kubernetes
  • HDFS
  • Apache Cassandra

アプリケーションリポジトリ自体はGitHub上でメンテナンスされており,今後Mesosphere社によって順次拡充されていくものと思われます)。

※)
DCOSのリファレンスページで現在利用可能なアプリケーションと,計画中のアプリケーションの一覧を見ることができます。

アプリケーション例① Apache Spark

1つめの例がApache Sparkです。Apache SparkはDCOSアプリケーションリポジトリに登録されているアプリケーションで,1コマンドで実行することができます。前回記事で解説した通り,CUIから以下のコマンドを実行すると,DCOSクラスタでApache Sparkが起動します。

$ dcos package install spark

同様にDCOSアプリケーションリポジトリに登録されているアプリケーションは,dcos package install <アプリケーション名>で実行することができます。

著者プロフィール

木内満歳(きうちみつとし)

クリエーションライン株式会社 シニアコンサルタント

外資系コンピュータメーカにてプリセールス・インテグレーションエンジニアとしてスーパーコンピュータシステム,教育システム,ISP,IP放送システムの設計・構築を担当。2009年よりクラウドコンピューティング・モジュラーデータセンターのエバンジェリストとして活動。

バックナンバー

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

コメント

コメントの記入