質問編集履歴

2

自己解決

2021/07/09 16:08

投稿

yaha4967
yaha4967

スコア106

test CHANGED
@@ -1 +1 @@
1
- 同じタスク定義にあるつのコンテナ間はlocalhostで通信できでしょうか?
1
+ 同じタスク定義にあるつのコンテナ間でソケット通信をす方法
test CHANGED
File without changes

1

大幅変更

2021/07/09 16:08

投稿

yaha4967
yaha4967

スコア106

test CHANGED
@@ -1 +1 @@
1
- バインドマウントの設定の仕方これあってるでしょうか?
1
+ 同じタスク義にある2つコンテナ間localhost通信できるでしょうか?
test CHANGED
@@ -1,185 +1,33 @@
1
- # したいこと
2
-
3
- 現在、nginxとrailsをソケットで繋げて動かしてます。ローカルではソケト通信ができます。
1
+ 現在、ECSにファーゲータイプアプリをデプロイしております。そしてECSの同じタスク定義に2つのコンテナ(フントとバクエンド)を置いおリます。
4
2
 
5
3
 
6
4
 
7
- そして、それをECS fargateタイプでデプイしようといてい所なのですがマウントがうまくできていないようでrailsに接続できません。
5
+ ントには問題なく繋がるのですが、バックエドにリクエスを送る何かアクションをすると
8
6
 
9
7
 
10
8
 
9
+ ```
10
+
11
- amazonドキュメントの[こちら](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/bind-mounts.html)を参考にコードを書きました。
11
+ http://127.0.0.1:3000/api/v1/hogehoge net::ERR_CONNECTION_REFUSED
12
+
13
+ ```
12
14
 
13
15
 
14
16
 
15
- 正直、どこが問題なのかわからない状態で、マウトの仕方が合っているか確かめたいと思い質問させていただきした。ご教示いただければ幸いです。
17
+ とgoogle chromeコソールに出しまいます。
16
-
17
-
18
-
19
- # 該当のコード
20
18
 
21
19
 
22
20
 
23
21
 
24
22
 
25
- 以下コードです。
26
-
27
-
28
-
29
- タスク定義部分を抜粋(一部省略してます)
30
-
31
- ```tf
32
-
33
- container_definitions = jsonencode([
34
-
35
- {
36
-
37
- name = "api"
38
-
39
- image = "rails"
40
-
41
- memory = 128
42
-
43
- essential = true
44
-
45
- portMappings = [
46
-
47
- {
48
-
49
- containerPort = 3000
50
-
51
- hostPort = 3000
52
-
53
- }
54
-
55
- ]
56
-
57
- mountPoints = [
58
-
59
- {
60
-
61
- sourceVolume = "socket"
62
-
63
- containerPath = "/app/tmp"
64
-
65
- },
66
-
67
- {
68
-
69
- sourceVolume = "socket"
70
-
71
- containerPath = "/app/public"
23
+ フロントとバックエンドをつなげることが出来ればlocalhostにはこだわらないです。何かヒントをいただければ幸いです。他に必要な情報ありましたら追記いたします。
72
-
73
- }
74
-
75
- ]
76
-
77
- },
78
-
79
- {
80
-
81
- name = "front"
82
-
83
- image = "nginx"
84
-
85
- memory = 128
86
-
87
- essential = true
88
-
89
- portMappings = [
90
-
91
- {
92
-
93
- containerPort = 80
94
-
95
- hostPort = 80
96
-
97
- }
98
-
99
- ]
100
-
101
- volumesFrom = [
102
-
103
- {
104
-
105
- sourceContainer = "api"
106
-
107
- }
108
-
109
- ]
110
-
111
- }
112
-
113
- ])
114
-
115
-
116
-
117
- volume {
118
-
119
- name = "socket"
120
-
121
- }
122
-
123
- }
124
-
125
- ```
126
24
 
127
25
 
128
26
 
129
27
 
130
28
 
131
- railsのDockerfile
29
+ 自分で気になっている点
132
30
 
31
+ ・ロードバランサーを使っているから?
133
32
 
134
-
135
- ```
136
-
137
- FROM ruby:3.0.1
138
-
139
-
140
-
141
-
142
-
143
- RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
144
-
145
- && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
146
-
147
- && apt-get update -qq \
148
-
149
- && apt-get install -y nodejs yarn
33
+ ・ファーゲートタイプで、ネットワークがawsvpcになってるからそれが関係してる?
150
-
151
- WORKDIR /app
152
-
153
- COPY . /app
154
-
155
- RUN bundle config --local set path 'vendor/bundle' \
156
-
157
- && bundle install \
158
-
159
- && mkdir -p tmp/sockets \
160
-
161
- && mkdir -p tmp/pids
162
-
163
-
164
-
165
- VOLUME ["/app/public"]
166
-
167
- VOLUME ["/app/tmp"]
168
-
169
-
170
-
171
- COPY entrypoint.sh /usr/bin/
172
-
173
- RUN chmod +x /usr/bin/entrypoint.sh
174
-
175
- ENTRYPOINT ["entrypoint.sh"]
176
-
177
-
178
-
179
-
180
-
181
- CMD bash -c "rm -f tmp/pids/server.pid && bundle exec puma -C config/puma/production.rb -e production"
182
-
183
-
184
-
185
- ```