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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

AWS(Amazon Web Services)

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

Q&A

0回答

2746閲覧

Fargateにてnginxとdjangoの接続がうまくできない。

kensho-

総合スコア6

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2021/07/16 03:03

編集2021/07/18 01:34

現在,djangoとnginxで構成されたバックエンドをECSのFargateでデプロイしようとしているのですが、
nginxとdjangoの接続がうまくできずnginxのタスクがstopしてしまいます。
どなたか原因わかる方おりましたら、ご教授いただければと思います。

nginxのタスクのログは下記でした
イメージ説明

nginx.confの中
イメージ説明

参照したdocker-compose.yml

docker

1version: "3.7" 2services: 3 django: 4 # コンテナ名 5 container_name: django 6 # ビルドするdockerファイルが格納されたディレクトリ 7 build: ./app 8 # 正常起動後に実行するコマンド 9 command: python3 manage.py runserver 0.0.0.0:8000 10 volumes: 11 # マウントするディレクトリ 12 - ./app:/usr/src/app/ 13 ports: 14 # ホスト側のポート:コンテナ側のポート 15 - 8000:8000 16 env_file: 17 # 環境変数に設定するファイル 18 - ./app/.env 19 nginx: 20 container_name: nginx 21 build: ./nginx 22 volumes: 23 - ./app/staticfiles:/usr/src/app/static 24 ports: 25 - 8080:80 26 depends_on: 27 - django 28

試したこと
色々調べてたら、fargate内のタスク内でのコンテナ同士のやり取りは、ネットワークにlocalhostを指定することでやりとりできるという記事をみたので、nginx.confのupstream configの中のdjangoの部分をlocalhostに変更して再度試したのですが、起動できませんでした。。。(しかし、nginxのログは消えました)

追記:
タスク定義の内容

json

