コンテナサービスを使ったDockerコンテナクラスタの作成方法

このチュートリアルでは、**Alibaba Cloud**の**コンテナ**サービスを使って**Docker**コンテナクラスタを作成する方法を紹介します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/creating-a-docker-container-cluster-with-container-service_594419)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#アリババクラウドのコンテナサービスとは？
Alibaba Cloud's Container Serviceは、スケーラブルで高性能なコンテナ管理サービスで、Docker SwarmまたはKubernetesのいずれかを使用してコンテナ化されたアプリケーションのライフサイクルをオーケストレーションして管理することができます。

Alibaba Cloudのコンテナサービスは、継続的インテグレーションを含む複数のアプリケーションリリース方法を提供し、マイクロサービスアーキテクチャもサポートしています。Alibaba Cloudの仮想化、ストレージ、ネットワーク、セキュリティサービスと統合されたコンテナクラスタのUI設定を簡素化することで、Alibaba Cloudのコンテナサービスは、コンテナ化されたアプリケーション環境の実行、管理、監視に最適なクラウド環境となっています。

#Docker Swarmとは？
Dockerはオープンソースの仮想化管理ツールで、コンテナ内でアプリケーションやシステムを開発、デプロイ、管理、監視することができます。このプロセスはコンテナ化と呼ばれています。Docker Swarmは、複数のスケーラブルなDockerコンテナ上で動作するシステムや環境のためのクラスタリング、スケジューリング、オーケストレーションツールです。

Dockerコンテナは、コード、ランタイム、ライブラリ、環境変数、設定ファイルなど、アプリケーション全体の実行に必要なすべてを含む実行可能パッケージであるDockerイメージを実行することで起動します。コンテナはDockerイメージのランタイムインスタンスです。

同じインスタンス上で複数のコンテナを同時に実行したり、インスタンスのクラスタスウォームを実行したりすることができ、コンテナはオペレーティングシステムのハイパーバイザーの代わりにDockerによって管理されます。これにより、1つ以上のクラスタノードに問題が発生した場合の冗長性とフェイルオーバーを提供します。

Dockerは軽量で効率的で、複数のアプリケーションで構築された最も複雑なシステムを管理することができます。ローカルでDockerコンテナを構築し、クラウドにデプロイして、必要な場所でスケールアップ、スケールダウンして実行することができます。

Dockerは、単一のECSインスタンス上で簡単にセットアップ、インストール、実行できます。業界レベルのアプリケーションやシステムを実行する大規模なコンテナ化環境には、信頼性と拡張性に優れたオーケストレーションと監視システムが必要です。Alibaba Cloudのコンテナサービスは、システム管理者やDevOpsチームに、大規模なコンテナ化環境を管理するために必要なクラスタ化アーキテクチャを提供します。

#クラスタを作成する必要がある理由
Alibaba Cloudのコンテナサービスで実行中のDockerコンテナのスイートをインストールする前に、コンテナ化されたシステムを実装するためのAlibaba Cloud Container Service Docker Swarmクラスタを準備して利用できるようにしておく必要があります。

このチュートリアルでは、そのようなクラスタを構築するための予備的なステップを説明します。次のチュートリアルでは、Alibaba Cloudのコンテナサービスを使ってDocker SwarmクラスタにDockerイメージを実装する方法を紹介します。

#前提条件
Alibaba Cloudアカウントが必要です。アカウントをお持ちでない場合は、[無料トライアルのページ](https://www.alibabacloud.com/campaign/free-trial?spm=a2c65.11461447.0.0.13363089rKTBi1)にアクセスして、Alibaba Cloud New User Free Trialで300ドル相当のAlibaba Cloud製品にアクセスして遊んでみましょう。

それでは、始めましょう。

#クラスタの作成
まず、商品ページに向かい、[コンテナサービス](https://www.alibabacloud.com/product/container-service?spm=a2c65.11461447.0.0.133630893dy5Ww)をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/9f97d82f-d83f-61b3-f6b6-9046e2471199.png)

Container Serviceコンソールページに到着します。

Create Clusterをクリックする前に、Container Service Swarmオプションが選択されていることを確認してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/14cd8fe7-3c2c-4108-58f0-7d0eabfd52c8.png)

クラスタにユニークな名前をつけ、RegionとZoneを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/e39d0b4b-7949-d8a5-064b-ced8b9e4ddcb.png)

