LoginSignup
7
8

More than 5 years have passed since last update.

AWS CLIでecsを構築する手順

Posted at

aws cliでecsを操作するコマンドは2パターンあります。(aws ecsからecs-cli)
どっちを使ってもいいんですが、一つに統一してほうがいいかも知りません。
今回はecs-cliを使おうとします。

大まかな手順

  • AWS環境設定(configuration)
    awsに繋ぐためのprofileを登録する必要があります。今回はOregonリージョン(us-west2)に環境を構築します。

  • configuration

ecs-cli configure profile --profile-name west2-profile --access-key "XXXXXXXXXXXXXX" --secret-key "XXXXXXXXXXXXXXXXXXXXXXX"

ecs-cli configure --cluster [CLUSTER_NAME] --default-launch-type EC2 --region us-west-2 --config-name west2-config

結果は「.ecs/credentials」、「.ecs/config」に記録されます。

  • cluster作成

SSHでecsのホスト・インスタンスにログインするためにssh keyを作成します。
AWSコンソールからEC2 Dashboardに入り、「Key Pairs」で「Create Key Pair」をクリックします。
名前を入力して(今回はwest2-keyにします)、「Create」を押します。すぐダウンロードが始まりますが、~/.sshに入れときましょう。

ecs-cli up --keypair west2-key --capability-iam --size 1 --instance-type t2.small --cluster-config west2-config
  • task/service実行
ecs-cli compose --project-name [PROJECT_NAME] --ecs-profile west2-profile --cluster-config west2-config service up

task実行のみ:service up -> up
project-nameはservice名、task名、task definition名になります。

このまま実行するとSSMにアクセスを拒否されたと怒られます。

Fetching secret data from SSM Parameter Store in [REGION]: AccessDeniedException: User: arn:aws:sts::[ACCOUNT-ID]:assumed-role/ecsTaskExcutionRole/XXXXX is not authorized to perform: ssm:GetParameters on resource: arn:aws:ssm:[REGION]:[ACCOUNT-ID]:parameter/[パラメータ] status code: 400, request id: XXXXXXXXXX

対策としては、ecsTaskExcutionRoleに次のpolicyを与える。

{
    "Version": "2012-10-17",
    "Statement": [
        {
        {
            "Effect": "Allow",
            "Action": "ssm:GetParameters",
            "Resource": "*"
        }
    ]
}
  • コンテナーがちゃんと立ち上がったのか確認する
ecs-cli ps --ecs-profile west2-profile --cluster-config west2-config
  • コンテナーからpaprameterが読み取れたのかを確認する。(SSHでECSホストにLOGINする必要がある)
docker exec -it `CONTAINER ID` env
  • サービスを削除する
ecs-cli compose --project-name [PROJECT_NAME] --ecs-profile west2-profile --cluster-config west2-config service down
  • クラスター(及び関連リソース)を削除する
ecs-cli down --ecs-profile west2-profile --cluster-config west2-config
Are you sure you want to delete your cluster? [y/N]

確認メッセージが出るので[y]を入力して確定します。

参考

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ECS_CLI_reference.html
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose-ecsparams.html
https://medium.com/@felipgomesilva/using-secrets-in-aws-ecs-dc43c37ce4a1
https://dev.classmethod.jp/cloud/aws/ecs-secrets/

7
8
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
7
8