いまさら聞けないAWSでのDocker Composeって何?


AWSにおけるDocker Composeとは?
AWSでのDocker Composeの説明に入る前に、そもそものDocker Composeについて説明します。
Docker Composeとは、複数のコンテナで構成されるアプリケーションをひとつのコマンドで起動・停止できるツールです。
この記事ではそもそも、コンテナとは何なのか、AWSで使用するにはどうしたらいいのなど、AWS初心者の方にもわかりやすく説明していきます。
コンテナとは?
コンテナとは仮想化されたアプリケーションのことです。
仮想化されたアプリケーションという言葉では理解がしにくいでしょう。そのような方は、仮想マシンを思い浮かべると理解しやすいです。
Windows上でLinuxを使用したいとき、空のPCにLinuxをインストールするのではなく、VirtualBox・VMwareなどで仮想マシンをいれたことがある方も多いのではないでしょうか。
これらを構築する際には、何か細かい設定をせずともLinuxをインストールできたはずです。古くからある仮想マシンで例えましたが、すでに環境を構築されたアプリケーションを「仮想化されたアプリケーション」といいます。
コンテナとは、「仮想化されたアプリケーション」をそれぞれのPCで再現する技術です。
Dockerとは?
Docker(ドッカ―)とはコンテナ技術のひとつであり世界中で使用されています。Docker社が開発し、オープンソースソフトウェアとして公開されています。
例えば、Nginx(エンジンエックス)のDockerイメージを使って試しにWWWサーバーを立ててみます。以下のコマンドをDocker環境で実行してください。
docker run -d -p 8080:80 nginx
たったこれだけのコマンドを打つだけで、WWWサーバーが起動します。
Docker Composeとは?
Docker Composeとは、docker runコマンドを複数回実行しないでも複雑な仮想アプリケーションを起動できる技術です。
例えば、Dockerでwordpressを構築してみましょう。Dockerで構築しようとすると、wordpressやmysqlをdocker runで起動して、コンテナ間通信を構築すると多くの手順を踏むことになります。誰かが作ったものをコピペしようとしたら、すべての手順を把握しなくてはなりません。
そこでDocker Composeの出番です。Docker Composeでは、あらかじめすべての設定情報を記載した.ymlファイルを準備します。.ymlファイルはテキスト形式なので簡単に情報共有が可能です。.ymlファイルを準備したらあとは以下のコマンドを実行するだけです。
docker-compose up -d
.ymlファイルの準備とひとつのコマンドだけであなたの環境にも誰かがつくった仮想アプリケーションが完全に再現することが可能となります。
AWSでDocker Composeが使用できるサービス
AWSではどうやってDocker Composeが使用できるのでしょうか。今回はその代表例である、Amazon Elastic Container Service(以下、ECS)について紹介します。
Amazon ECSとは
Amazon ECSとは、Docker Composeを簡単に使用できるサービスのことです。Dockerコンテナを簡単に実行や停止、管理できる高速な管理サービスです。以下の特徴について紹介します。
Docker Compose のサポート
Docker Composeがサポートされています。そのため、Dockerコンテナの実行および管理が可能になっています。他人がコンテナとして作成した仮想アプリケーションは、設定を変更することなく Amazon ECSを使用することで簡単に再現が可能となります。
サーバーレスのオプション
AWS Fargate(ファーゲート)を使用することによりサーバーレスでDocker Composeを使用することが可能です。AWS Fargateを使用すると、Amazon EC2を選択して、設定する必要がなくなります。
タスクはロードバランサーに登録され複数のAZ(アベイラビリティーゾーン)を渡って自動的に負荷分散されます。AWS Fargateを使用することで簡単にコンテナを管理することが可能となります。
タスク管理機能
Amazon ECSはひとつまたは複数のコンテナをタスクと呼ばれる形で管理しています。リソースに余裕がある場合には、同一のタスクを複数動作させることが可能です。これらにより非常に多くのことが可能となります。
スケジューリング機能
タスクの自動配備/自動復旧する機能を持っています。設定された数のタスクをコンテナ・インスタンスに自動的に配備することが可能です。また、タスクが異常検知した場合は自動でタスクを削除し、再作成してくれます。
セキュリティ管理機能
Amazon ECSの設定する場合は、自動でAmazon VPCを構築し、ネットワークアクセスコントロールリストやセキュリティグループで管理ができます。AWSのセキュリティ管理をそのまま適用することが可能です。
操作ログ管理機能
AWS CloudTrailを使用することで、Amazon ECSに対してAPIを実行するとAWS CloudTrailにログが残ります。どのAPIが実行されたか履歴を取得することが可能です。
安全性
ECSを使用することで安全なアプリケーションを作成することが可能です。IAMを使用することにより、各コンテナに対しアクセス制限を設けることが可能となります。各サービスへのアクセスや、コンテナからアクセスできる対象を制限することも可能です。
信頼性
ECSの月間稼働率はおよそ99.99% であることが保証されています。ECSは22(国)のリージョンで69か所のアベイラビリティーゾーン(AZ)を備え信頼性が高い構造となっています。
Amazon ECSの料金体系
Amazon ECSのサービスについて知れば、気になるのは料金でしょう。
ここからはAmazon ECSの2種類の料金体系を、運用の目的によってどちらの料金体系が向いているのか、利用する際の注意点とあわせて紹介します。
Fargate起動タイプモデル
Fargate起動タイプモデルでは、使用した分だけ料金が発生します。コンテナ化されたアプリケーションで使用するCPUやメモリの量に対して課金されるでしょう。
CPUとメモリは、コンテナイメージを取得した時からAmazon ECSタスクの終了までを対象として計算され、秒単位で課金がされます。1分間でも課金されてしまうため気を付けましょう。
コンテナの簡単な運用をする際やコンテナ化されたアプリケーションを短時間で利用するなど利用期間が限定されている場合等には、Fargate起動タイプモデルが適しているでしょう。
Amazon EC2起動タイプモデル
Amazon EC2起動タイプモデルでは、追加料金は発生しないでしょう。ただし、コンテナ使用のために作成した Amazon EC2インスタンス、EBSボリュームなどに対してのみ料金が発生します。EC2やEBSボリュームにのみ課金され、そのほかに料金がかかることはないでしょう。
コンテナ化されたアプリケーションを常に稼働させておく運用をする場合には、Amazon EC2起動タイプモデルが適しているでしょう。
AWS Docker Composeを使ってみよう
AWSにおけるDocker Composeについて理解していただけたでしょうか。今回はAmazon ECSを利用した、Docker Composeを使用する一例について紹介しました。
AWS上では、さまざまなサービスがあるためなかなかすべてを紹介しきれません。例えばEC2を自分で構築して、仮想Linuxマシンの中に手作業でDocker Composeを構築することも可能です。
理解を深めたい方はECSのようなAWSの便利機能を使う前に、あなたで構築していくこともおすすめです。
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。