現在、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に詳しい方、何かアドバイスを頂けませんでしょうか。
また何か不足している情報がありましたら、ご指摘をお願い致します。
どうぞ、よろしくお願い致します。
あなたの回答
tips
プレビュー