1{ 2 "ipcMode": null, 3 "executionRoleArn": "arn:aws:iam::**************:role/ecsTaskExecutionRole", 4 "containerDefinitions": [ 5 { 6 "dnsSearchDomains": null, 7 "environmentFiles": null, 8 "logConfiguration": { 9 "logDriver": "awslogs", 10 "secretOptions": null, 11 "options": { 12 "awslogs-group": "/ecs/******************************", 13 "awslogs-region": "ap-northeast-1", 14 "awslogs-stream-prefix": "ecs" 15 } 16 }, 17 "entryPoint": null, 18 "portMappings": [ 19 { 20 "hostPort": 8000, 21 "protocol": "tcp", 22 "containerPort": 8000 23 } 24 ], 25 "command": [ 26 "python3", 27 "manage.py", 28 "runserver", 29 "0.0.0.0:8000" 30 ], 31 "linuxParameters": null, 32 "cpu": 0, 33 "environment": [], 34 "resourceRequirements": null, 35 "ulimits": null, 36 "dnsServers": null, 37 "mountPoints": [], 38 "workingDirectory": "/usr/src/app/", 39 "secrets": null, 40 "dockerSecurityOptions": null, 41 "memory": null, 42 "memoryReservation": 128, 43 "volumesFrom": [], 44 "stopTimeout": null, 45 "image": "djangoイメージ", 46 "startTimeout": null, 47 "firelensConfiguration": null, 48 "dependsOn": null, 49 "disableNetworking": null, 50 "interactive": null, 51 "healthCheck": { 52 "retries": 10, 53 "command": [ 54 "CMD-SHELL", 55 "curl -f http://localhost:8000/" 56 ], 57 "timeout": 60, 58 "interval": 5, 59 "startPeriod": 120 60 }, 61 "essential": true, 62 "links": null, 63 "hostname": null, 64 "extraHosts": null, 65 "pseudoTerminal": null, 66 "user": null, 67 "readonlyRootFilesystem": null, 68 "dockerLabels": null, 69 "systemControls": null, 70 "privileged": null, 71 "name": "django" 72 }, 73 { 74 "dnsSearchDomains": null, 75 "environmentFiles": null, 76 "logConfiguration": { 77 "logDriver": "awslogs", 78 "secretOptions": null, 79 "options": { 80 "awslogs-group": "/ecs/******************************", 81 "awslogs-region": "ap-northeast-1", 82 "awslogs-stream-prefix": "ecs" 83 } 84 }, 85 "entryPoint": [], 86 "portMappings": [ 87 { 88 "hostPort": 80, 89 "protocol": "tcp", 90 "containerPort": 80 91 } 92 ], 93 "command": [], 94 "linuxParameters": null, 95 "cpu": 0, 96 "environment": [], 97 "resourceRequirements": null, 98 "ulimits": null, 99 "dnsServers": null, 100 "mountPoints": [], 101 "workingDirectory": null, 102 "secrets": null, 103 "dockerSecurityOptions": null, 104 "memory": null, 105 "memoryReservation": 128, 106 "volumesFrom": [], 107 "stopTimeout": null, 108 "image": "nginxイメージ", 109 "startTimeout": null, 110 "firelensConfiguration": null, 111 "dependsOn": [ 112 { 113 "containerName": "django", 114 "condition": "HEALTHY" 115 } 116 ], 117 "disableNetworking": null, 118 "interactive": null, 119 "healthCheck": null, 120 "essential": true, 121 "links": [], 122 "hostname": null, 123 "extraHosts": null, 124 "pseudoTerminal": null, 125 "user": null, 126 "readonlyRootFilesystem": null, 127 "dockerLabels": null, 128 "systemControls": null, 129 "privileged": null, 130 "name": "nginx" 131 } 132 ], 133 "placementConstraints": [], 134 "memory": "512", 135 "taskRoleArn": null, 136 "compatibilities": [ 137 "EC2", 138 "FARGATE" 139 ], 140 "taskDefinitionArn": "arn:aws:ecs:******************************", 141 "family": "******************************, 142 "requiresAttributes": [ 143 { 144 "targetId": null, 145 "targetType": null, 146 "value": null, 147 "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" 148 }, 149 { 150 "targetId": null, 151 "targetType": null, 152 "value": null, 153 "name": "ecs.capability.execution-role-awslogs" 154 }, 155 { 156 "targetId": null, 157 "targetType": null, 158 "value": null, 159 "name": "com.amazonaws.ecs.capability.ecr-auth" 160 }, 161 { 162 "targetId": null, 163 "targetType": null, 164 "value": null, 165 "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" 166 }, 167 { 168 "targetId": null, 169 "targetType": null, 170 "value": null, 171 "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" 172 }, 173 { 174 "targetId": null, 175 "targetType": null, 176 "value": null, 177 "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" 178 }, 179 { 180 "targetId": null, 181 "targetType": null, 182 "value": null, 183 "name": "ecs.capability.container-health-check" 184 }, 185 { 186 "targetId": null, 187 "targetType": null, 188 "value": null, 189 "name": "ecs.capability.container-ordering" 190 }, 191 { 192 "targetId": null, 193 "targetType": null, 194 "value": null, 195 "name": "ecs.capability.execution-role-ecr-pull" 196 }, 197 { 198 "targetId": null, 199 "targetType": null, 200 "value": null, 201 "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" 202 }, 203 { 204 "targetId": null, 205 "targetType": null, 206 "value": null, 207 "name": "ecs.capability.task-eni" 208 }, 209 { 210 "targetId": null, 211 "targetType": null, 212 "value": null, 213 "name": "******************************" 214 } 215 ], 216 "pidMode": null, 217 "requiresCompatibilities": [ 218 "FARGATE" 219 ], 220 "networkMode": "awsvpc", 221 "cpu": "256", 222 "revision": 8, 223 "status": "ACTIVE", 224 "inferenceAccelerators": null, 225 "proxyConfiguration": null, 226 "volumes": [] 227}

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

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

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

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

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

yu_1985

2021/07/18 00:51

ECSへのデプロイはどのように行っていますか?
kensho-

2021/07/18 01:36

>yu_1985さん ご連絡ありがとうございます。 タスク定義を追記させていただきました! ちなみにこのサービスのセキュリティグループでは VPC内の接続と 80ポート 8000ポート を開放しております
yu_1985

2021/07/18 02:05

タスク定義の内容を貼ったのはとてもよいのですが、知りたいのは「どのようにデプロイしているか」です。 docker ecs compose up なのか それともそのdocker-compose.ymlはデプロイには使っていないのか。
kensho-

2021/07/18 02:17

>yu_1985さん 失礼いたしました。 解釈を履き違えておりました。 docker-compose.ymlはデプロイには使っておりません。 作ったアプリをbuildしてecrにpushして、タスク定義でそれを用いた構成を作成し、サービスでそのタスク定義からタスクを起動させたという流れであります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問