コンテナ管理サービス「Amazon ECS」とは?実際に使用してみた

Amazon ECS(以下ECSとします。)はDockerコンテナを簡単に実行、停止、管理できるサービスです。
ECSを利用することで、アプリケーションを簡単に実行することが可能となります。
当コラムではECSの簡単な説明と、実際の実践例を紹介します。

こちらのコラム「スケーラブルで高速なコンテナ管理サービス「Amazon ECS」の主な機能と使い方」ではECSの主な機能、メリット、料金等を紹介しています。是非ご確認ください。

ECSとは?

ECSとはDockerコンテナ(※)サービスです。
ECSを使用すると、クラスターインフラストラクチャのインストール、運用、スケールから解放されます。さらに、APIを使用することで、コンテナ対応アプリケーションの起動と終了、クラスターの完了状態のクエリ、セキュリティグループ、Elastic Load Balancing、Elastic Block Store、IAMロールなどへのアクセスを実行することができます。

※Dockerコンテナとは?
コンテナ技術の一つでありデファクトスタンダードとなっています。
Docker社が開発しオープンソースソフトウェアとして公開されています。
アプリケーションの動作に必要な環境を1つのイメージにまとめ、そのイメージを使用し、さまざまな環境でアプリケーション実行環境を構築・運用できます。

コンテナの概要・メリット

アプリケーション本体・ライブラリ・設定ファイル等をまとめたコンテナという仮想環境を作成し、コンテナエンジン上で動作するコンテナ技術です。

コンテナの仕組みは以下の図の通りです。

ホストOS上にコンテナのDockerなどの管理ソフトウェアがあります。
管理ソフトウェアはコンテナエンジンと呼ばれます。
コンテナエンジン上で各コンテナが動作する形となっています。
ひとつのOS上にコンテナは複数稼働することが可能であり、コンテナ毎にアプリケーションを実行できることから利用するユーザやサービスの観点からコンテナは独立した個別のサーバーのように使用できます。

コンテナのメリット

コンテナのメリットは以下の通りです。

高速な動作かつ軽量

必要最小限のリソースのみ使用するため、負荷が少なく高速な処理が可能です。
またコマンドを使用し、コンテナ環境の作成や破棄を行えます。

アプリケーションのパッケージ化

コンテナはアプリケーションを実行するためのリソースをパッケージ化が可能であり、実行する場所はベアメタルサーバー、仮想サーバー、パブリッククラウドのインスタンス上などに簡単にコピー可能なため場所を問わず迅速にアプリケーションを起動できます。

実践例

今回はサーバーレスのFargate起動タイプモデルを利用しnginxのコンテナを作成します。

AWSマネジメントコンソールのすべてのサービスからコンテナ「Elastic Container Service」をクリックします。

左側のメニュー欄の「クラスター」をクリックします。

ECS クラスターの作成手順として「クラスターの作成」と「今すぐ始める」があります。
今回はnginxのコンテナイメージが用意されている「今すぐ始める」をクリックします。

ステップ1ではコンテナとタスクの設定を行えます。
コンテナ定義ではコンテナのイメージ「nginx」を選択します。

ステップ1コンテナとタスクのページ下部のタスクの定義では編集せずデフォルトで使用するため「次」のボタンをクリックします。

ステップ2ではセキュリティグループの設定やロードバランサーの設定等を行います。
今回はnginxの動作確認が目的のため、デフォルトのセキュリティグループは自動的に新規作成、ロードバランサーはなしとします。「次」へのボタンをクリックします。

ステップ3ではクラスターの設定を行います。今回は変更せずデフォルトのまま作成します。
「次」へのボタンをクリックします。

ステップ4では作成するクラスターの設定確認となります。
設定が正しいことを確認し、「作成」ボタンをクリックします。

以下の起動ステータス画面に切り替わります。
説明に「これには最大で10分かかる場合があります。」と記載されていますが今回は1~2分で完了しました。

作成したクラスター「default」でnginxコンテナを確認します。
「タスク」タブをクリックします。

タスク名をクリックします。

nginxへアクセスするため、「詳細」タブのネットワークに記載されているパブリックIPをコピーします。

ブラウザのURL欄にパブリックIPをペーストしアクセスします。

以下の画面の通り「Welcome to nginx!」と表示されnginxが正常に動作していることが確認できました。

おわりに

今回nginxを動作させたようにECSではコンテナを使用して、アプリケーションを簡単に実行することができます。コスト最適化の環境のもとでコンテナに関して幅広いスケーリングとインフラストラクチャー管理ができ、起動タイプモデルの選択によりサーバーレスで使用可能となりますので、構築や運用の負荷を削減できます。

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る