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

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

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

AWS(Amazon Web Services)

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

Q&A

0回答

804閲覧

AWS ECSにてRaila apiとDBのインスタンスが起動できない

SeijiFukuda

総合スコア17

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2021/05/06 06:16

編集2022/01/12 10:55

現在、Rails Api/MySQLを使用してサービスを開発しており、AWS ECSにてデプロイを行おうとしているのですが、下記コマンドを実行後EC2にてコンテナが動き出した後、すぐに停止してしまいます。

ローカルではdockerを使い問題なく開発できているので、AWSに関わる設定が上手く出来ていないのだと思うのですが、どなたかアドバイスを頂けませんでしょうか。

行った手順と結果はこちらになります。

#手順

###①アクセスキーを設定

export AWS_ACCESS_KEY_ID= <アクセスキー> export AWS_SECRET_ACCESS_KEY=<シークレットキー> export AWS_DEFAULT_REGION=ap-northeast-1

###②Amazon ECSCLIを設定する
######クラスターの構成

ecs-cli configure --cluster <クラスター名> --default-launch-type EC2 --config-name <クラスターコンフィグ名> --region ap-northeast-1

######アクセスキーと秘密キーを使用してプロファイルを作成

ecs-cli configure profile --access-key <アクセスキー> --secret-key <シークレットキー> --profile-name <プロファイル名>

###③:クラスターを作成する

ecs-cli up --keypair <キーペア名> --capability-iam --size 2 --instance-type t2.micro --cluster-config <クラスターコンフィグ名> --ecs-profile <プロファイル名>

###④:docker-compose.ymlの作成

version: "3" services: db: image: DBイメージ名 container_name: database image: mysql:5.7 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci env_file: - .env environment: TZ: Asia/Tokyo ports: - 3306:3306 volumes: - ./database/my.cnf:/etc/mysql/conf.d/my.cnf - ./database/data:/var/lib/mysql - ./database/sql:/docker-entrypoint-initdb.d logging: driver: awslogs options: awslogs-group: al-group awslogs-region: ap-northeast-1 awslogs-stream-prefix: web api: image: Rails api イメージ名 container_name: back build: . command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/api ports: - "3000:3000" links: - db logging: driver: awslogs options: awslogs-group: al-group awslogs-region: ap-northeast-1 awslogs-stream-prefix: web

###⑤docker version3を使うのでesc-params.ymlを作成

esc

1version: 1 2task_definition: 3 services: 4 db: 5 cpu_shares: 100 6 mem_limit: 224288000 7 api: 8 cpu_shares: 100 9 mem_limit: 224288000

###⑥CodeDeployを使用するためappspec.ymlの作成

appspec.yml

1version: 0.0 2 3os: linux 4files: 5 - source: . 6 destination: /var/www/api/

###⑦:ECSでdockerの読み込み(デプロイ)

ecs-cli compose up --create-log-groups --cluster-config <クラスターコンフィグ名> --ecs-profile <プロファイル名>

#結果

Mac$ ecs-cli compose up --create-log-groups --cluster-config <クラスターコンフィグ名> --ecs-profile <プロファイル名> WARN[0000] Skipping unsupported YAML option for service... option name=container_name service name=db WARN[0000] Skipping unsupported YAML option for service... option name=build service name=api WARN[0000] Skipping unsupported YAML option for service... option name=container_name service name=api INFO[0000] Using ECS task definition TaskDefinition="api:27" WARN[0000] Failed to create log group group in ap-northeast-1: The specified log group already exists WARN[0000] Failed to create log group group in ap-northeast-1: The specified log group already exists INFO[0000] Auto-enabling ECS Managed Tags INFO[0001] Starting container... container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/api INFO[0001] Starting container... container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/db INFO[0001] Describe ECS container status container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/api desiredStatus=RUNNING lastStatus=PENDING taskDefinition="api:27" INFO[0001] Describe ECS container status container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/db desiredStatus=RUNNING lastStatus=PENDING taskDefinition="api:27" INFO[0013] Describe ECS container status container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/api desiredStatus=RUNNING lastStatus=PENDING taskDefinition="api:27" INFO[0013] Describe ECS container status container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/db desiredStatus=RUNNING lastStatus=PENDING taskDefinition="api:27" ~10秒後 INFO[0019] Stopped container... container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/api desiredStatus=STOPPED lastStatus=STOPPED taskDefinition="api:27" INFO[0019] Stopped container... container=cluster/222ae0987f6f4e8d94aaf5a0088355b5/db desiredStatus=STOPPED lastStatus=STOPPED taskDefinition="api:27"

イメージ説明

上記の画像の通り、AWSのクラスター内でタスクを確認したところ

状況の理由
CannotStartContainerError: Error response from daemon: driver failed programming external connectivity on endpoint ecs-XXXXXX_api-27-db-c0cbbface1aacdfc1f00 (b5ca89a2c3ad7e261ec2b2ecb278ffce333f5adb3ff5c0265b0d49b8673fd3ac): Error starting userland prox

とのエラーが出ておりましたが、調べても解決する方法がわかりませんでした。
どなたかAWSに詳しい方、何かアドバイスを頂けませんでしょうか。
また何か不足している情報がありましたら、ご指摘をお願い致します。
どうぞ、よろしくお願い致します。

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

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

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

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

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

yu_1985

2021/05/06 08:35

該当のEC2で既にポートが使われていたりしないか調べてみてください。 また、関係ないですがAWS上で動かすならアクセスキーを使わずにIAMロールを使いましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問