From 66a4ace8f55fdbdc1bb08e7c5810c9c35914846d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=9E=AC=EC=A4=91?= <126754298+m-a-king@users.noreply.github.com> Date: Thu, 15 Oct 2026 07:18:11 +0900 Subject: [PATCH] =?UTF-8?q?infra:=20dev=20=EC=95=B1=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=20=EB=B3=B4=EC=95=88=20=EA=B7=B8=EB=A3=B9=EC=9D=84=20=EC=B6=94?= =?UTF-8?q?=EC=B6=9C=20=EC=9D=B8=EB=B0=94=EC=9A=B4=EB=93=9C=EC=97=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 추출 포트 인바운드를 prod 앱 그룹과 dev 앱 그룹 둘로 넓힘 - 원인: core#1213 이 dev 앱 서버를 전용 그룹 piki-dev-app-sg 로 옮김 - 이 서버 한 대가 dev·prod 추출 호출을 둘 다 받음 - 변수 설명의 "세 인스턴스가 그룹 하나를 공유" 서술을 현행으로 고침 - 적용 순서: core 의 새 그룹 생성 뒤, dev 앱 서버의 그룹 교체 앞 - 원인: data 조회가 새 그룹을 이름으로 찾음. 교체가 먼저면 그 사이 dev 추출 호출이 거절됨 --- infra/extractor/main.tf | 7 ++++++- infra/extractor/variables.tf | 14 +++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/infra/extractor/main.tf b/infra/extractor/main.tf index 03114fc..eb40f60 100644 --- a/infra/extractor/main.tf +++ b/infra/extractor/main.tf @@ -31,6 +31,11 @@ data "aws_security_group" "app" { name = var.app_sg_name } +data "aws_security_group" "dev_app" { + vpc_id = data.aws_vpc.main.id + name = var.dev_app_sg_name +} + # 최신 arm64 Ubuntu 24.04 (var.ami_id 지정 시 그 값 사용). JVM 서비스라 Graviton(arm64) 사용 — 본 서버와 동일 라인. data "aws_ami" "ubuntu" { count = var.ami_id == null ? 1 : 0 @@ -138,7 +143,7 @@ resource "aws_security_group" "extractor" { from_port = local.extractor_port to_port = local.extractor_port protocol = "tcp" - security_groups = [data.aws_security_group.app.id] # IP 대신 SG 참조 = '우리 서버만' + security_groups = [data.aws_security_group.app.id, data.aws_security_group.dev_app.id] # IP 대신 SG 참조 = '우리 서버만' } egress { diff --git a/infra/extractor/variables.tf b/infra/extractor/variables.tf index 948189b..e785a09 100644 --- a/infra/extractor/variables.tf +++ b/infra/extractor/variables.tf @@ -22,14 +22,22 @@ variable "public_subnet_cidr" { variable "app_sg_name" { description = <<-EOT - piki 앱 EC2 보안그룹 이름. 이 SG 에서만 추출 API 포트 인바운드를 허용한다(외부 노출 0). - 본 서버 dev/staging/prod 세 인스턴스가 이 SG 하나를 공유하므로 규칙 하나로 세 호출자를 다 덮는다. - ※ 참조 계약: piki 팀이 이 SG 를 rename/재생성하면 이 모듈 plan 이 깨진다. 라이브 이름은 plan 으로 확정할 것. + piki prod 앱 EC2 보안그룹 이름(core terraform/security_groups.tf). 이름의 team3-dev 는 옛 이름이다. + ※ 참조 계약: core 가 이 SG 를 rename/재생성하면 이 모듈 plan 이 깨진다. 라이브 이름은 plan 으로 확정할 것. EOT type = string default = "team3-dev-ec2-sg" } +variable "dev_app_sg_name" { + description = <<-EOT + piki dev 앱 EC2 보안그룹 이름(core terraform/security_groups.tf). 이 박스 한 대가 dev·prod 호출을 둘 다 받는다. + prod 와 그룹을 나눈 이유는 prod DB 인바운드에서 dev 를 빼기 위해서다(core#1213). + EOT + type = string + default = "piki-dev-app-sg" +} + # --------------------------------------------------------------------------- # 박스 스펙 # ---------------------------------------------------------------------------