質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

1622閲覧

awsでdocker compose up ができない

airi11

総合スコア1

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/11/15 12:07

編集2020/11/16 09:27

aawsでdockerをデプロイする際にエラーが出てしまいます。

❯ docker compose up [20:51:57] UnrecognizedClientException: The security token included in the request is invalid. status code: 400, request id: 929f2737-f76b-4b65-a053-44328be2b2c2

現在はIAMユーザーでのログインなのです。
こちらのエラーはセキュリティトークンが無効という意味だと調べて分かったのですが、セキュリティトークンを作らないとだめということでしょうか?

また、ルートユーザーであればこのようなエラーは出ないのでしょうか?

docker

1version: '3.7' 2 3services: 4 app: 5 build: 6 context: . 7 volumes: 8 - static_data:/vol/web 9 environment: 10 - SECRET_KEY=samplesecret123 11 - ALLOWED_HOSTS=127.0.0.1,localhost 12 13 proxy: 14 build: 15 context: ./proxy 16 volumes: 17 - static_data:/vol/static 18 image: 601622476570.dkr.ecr.ap-northeast-1.amazonaws.com/apple-site 19 ports: 20 - "8080:8080" 21 depends_on: 22 - app 23 24volumes: 25 static_data:

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2020/11/15 15:55

そもそもdocker-composeで何をしようとしているのかがわからないので、使っているdocker-compose.yml(関連ファイルがあればそれも)を貼り付けてください。 あと、ルートユーザを使うのはどうしても必要な事(ルートユーザでないとできない設定をアカウントで行うなど)以外原則として避けてください。 https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
airi11

2020/11/15 21:27 編集

ご指摘ありがとうございます。 docker-compose up 等のコマンドは実行できます。 aws ecrのレポジトリをecsにデプロイしようとしています.。 デプロイしようとした際に docker compose up を実行したところ、エラーが出ました。
airi11

2020/11/16 00:26

```docker-comopose-deploy.yml version: '3.7' services: app: build: context: . volumes: - static_data:/vol/web environment: - SECRET_KEY=samplesecret123 - ALLOWED_HOSTS=127.0.0.1,localhost proxy: build: context: ./proxy volumes: - static_data:/vol/static image: 601622476570.dkr.ecr.ap-northeast-1.amazonaws.com/apple-site ports: - "8080:8080" depends_on: - app volumes: static_data: ```
yu_1985

2020/11/16 03:35

コメントではなくで本文に貼ってください(ハイライトされないため) まず、ECRからイメージをpullする方法については把握されてますか?
airi11

2020/11/16 09:08

かしこまりました イメージのpullは出来ています。
yu_1985

2020/11/16 09:11

質問の本文に追記する形でdocker-compose.ymlを貼って欲しいというリクエストだったんですが…。 また聞きたいのは「できているか」ではなくて「方法を把握しているか」です。 該当のイメージをpullするための手順はどのようにしていますか?
airi11

2020/11/16 09:25

docker pull <id>..dkr.ecr.ap-northeast-1.amazonaws.com/<レポジトリ名> のようにしました。
guest

回答1

0

ECRはパブリックなリポジトリではないのでアクセスするときはdocker loginが必要です。

イメージをpullする前にaws cliでログインパスワード(というか、トークンだと思いますが)を取得し、それを使ってログインしておく必要があります。
それを行っていないと権限が足りないのでpullできません。
aws cliの最新版でのコマンドは下記のような感じになるはずです。

bash

1aws ecr get-login-password --region <対象のリージョン> | docker login --username AWS --password-stdin <対象リポジトリのURI>

aws ecr get-loginコマンドを使うやり方が出てくるかもしれませんが、それはaws cliの古いバージョンで使うコマンドです。

一度ログインしたら恒久的にログインしなくて良くなるわけでもなく、期限付きなのでコマンド実行する前に毎回明示的にログインするのがいいです。
トークンの期限は12時間と記載があります
get-login-password

当然ながら、aws ecr get-login-passwordを実行する権限がユーザに必要です。
GetAuthorizationTokenが許可されてれば恐らく大丈夫だとは思います。

参考
ステップ 2: デフォルトレジストリに対して認証する

投稿2020/11/16 10:17

yu_1985

総合スコア7440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

airi11

2020/11/16 12:30 編集

ありがとうございます。 loginからpullまでは出来ています。 やりたいことはecsでecrのリポジトリをデプロイです。
yu_1985

2020/11/16 11:48

どの環境に対するpullでしょうか? 結局の所、docker-compose upに失敗しているのはECRからイメージをpullできていないからなのでは?
airi11

2020/11/16 12:32 編集

どの環境にというのが少しわかりません。 ecrのレポジトリにloginしてからpullしています。 実行しているコマンドはdocker compose up です。-はなしです。 docker-compose up は実行出来ます。 参考にしている記事がこちらです。 https://tech.smartcamp.co.jp/entry/docker-compose-with-ecs 違う点は git clone ではなく、私のプロジェクトをecrにpushしています。
yu_1985

2020/11/16 16:39

> docker compose up それはそもそもコマンドが間違っているのでできません。 参考にしたサイトの記載ミスでしょう。
airi11

2020/11/16 16:51

そうだったのですか。 この記事の最後の状況でdocker-compose up ができたらデプロイ出来ているということでしょうか?
yu_1985

2020/11/17 03:13

「デプロイ」とは何を指してますか。 少なくとも、docker-conposeがエラーなく実行できてるならコンテナを立ち上げることは出来ているでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問