質問編集履歴

4

tuiki

2022/02/17 23:33

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -44,6 +44,8 @@
44
44
  ```json
45
45
  // terraform/definitions/container.json
46
46
  [
47
+ { // フロントの定義の為省略
48
+ },
47
49
  {
48
50
  "name": "api_container",
49
51
  "image": "1234567765432(例).dkr.ecr.ap-northeast-1.amazonaws.com/api:latest",
@@ -103,3 +105,89 @@
103
105
  }
104
106
  ]
105
107
  ```
108
+
109
+ ```json
110
+ //タスク定義
111
+ // terraform/ecs.tf
112
+ resource "aws_ecs_task_definition" "nurse_container" {
113
+ family = "nurse_container"
114
+ cpu = "512"
115
+ memory = "1024"
116
+ network_mode = "awsvpc"
117
+ requires_compatibilities = ["FARGATE"]
118
+ container_definitions = file("./definitions/nurse_container.json")
119
+ execution_role_arn = module.ecs_task_execution_role.iam_role_arn
120
+ }
121
+ ```
122
+
123
+ ```json
124
+ resource "aws_ecs_service" "nurse" {
125
+ name = "nurse"
126
+ cluster = aws_ecs_cluster.cluster.arn
127
+ task_definition = aws_ecs_task_definition.nurse_container.arn
128
+ desired_count = 1
129
+ launch_type = "FARGATE"
130
+ platform_version = "1.4.0"
131
+ health_check_grace_period_seconds = 60
132
+
133
+ network_configuration {
134
+ assign_public_ip = false
135
+ security_groups = [
136
+ module.front_sg.security_group_id,
137
+ module.api_sg.security_group_id
138
+ ]
139
+
140
+ subnets = [
141
+ aws_subnet.private-1a.id,
142
+ aws_subnet.private-1c.id
143
+ ]
144
+ }
145
+
146
+ load_balancer {
147
+ target_group_arn = aws_lb_target_group.front_container.arn
148
+ container_name = "front_container"
149
+ container_port = 8080
150
+ }
151
+
152
+ lifecycle {
153
+ ignore_changes = [task_definition]
154
+ }
155
+ }
156
+ ```
157
+
158
+ ```json
159
+ // セキュリティグループ
160
+ // terraform/sg.tf
161
+
162
+ module "http_sg" {
163
+ source = "./security_group"
164
+ name = "http_sg"
165
+ vpc_id = aws_vpc.vpc.id
166
+ port = 80
167
+ cidr_blocks = ["0.0.0.0/0"]
168
+ }
169
+
170
+ module "https_sg" {
171
+ source = "./security_group"
172
+ name = "https_sg"
173
+ vpc_id = aws_vpc.vpc.id
174
+ port = 443
175
+ cidr_blocks = ["0.0.0.0/0"]
176
+ }
177
+
178
+ module "front_sg" {
179
+ source = "./security_group"
180
+ name = "front_sg"
181
+ vpc_id = aws_vpc.vpc.id
182
+ port = 8080
183
+ cidr_blocks = [aws_vpc.vpc.cidr_block]
184
+ }
185
+
186
+ module "api_sg" {
187
+ source = "./security_group"
188
+ name = "api_sg"
189
+ vpc_id = aws_vpc.vpc.id
190
+ port = 3000
191
+ cidr_blocks = [aws_vpc.vpc.cidr_block]
192
+ }
193
+ ```

3

idのせてしまった

2022/02/16 08:32

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,7 @@
46
46
  [
47
47
  {
48
48
  "name": "api_container",
49
- "image": "850929304034.dkr.ecr.ap-northeast-1.amazonaws.com/api:latest",
49
+ "image": "1234567765432(例).dkr.ecr.ap-northeast-1.amazonaws.com/api:latest",
50
50
  "essential": true,
51
51
  "logConfiguration": {
52
52
  "logDriver": "awslogs",

2

ついき

2022/02/16 08:30

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -12,3 +12,94 @@
12
12
  を記述したところpumaの起動の様子が変わって2~3回起動を試みた後に、結局同じSocketErrorが出現しました。
13
13
 
14
14
  解決方法のご教授よろしくお願い致します。
15
+
16
+
17
+ 追記です。
18
+ terraformで構築しております。
19
+
20
+ ```docker
21
+ # /api/Dockerfile
22
+
23
+ FROM ruby:2.7.1
24
+
25
+
26
+ ENV RAILS_ENV production
27
+ EXPOSE 3000
28
+
29
+ RUN apt-get update -qq && \
30
+ apt-get install -y build-essential \
31
+ libpq-dev \
32
+ nodejs \
33
+ && rm -rf /var/lib/apt/lists/*
34
+
35
+ RUN mkdir /app
36
+ WORKDIR /app
37
+
38
+
39
+ COPY . .
40
+
41
+ RUN bundle install
42
+ ```
43
+
44
+ ```json
45
+ // terraform/definitions/container.json
46
+ [
47
+ {
48
+ "name": "api_container",
49
+ "image": "850929304034.dkr.ecr.ap-northeast-1.amazonaws.com/api:latest",
50
+ "essential": true,
51
+ "logConfiguration": {
52
+ "logDriver": "awslogs",
53
+ "options": {
54
+ "awslogs-region": "ap-northeast-1",
55
+ "awslogs-stream-prefix": "api",
56
+ "awslogs-group": "/ecs/api"
57
+ }
58
+ },
59
+ "portMappings": [
60
+ {
61
+ "protocol": "tcp",
62
+ "containerPort": 3000
63
+ }
64
+ ],
65
+ "environment": [
66
+ {
67
+ "name": "HOST",
68
+ "value": "0.0.0.0"
69
+ },
70
+ {
71
+ "name": "PORT",
72
+ "value": "3000"
73
+ },
74
+ {
75
+ "name": "RAILS_ENV",
76
+ "value": "production"
77
+ }
78
+ ],
79
+ "secrets": [
80
+ {
81
+ "name": "API_DOMAIN",
82
+ "valueFrom": "API_DOMAIN"
83
+ },
84
+ {
85
+ "name": "DATABASE_URL",
86
+ "valueFrom": "DATABASE_URL"
87
+ },
88
+ {
89
+ "name": "RAILS_MASTER_KEY",
90
+ "valueFrom": "RAILS_MASTER_KEY"
91
+ }
92
+ ],
93
+ "command": [
94
+ "bundle",
95
+ "exec",
96
+ "rails",
97
+ "s",
98
+ "-b",
99
+ "'0.0.0.0'",
100
+ "-p",
101
+ "3000"
102
+ ]
103
+ }
104
+ ]
105
+ ```

1

gozi

2022/02/16 07:56

投稿

IRIESS
IRIESS

スコア45

test CHANGED
File without changes
test CHANGED
@@ -7,7 +7,7 @@
7
7
  海外のサイトだと/etc/hostsに host名を記述しろと書いてありますが、rails6にそのようなファイルは生成されないと認識しております。
8
8
  ```ruby
9
9
  # development.rb
10
- config << "api_container" #タスク定義内のコンテナ名
10
+ config.hosts << "api_container" #タスク定義内のコンテナ名
11
11
  ```
12
12
  を記述したところpumaの起動の様子が変わって2~3回起動を試みた後に、結局同じSocketErrorが出現しました。
13
13