クラスタのVPCの詳細とIPの初期CIDRブロック範囲を確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/ca355748-7f1c-9aab-2c4d-31b6ac93284f.png)

既存のECSインスタンスをクラスタに追加することも、新しいインスタンスを作成することもできます。このチュートリアルでは、クラスタ用に4つの小さなインスタンスを作成してみましょう。

必要に応じてデータストレージを追加してください - しかし、各ECSインスタンスには最低限のストレージが付属しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/e2b6680a-6059-463c-cbcc-53dd479875b9.png)

OSはUbuntuかCentosのどちらかを選択できます。

安全にアクセスするためのキーペアを設定したり、必要に応じてインスタンスにアクセスするためのルートパスワードを設定したりすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/b0d68d3c-1b08-46af-dadf-ecac53cebd1b.png)

オプションのチェックを外してパブリックIPアドレス（EIP）を設定したままにしておき、インスタンスにもクラウド監視プラグインをインストールします。

クラスタにはServer Load Balancerが自動的に作成されるように設定されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/2de772a4-68eb-5439-787f-8831a6217918.png)

必要に応じて、クラスタ上で事前に設定した Relation Database Service (RDS) インスタンスを選択することができ、クラスタ作成プロセスでは、Virtual Private Cloud (VPC) 上の関連するプロトコルタイプのセキュリティグループが設定されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/cc7161a2-a447-d5c8-919f-dd06a09d825d.png)

設定の詳細に問題がなければ、ページの上部にある「作成」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/b457ccd7-00a6-179f-a3c3-8e99e7bdeb15.png)

作成をクリックすると、クラスタ構成の詳細をまとめたページが表示され、確認を求められます。

クラスタ構成が必要に応じて適切であることを確認したら、[OK]をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/bb9e5a18-0c07-55c8-1a00-3816dddbb6cf.png)

リクエストが送信されました。クラスタの作成中にレポートログが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/86a91cb0-e979-4be9-2a07-54ad23c551c1.png)

必要なサービスがまだ起動していないという警告に気づいた場合は、先に進みましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/ad8e8d3e-24d2-7f38-7360-6679f16078ab.png)

クラスタが作成されると、画面上に確認画面が表示されます。

クラスタ一覧に戻るをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/d020441a-a5c3-463a-e6db-9cc90679f0f2.png)

クラスタリストには、利用可能なクラスタと実行中のクラスタが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/fd4f2847-5282-a995-7f1c-367d069fb4d5.png)

ここで、Overviewをクリックすると、クラスタのグラフィカルな表示が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/68658164-9c14-821c-7ba3-478e5c63ff25.png)

Nodes をクリックすると、クラスタを構成するパブリックおよびプライベートIPアドレス、ステータス、その他の設定情報を含む ECS インスタンスのリストが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/902fde83-916c-2f98-35e6-465e6b1bdeab.png)

この例のアプリケーション、サービス、コンテナのセクションには、デフォルトのビルドシステムのアプリケーションとサービス、インスタンスごとに自動的に含まれる7つのコンテナの情報がリストアップされています。

これで、先ほど作成したAlibaba Cloud Container Serviceクラスタ上にDocker Swarmコンテナ化システムをセットアップする準備が整いました。

#まとめ
最初に、Alibaba Cloud Container Serviceのアプリケーション環境を動かすためのクラスタを構築するとお伝えしましたが、今回のチュートリアルではDocker Swarmクラスタになります。今後のチュートリアルでは、コンテナサービスのKubernetesオプション用のクラスタも構築する予定です。

続いて、Alibaba Cloudのコンテナサービス製品について簡単に説明し、その高性能、スケーラビリティ、使いやすいコンソールが、コンテナ化されたアプリケーション環境をAlibaba Cloudの膨大な製品やサービスと統合するのに最適な方法であることを説明しました。

チュートリアルの最初の部分では、Docker Swarmクラスタを構築して、実行中のアプリケーションを構成するDockerコンテナを選択してDocker Swarmアプリケーションを構築することを説明しました。

最後に、Alibaba Cloud Container ServiceのDocker Swarmクラスタを構築するプロセスをステップバイステップで説明し、設定オプションを説明しながら進めていきます。

次のチュートリアルでは、Alibaba Cloudのコンテナサービスを使ってDocker Swarmクラスタ上に実行中のアプリケーション環境を構築する方法を紹介します。

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*