Docker環境を取り扱うためのAWS環境のセットアップ手順と、AWS環境へのデプロイを実施し、その構成の学習を目的とします。
最終目標としてDocker環境をサーバにデプロイし、本運用を見越したDocker環境でのリリースを実施します。
■環境
・Windows 10
・VSC version 1.83.1
・Docker Desktop
・AWS
Docker環境を取り扱うためのAWS環境のセットアップ手順と、AWS環境へのデプロイを実施し、その構成の学習を目的とします。
最終目標としてDocker環境をサーバにデプロイし、本運用を見越したDocker環境でのリリースを実施します。
・Windows 10
・VSC version 1.83.1
・Docker Desktop
・AWS
今回はAmazon ECSを使用してDocker環境をEC2にデプロイを実施してみます。
ECSに関しては今回初めて使用するため、改めてECSについて調べてみました。
そもそもAmazon ECSとは、Amazon Elastic Container Serviceの略で、コンテナ化されたアプリケーションを簡単にデプロイ、管理、スケーリングできる、完全マネージド型のコンテナオーケストレーションサービスのこと。
引用:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html
このコンテナを管理するサービスのことを、オーケストレーターといいます。
オーケストレーターでコンテナ管理すること、そのものはオーケストレーションといいます。
要するにAmazon ECSを使うことにより、アプリケーションのデプロイの管理が簡易化できるということ。
ECSのデプロイタイプについて、ECSのデプロイ方法は3つあります。
・ローリングアップデート
・Blue/Greenデプロイ
・外部デプロイ
の3つが存在します。
今回はローリングアップデートを実施してみます。
ローリングアップデートはデプロイ中に進行度に応じて環境が混線してしまうため、デプロイ中は意図せぬ動作をする恐れがあるため、メンテナンス画面が必須になり、要件によってはベストプラクティスに足りえないのですが、今回はデプロイの試験運用のため、コストが低いこちらを使用していきます。
$ sudo apt install awscli
$ aws --version
次にデプロイ用のIAMユーザーを作成します。
AWS のコンソールから IAM サービスにアクセスし、名前はdeploy-userとして、ユーザーを作成します。
今回はアクセスキーを使用してAWS CLIを利用するため、Identity Centerでユーザーを作成するのではなく、IAMユーザーを作成します。
つぎにポリシーをアタッチします。
このポリシーはAmazonECRへのアクセスを許可するものです。
既存のポリシーをアタッチから以下のポリシーの項目を付与します。
・AmazonEC2ContainerServiceRole
・AmazonEC2ContainerRegistryFullAccess
ユーザーの作成が完了すると、ユーザーのアクセスキーやパスワードなどの情報が記載されたcsvをダウンロードできるので、そちらをダウンロードしておきます。
$ aws configure
$ sAWS Access Key ID [None]: {取得したアクセスキーID を入力}
$ AWS Secret Access Key [None]: {取得したシークレットアクセスキーIDを入力}
$ Default region name [None]: ap-northeast-1
$ Default output format [None]: json
$ aws configure list
docker-compose up -d
最後にクラスターの設定をします。
設定としては名前はすべてdocker-deploy-testとして、AutoScalingGroupは新規で作成し、VPCやセキュリティグループ、サブネットやキーペアなどは前回作成したものを使用します。
ここまででデプロイの設定はできましたので、次回はソースを更新し、デプロイを実行してみるところまで実施しようと思います。