0
2

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.

前提

本日学んだことを書いていきます。

本題

AmazonECS

AWSが提供するコンテナ管理サービス。
Dockerのコンセプトが所狭しと散りばめられている。
コンテナ管理、コンテナオーケストレーションとも呼ばれる。
複数のコンテナ管理を行う場合、各コンテナの設定を変更したり処理量によってコンテナの数を増加させたり、コンテナの数が多くなるにつれて複雑さを増す。

コンテナオーケストレーションは他にもDockerSwarmやGoogleが提供しているkubernetesが有名。

AWSではkubernetesを扱うサービスAmazonEKSがある。
AWSのコンテナオーケストレーションといえば代表的サービスがECS。
ECSはロードバランサーやオートスケーリングと組み合わさったサービス。このサービスを動かすためのEC2インスタンスも自動で追加・削除される。
AWSでマイクロサービスを展開するには、まず選択肢となる代表的なサービス。

マイクロサービスとは

コンテナと相性のいいソフトウェアの設計思考。
Microsoft Architectureとも呼ばれる。

ECSクラスター

複数のEC2コンテナインスタンスで構成される。
このEC2はECSインスタンスとも呼ばれ、通常のEC2にECSコンテナエージェントがインストールされている。
ECS用に作成されたAMIがあり、これを使って起動したEC2でECSを動かすためのインスタンス。
物理的なリソース、クラスターを土台にしてその上にサービスやタスクといった単位が存在する。

タスク定義

コンテナの定義情報を作成。
Dockerfileのようなもの。
コンテナで使用するイメージやCPU、メモリといったリソース情報、ネットワークの情報や、IAMの権限などといったコンテナ全般に渡る設定を行う。
このタスク定義を元に作られるコンテナをタスクという。

サービスはタスクをいくつ起動するか、最小値や最大値をオートスケーリングのように定義することができる。
例えば、CPU使用率が設定より高まった場合、タスクを追加して処理を手伝わせるという形でタスクを管理する。
サービスは複数設定することができる。

2台のEC2コンテナインスタンスが一つのクラスターという土台を形成し、この土台の上で3つのサービスがあり、それぞれサービスはタスクの数などを管理している。
各タスクではタスク定義で指定したDockerコンテナが起動している。

ECRとは

プライベート版のAWS提供のDockerHubのようなもの。
ECRへのアクセス権限をIAMロール・ポリシーで制御もできる。
DockerHub同様、docker pullコマンドやdocker pushコマンドで同じようにコンテナを出し入れできる。

ECRを開く

リポジトリの作成

URIに対してイメージをプッシュすることが可能

EC2にログイン

手元にあるDockerイメージをECRにプッシュ

ECRにプッシュする場合はAWSCLIコマンドを使用する

認証コードを取得する

EC2インスタンス、ECRへログインするための適切な権限が必要

操作可能なロールを作成

EC2を選択

ロールにアタッチするポリシーは
AmazonECSfullaccess
AmazonEC2containerregistryfullaccess
を付与する

タグは必要に応じてつける

ロールの作成

aws ecr get-loginでログイン

pull、pushが利用できるようになる

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?