さいごに
この度は拙著を手に取っていただきありがとうございます。
かなり駆け足ですすみましたが、これまでで、
- さくらのクラウドを使うと簡単に好きな構成のサーバが構築できる
- Ansibleを使うと、たくさんのサーバを一気に設定できる
- Marathonを使うと、アプリケーションが簡単にスケールできる
という印象をもっていただけたなら幸いです。 詰まった点があれば、インターネットで調べながら進めていただければと思います。 または、わたしまでご連絡いただければお助けできる場合もあるかもしれません。
以下にこれからの発展先の例を挙げておきます。
Docker
今回は簡単に確認するために、Docker HubのNginxのイメージを利用しましたが、 実際には自前で開発したWebアプリケーションや、その他のアプリケーションを実行することになるでしょう。 その際は、Dockerの資料をもとに、Dockerのイメージを作成してください。
また、Docker Hubではなく、クローズドな環境にイメージを置きたい場合には、プライベートリポジトリを立てる必要があります。
https://github.com/docker/distribution
データベース
実際にアプリケーションを動かす場合には、データベースが必要になることが多いかと思います。 その場合には、別途冗長構成を組んだデータベースサーバを同一ネットワーク上 (192.168.200.0/24) に構築し、Dockerで動かすアプリケーションから参照する必要があります。
例えば、PostgreSQLの場合には、pgpool-IIとストリーミングレプリケーションを利用することで 簡単にマスタースレーブ構成のデータベースサーバが構築できますし、MySQLでも同様にレプリケーションを利用することができます。
ロードバランサ
MarathonでWebアプリケーションを実行すると、タスク毎にランダムなポートが割り当てられます。 そのままでは外からアクセスできません。 例えば、グローバルIPを持ったNginxを別途設置し、そのNginxから実行中のタスクへリバースプロキシする、といったような構成が必要になります。
一例として、以下の記事をあげておきます。
http://qiita.com/chibiegg/items/5f61790bbada71fcf3c3
ネットワーク
Docker 1.9より、複数ホスト間でコンテナを同じネットワークに接続することができるoverlay networkに対応しています。 Marathonとともに活用するとより便利に利用できると思われます。