Skip to content

Commit 33537e1

Browse files
authored
Merge pull request #152 from YAPP-Github/refactor/latency
[Refactor] API 지연 개선을 위한 인스턴스 스케일업 및 동작 방식 변경 -1
2 parents a0e722a + 718a692 commit 33537e1

File tree

8 files changed

+42
-22
lines changed

8 files changed

+42
-22
lines changed

terraform/common/locals.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,22 @@ locals {
3131
"arn:aws:iam::aws:policy/AmazonS3FullAccess",
3232
"arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
3333
]
34+
custom_inline_policies = {
35+
ssm_mysql_url_access = {
36+
name = "ssm-mysql-url-access"
37+
description = "Allow reading MySQL URL parameter from SSM"
38+
policy_document = {
39+
Version = "2012-10-17"
40+
Statement = [
41+
{
42+
Effect = "Allow"
43+
Action = ["ssm:GetParameter"]
44+
Resource = "arn:aws:ssm:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:parameter/dev/MYSQL_URL"
45+
}
46+
]
47+
}
48+
}
49+
}
3450
tags = {
3551
Purpose = "ECS EC2 Registration"
3652
}

terraform/dev/locals.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ locals {
4242

4343
dev_instance_definitions = {
4444
ami = "ami-012ea6058806ff688"
45-
instance_type = "t2.micro"
45+
instance_type = "t3a.small"
4646
role = "dev"
4747
iam_instance_profile = data.terraform_remote_state.common.outputs.instance_profile_name["ec2-to-ecs"]
4848
key_name = "eatda-ec2-dev-key"
@@ -81,7 +81,7 @@ locals {
8181
"-Ddd.service=eatda-api",
8282
"-Ddd.env=dev",
8383
"-Ddd.version=v1",
84-
"-Ddd.agent.host=10.0.7.245",
84+
"-Ddd.agent.host=127.0.0.1",
8585
"-Dspring.profiles.active=dev",
8686
"-jar",
8787
"/api.jar"

terraform/dev/scripts/user-data.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ mkswap /swapfile
77
swapon /swapfile
88
echo '/swapfile none swap sw 0 0' >> /etc/fstab
99

10-
mkdir -p /home/ec2-user/logs
10+
mkdir -p /home/ec2-user/logs/backup
1111
mkdir -p /home/ec2-user/mysql
1212
mkdir -p /home/ec2-user/scripts
1313

14+
chown -R ec2-user:ec2-user /home/ec2-user/logs /home/ec2-user/mysql /home/ec2-user/scripts
15+
1416
aws s3 cp s3://eatda-storage-dev/scripts/app-backup-dev-logs.sh /home/ec2-user/scripts/app-backup-dev-logs.sh
1517
chmod +x /home/ec2-user/scripts/app-backup-dev-logs.sh
1618

@@ -27,7 +29,7 @@ done
2729

2830
(
2931
sudo crontab -u ec2-user -l 2>/dev/null || true
30-
echo "0 0 * * 0 /home/ec2-user/scripts/app-backup-dev-logs.sh >> /var/log/app-backup.log 2>&1"
31-
echo "30 0 * * 0 /home/ec2-user/scripts/mysql-backup.sh >> /var/log/mysql-backup.log 2>&1"
32+
echo "0 0 * * 0 /home/ec2-user/scripts/app-backup-dev-logs.sh >> /home/ec2-user/logs/backup/app-backup.log 2>&1"
33+
echo "30 0 * * 0 /home/ec2-user/scripts/mysql-backup.sh >> /home/ec2-user/logs/backup/mysql-backup.log 2>&1"
3234
) | sudo crontab -u ec2-user -
3335

terraform/dev/terraform.tfvars

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ ecs_services = {
2121
ecs_task_definitions_base = {
2222
api-dev = {
2323
cpu = 256
24-
memory = 256
25-
network_mode = "bridge"
24+
memory = 1024
25+
network_mode = "host"
2626
requires_compatibilities = ["EC2"]
2727

2828
port_mappings = [
@@ -48,7 +48,7 @@ ecs_task_definitions_base = {
4848
cpu = 256
4949
memoryReservation = 128
5050
memory = 512
51-
network_mode = "bridge"
51+
network_mode = "host"
5252
requires_compatibilities = ["EC2"]
5353
container_image = "mysql:8"
5454

@@ -89,8 +89,8 @@ ecs_task_definitions_base = {
8989

9090
"datadog-agent-task" = {
9191
cpu = 256
92-
memory = 128
93-
network_mode = "bridge"
92+
memory = 256
93+
network_mode = "host"
9494
requires_compatibilities = ["EC2"]
9595
container_image = "public.ecr.aws/datadog/agent:latest"
9696

terraform/prod/ecs/locals.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,16 @@ locals {
7878
command = svc == "api-prod" ? [
7979
"java",
8080
"-Xlog:gc*:time,uptime,level,tags",
81-
"-javaagent:/app/dd-java-agent.jar",
81+
"-javaagent:/dd-java-agent.jar",
8282
"-Ddd.logs.injection=true",
8383
"-Ddd.runtime-metrics.enabled=true",
8484
"-Ddd.service=eatda-api",
8585
"-Ddd.env=dev",
8686
"-Ddd.version=v1",
87-
"-Ddd.agent.host=10.0.7.245",
87+
"-Ddd.agent.host=127.0.0.1",
8888
"-Dspring.profiles.active=prod",
8989
"-jar",
90-
"/app/api.jar"
90+
"/api.jar"
9191
] : null
9292

9393
portMappings = [

terraform/prod/locals.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ locals {
5050
locals {
5151
prod_instance_definitions = {
5252
ami = "ami-012ea6058806ff688"
53-
instance_type = "t3.micro"
53+
instance_type = "t3a.small"
5454
role = "prod"
5555
iam_instance_profile = "ec2-to-ecs"
5656
key_name = "eatda-ec2-prod-key"

terraform/prod/scripts/user-data.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ mkswap /swapfile
77
swapon /swapfile
88
echo '/swapfile none swap sw 0 0' >> /etc/fstab
99

10-
mkdir -p /home/ec2-user/logs
10+
mkdir -p /home/ec2-user/logs/backup
1111
mkdir -p /home/ec2-user/scripts
1212

13+
chown -R ec2-user:ec2-user /home/ec2-user/logs /home/ec2-user/scripts
14+
1315
aws s3 cp s3://eatda-storage-prod/scripts/app-backup-prod-logs.sh /home/ec2-user/scripts/app-backup-prod-logs.sh
1416
chmod +x /home/ec2-user/scripts/app-backup-prod-logs.sh
1517

@@ -23,5 +25,5 @@ done
2325

2426
(
2527
sudo crontab -u ec2-user -l 2>/dev/null || true
26-
echo "0 0 * * 0 /home/ec2-user/scripts/app-backup-prod-logs.sh >> /home/ec2-user/logs/app-backup.log 2>&1"
28+
echo "0 0 * * 0 /home/ec2-user/scripts/app-backup-prod-logs.sh >> /home/ec2-user/logs/backup/app-backup.log 2>&1"
2729
) | sudo crontab -u ec2-user -

terraform/prod/terraform.tfvars

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,26 @@ ecs_services = {
1818
ecs_task_definitions_base = {
1919
api-prod = {
2020
cpu = 256
21-
memory = 256
22-
network_mode = "bridge"
21+
memory = 1024
22+
network_mode = "host"
2323
container_port = [8080]
2424
host_port = [0]
2525
log_group = "/ecs/eatda-api"
2626
environment = {}
2727
volumes = [
2828
{
29-
name = "prod-api-volume"
30-
host_path = "/home/ec2-user/api"
29+
name = "prod-api-volume"
30+
host_path = "/home/ec2-user/logs/"
3131
}
3232
]
3333
}
3434

3535
datadog = {
3636
container_image = "public.ecr.aws/datadog/agent:latest"
3737
cpu = 256
38-
memoryReservation = 128
38+
memoryReservation = 256
3939
memory = 512
40-
network_mode = "bridge"
40+
network_mode = "host"
4141
container_port = [8125, 8126]
4242
host_port = [8125, 8126]
4343
requires_compatibilities = ["EC2"]

0 commit comments

Comments
 (0)