この記事の目次
AWSにおけるDockerのサービスとは?
Dockerは、今や仮想化技術としてシステム開発には欠かせない技術となっています。
AWSでは、Dockerを利用した様々なサービスがリリースされています。今回は、AWSのDockerサービスを解説していきます。
Amazon Elastic Container Service (ECS)
Amazon Elastic Container Service (ECS) とは、フルマネージド型のDockerコンテナサービスです。ECSを利用すると、Dockerコンテナのアプリケーションを簡単にデプロイすることが可能です。
裏では、EC2インスタンスが稼働しており、マネジメントコンソールから各種設定ができます。また、Amazon Elastic Container Registry (Amazon ECR) をサポートしており、安全にプライベートレジストリを使用できます。
ECSでは、タスク定義と呼ばれるJSONテンプレートを利用して、タスクの定義ができます。タスク定義により、Dockerコンテナクラスタの作成/削除、Dockerコンテナの起動/終了などが可能です。
また、ECSはDockerコンテナの自動復旧を備えており、デプロイしているコンテナに異常が発生した場合にも、自動で復旧し、システムの稼働を継続することが可能となっています。
AWS Fargate
AWS Fargate とは、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes Service (EKS) 用の、サーバレスコンピューティングサービスです。
Fargateは、ECSと異なり、EC2の稼働状況を気にすることなく、コンテナアプリケーションをデプロイすることが可能です。また、Fargateはコンテナの実行に必要なリソース分のみ料金が発生するため、無駄な料金を抑えられます。
Fargateは、Amazon SageMaker や、 AWS CodePipeline などのサービスと連携して、機械学習アプリケーションを実装したり、CI/CD パイプラインを開発したりも可能です。
Amazon Elastic Kubernetes Service (EKS)
Amazon Elastic Kubernetes Service (EKS) とは、フルマネージド型のKubernetes のサービスです。
AWSでフルマネージドのKubernetes サービスを利用する利点はいくつかあります。
AWS Fargate を利用して、サーバレスコンピューティング上で稼働させることで、インフラストラクチャを気にすることなく、Kubernetes を運用できます。
また、CloudWatchやIAMなどの各種AWSサービスと連携しているため、モニタリングやスケーリングなど、既存のAWSリソースを利用することが可能です。
コマンド一つで、Kubernetes クラスタのバージョンアップができるので、新たにクラスタを作成する必要もありません。
Amazon Elastic Container Registry (ECR)
Amazon Elastic Container Registry (ECR) は、フルマネージド型のコンテナレジストリサービスです。ECRを利用すると、プライベートコンテナイメージを簡単にデプロイできます。また、ECRとECSは統合されているので、開発から稼働までを一貫して管理できます。
フルマネージドなので、インフラストラクチャを管理する必要がなく、スケーリングも自動で行われるため、管理が不要になります。
ECRでは、コンテナイメージはS3に保存されるため、高可用性が担保されます。
AWS Batch
AWS Batch は、大規模なバッチ実行向けサービスです。送信されたバッチジョブの量や、リソース要件に基づき、自動的にプロビジョニングします。AWS Batch を利用することで、バッチ実行ソフトウェアや、サーバインスタンスを管理する必要がなくなります。
アンマネージド型にも対応しており、自前のLinux インスタンスや、Docker クラスタなどを利用することも可能です。また、EC2 起動テンプレートとも統合されている為、事前にカスタマイズしたテンプレートを利用してAWS Batchを利用できます。
AWS Copilot
AWS Copilot とは、コンテナアプリケーションをAWSへ素早くデプロイする、コマンドラインインターフェース(CLI)です。Copilot は、レジストリへのプッシュ、タスク定義の作成、クラスタの作成などのサイクルを自動化します。
AWS Copilotの設定方法
AWS Copilot を設定してみましょう。
なお、マシンはmacOSを想定しています。
Copilot のインストール
curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/download/v0.1.0/copilot-darwin-v0.1.0 && \
chmod +x /usr/local/bin/copilot && \
copilot –help
copilotのヘルプは以下のとおりです。
$ copilot
👩✈️ Launch and manage applications on Amazon ECS and AWS Fargate.
Commands
Getting Started 🌱
init Create a new ECS application.
docs Open the copilot docs.
Develop ✨
app Commands for applications.
Applications are a collection of services and environments.
env Commands for environments.
Environments are deployment stages shared between services.
svc Commands for services.
Services are long-running Amazon ECS services.
Release 🚀
pipeline Commands for pipelines.
Continuous delivery pipelines to release services.
deploy Deploy your service.
Settings ⚙️
version Print the version number.
completion Output shell completion code.
Flags
-h, –help help for copilot
-v, –version version for copilot
Examples
Displays the help menu for the “init” command.
`$ copilot init –help`
事前に、`aws configure` を実行し、AWS CLi の設定を終わらせておく必要があります。
上記のコマンド群を利用して、Dockerアプリケーションをデプロイしていくことになります。
まとめ
いかがでしたでしょうか。
AWSでDockerを利用するには、いろいろなサービスを利用する方法があります。サービスによってメリット・デメリットがありますので、それぞれのサービスの特徴をよく考慮して、利用するサービスを選定しましょう、
この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年11月21日キャリア・転職ITエンジニアへのキャリアチェンジに多い理由は?
- 2023年11月20日キャリア・転職フリーターからの就職でおすすめの職業は?
- 2023年11月20日キャリア・転職経理へのキャリアチェンジ転職・志望動機は?
- 2023年11月20日キャリア・転職法務からのキャリアチェンジおすすめの業界は?