Skip to content

feat(infra): OCI NLB 전용 Ingress 및 Terraform 관리 편입 - #19

Merged
soohyunme merged 1 commit into
mainfrom
feat/nlb-gitops-adoption
Oct 11, 2026
Merged

soohyunme merged 1 commit into
mainfrom
feat/nlb-gitops-adoption

Conversation

@soohyunme

Copy link
Copy Markdown
Member

변경 내용

기존 10Mbps LB를 유지하면서 검증한 OCI NLB 경로를 GitOps/Terraform 관리 대상으로 편입합니다. NLB는 full NAT와 PROXY protocol v2로 실제 클라이언트 IP를 전달하고, 새 NodePort는 NLB 사설 IP에서 오는 연결만 허용합니다.

  • 별도 ingress-nginx-nlb controller와 Local Service(31080/31443, health 31081)를 기존 Ingress 규칙·TLS Secret에 연결합니다. 원래 controller 설정과 운영 DNS는 그대로 유지합니다.
  • 외부 XFF/X-Real-IP를 신뢰하지 않으며 PROXY 정보를 제공하는 NLB IP만 신뢰합니다.
  • 이미 생성된 NLB/NSG의 11개 리소스는 별도 OCI backend nlb/terraform.tfstate로 이관 완료했습니다. VM의 기존 NSG 연결도 prod 코드에 명시합니다.

검증

  • Terraform fmt/validate, Helm 4.10.1 렌더링 및 Kubernetes 서버 dry-run 통과.
  • state 이관 전후 resource 내용·ID·outputs 일치, 기존 prod state 변경 없음. 이관 후 remote backend plan: No changes. 목적 state lineage/serial은 새로 생성됐으며 원본 대응 기록과 백업을 보관했습니다.
  • 새 NodePort 31080/31443/31081로 VM 공인 IP에 직접 연결하면 차단되고 NLB 접속은 성공.
  • 실제 앱의 전용 합성행사에서 20MB 3개 동시 업로드 및 제출 성공(전송 0.71~0.78초), 해시 일치. 잘못된 합성팀 자격증명은 401.
  • 공유 8개 hostname의 공개 TLS 검증, 위조 헤더 무시 및 실제 client IP 전달, 테스트 ACME 인증서 갱신 검증 완료.
  • 실제 행사 데이터 변경 없음. 보고서·state·인증 키는 커밋에 포함하지 않았습니다.

반영 및 롤백

이 PR은 검토용 draft입니다. main 병합 시 Argo CD가 실행 중인 별도 NLB controller/Service를 관리하게 되므로 사용자 확인 후 병합합니다. Terraform apply 및 운영 DNS 전환은 병합만으로 실행되지 않습니다.

GitOps 편입 후 Synced/Healthy와 접속을 확인한 다음, 별도 확인을 거쳐 DevDay DNS를 전환합니다. DNS 전환 실패 시 기존 LB로 복구하며 기존 controller와 LB는 유지합니다. 새 Application/Service 제거는 DNS 복구와 의존성 확인 이후에 진행합니다.

단일 외부 시험 지점의 3개 동시 업로드 결과이며 행사 회선 40팀 부하나 전체 브라우저 인증 회귀를 보장하지 않습니다. VM의 기존 호스트 80/443 서비스 전체를 차단하는 변경은 아닙니다.

@soohyunme
soohyunme marked this pull request as ready for review October 11, 2026 10:50
@soohyunme
soohyunme merged commit b4ce457 into main Oct 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant