1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerコンテナ上で動作するアリババクラウドコンテナサービスのアプリケーション環境の構築

Posted at

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

#アリババクラウドのコンテナサービスとは?
Alibaba Cloudのコンテナサービスは、スケーラブルで高性能なコンテナ管理製品で、Docker SwarmまたはKubernetesのいずれかを使用してコンテナ化されたアプリケーションのライフサイクルをオーケストレーションして管理することができます。Container Serviceには、Pay-As-You-Goでインストールされるサーバーロードバランサーが自動的に組み込まれています。

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

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

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

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

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

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

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

前回のチュートリアルでは、Alibaba Cloudのコンテナサービスでコンテナ化環境を実行するためのDocker Swarmクラスタを簡単にセットアップする方法を紹介しました。このチュートリアルでは、同じ稼働中のクラスタを使用してアプリケーション環境を構築します。イメージから構築したWebサーバーとオーケストレーションテンプレートから構築したWebアプリケーションで環境を構築します。

#アリババクラウドのコンテナサービスクラスタが稼働しているかどうかを確認する
まず、Docker Swarmクラスタが稼働していることを確認しましょう。Alibaba CloudアカウントのContainer Serviceコンソールページに向かいます。

image.png

コンテナサービスのコンソールページに到着します。

左側メニューのClusterオプションをクリックする前に、Container Service - Swarmオプションが選択されていることを確認してください。

問題がなければ、健全な状態の Running cluster が表示されているはずです。

image.png

#Docker Swarmコンテナサービスアプリケーションの作成
「Application」メニューオプションに移動し、「Create Applicatio」をクリックします。

image.png

基本オプションで、アプリケーションの名前とバージョン番号(デフォルトは1.0)を追加し、アプリケーションに使用するクラスタを選択します(ここでは、実行中のクラスタが1つしかないので、これがデフォルトになっています)。

標準リリースでは、新しいバージョンをデプロイする前に、以前のバージョンのアプリケーションを削除します。このチュートリアルではこれで十分です。青緑色のリリースは、更新時に中断することなく実行し続ける必要があるアプリケーションのためのアクティブ・スタンバイ・オプションです。

#Dockerイメージを引っ張ってコンテナを作成する
アプリケーションの説明を追加し、Pull Docker Imageオプションを選択します。

image.png

ここで「Create with Image」をクリックします。

image.png

設定オプションに進みます。一般的な設定で、[Select Image] をクリックします。

image.png

nginxオプションを選択し、OKをクリックします。

image.png

最新のDockerイメージのバージョンは、デフォルトでリモートのDockerリポジトリから引っ張ってきます。

これで右側のCreateをクリックすることができるようになりました。

image.png

アプリケーションが作成されていることを確認する画面が表示されます。

image.png

これで、アプリケーションとサービスの両方のメニューに nginx アプリケーションが表示されるようになりました。

image.png

image.png

「Applications」メニューで、nginxを実行しているアプリケーションをクリックします。

image.png

Updateをクリックします。

image.png

これで、ネットワークの設定を行います。

HTTP/HTTPS 80と443のポートマッピングの詳細と、コンテナポートを追加します。

image.png

ここで「Update」をクリックします。

image.png

アプリケーションが作成され、最終的には実行中の状態に落ち着くのがわかります。

アプリケーションメニューオプションをクリックします。

image.png

クリックすると応募の詳細が表示されます。

image.png

このビューでは、いくつかのタブが表示されます。[サービス] タブには、アプリケーションの状態が表示されます。

コンテナ] タブをクリックします。このビューには、すべての VPC ネットワーク ポート設定、コンテナの IP、ノードの IP が表示されます。また、コンテナを監視するオプションもあります。

image.png

名前のリンクをクリックします。

image.png

コンテナのCPU、メモリ、IO、プロセスの使用率など、多くのグラフが表示されます。

ここでログタブをクリックします。

image.png

ここでは、コンテナのログが表示されます。今すぐイベントをクリックします。

image.png

このオプションを選択すると、コンテナ上のイベントのリストが表示されます。ここで、[ルート] タブをクリックします。

image.png

ここにコンテナのエンドポイントが表示されます。先に進み、リンクをクリックしてください。

image.png

nginx コンテナが正しく設定され、実行されていることが確認できるはずです。

image.png

#オーケストレーションテンプレートでコンテナを作成する
それでは、同じクラスタ上でWordPressとnginxを統合してみましょう。

今回はオーケストレーションテンプレートを使用します。コンテナサービスコンソールに戻り、アプリケーションをクリックします。正しいクラスタ上にあることを確認し(まだクラスタは1つだけです)、「アプリケーションの作成」をクリックします。

image.png

手順は先ほどと全く同じですが、「Create with Image」をクリックする代わりに「Create with Orchestration Template」をクリックします。ここではDocker Imageオプションは非選択のままにしておきます。

image.png

Dockerのエコスフィアに慣れている方は、ここでDockerのコンポーズファイルを実行します。Use Existing Orchestration Templateをクリックします。

image.png

WordPressを選択してみましょう。

image.png

ご覧のように、コンソールには関連するDocker composeコマンドと設定が表示されます。

image.png

今すぐ設定の一つを編集する必要があります。

image.png

この設定変更により、テストドメインのURLからaliyunポート80へのリクエストはすべてWordPressにルーティングされるようになります。

image.png

ここで「Create and Destroy」をクリックします。

image.png

アプリケーションが起動しているのが表示されます。アプリケーションメニューをクリックすると、WordPressが作成されているのが表示されます。

アプリケーションが作成されると、実行中の状態で表示されます。クリックしてアプリケーションに進みます。

image.png

先ほどと同じように、いくつかのタブが表示されています。WordPressを動かすにはデータベースとWebアプリケーションが必要なので、2つのタブがあります。コンテナタブをクリックします。

image.png

コンテナタブには、アプリケーションが必要とするすべての異なる実行中のDockerコンテナの詳細が表示されます。

image.png

ログとイベントタブには、先ほどと同じように詳細が表示されます。Routesをクリックすると、アプリケーションの設定に必要なWordPressエンドポイントのURLが表示されます。

先に進み、エンドポイントをクリックします。

image.png

これで、先ほど設定したnginxウェブサーバ上で動作するWordPressサイトを設定することができます。

image.png

#概要
まず、コンテナ化環境を構築する準備として、すでにAlibaba Cloud Container ServiceのDocker Swarmクラスタを構築しており、正常に動作していることを確認している様子を説明しました。

次に、Alibaba Cloud Container Serviceの製品について説明し、SwarmとKubernetesの両方のコンテナ化環境でどのように利用できるのかを説明しました。また、これらの製品がどのようにクラスタを必要としているか、Alibaba CloudがElastic Compute Services (ECS)から構築されたクラスタを自動セットアップし、自動セットアップの一部としてServer Load Balancerを含める方法を説明しました。

次に、Alibaba CloudのDocker Swarm Containerize Serviceを構築する方法を紹介しました。その後、Orchestration Templateを使ってWordPressのイメージをプルダウンすることで、開発者の柔軟性を高めることができました。

Alibaba Cloudが提供している他の製品やサービスもぜひチェックしてみてください。
https://www.alibabacloud.com/contact-sales

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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?