Skip to content

extractor 포트 8081 전환 - #109

Merged
m-a-king merged 3 commits into
mainfrom
infra/108-port-8081
Oct 14, 2026
Merged

m-a-king merged 3 commits into
mainfrom
infra/108-port-8081

Conversation

@m-a-king

@m-a-king m-a-king commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

한눈에

extractor 가 요청을 받는 포트를 8081 로 옮기는 첫 단계

  • 이전: extractor 서버 입구가 8090
    • 포트 숫자가 앱 설정·nginx·배포·SG 에 따로 적힘
  • 배포 작업이 infra 포트 파일에서 포트(8081)를 읽어 서버에 넘김
  • 서버 입구가 새 포트 8081 과 옛 포트 8090 을 함께 받음
    • core 가 아직 8090 으로 부르므로 옛 포트 유지
  • 배포 작업이 renderer 주소를 매번 계산함
    • AWS 설정값 저장소(SSM)에 적어 두던 renderer 주소는 삭제
  • 머지하면 extractor 가 prod 서버에 자동 배포됨
    • 머지 전에 작업자가 SSM 의 renderer 주소를 지워야 함

Situation

extractor 포트 8081 전환

Task

extractor 포트 8081 전환

Action

포트를 정본에서 읽음

대상 이전 이후
앱 리슨 포트 설정 파일의 8090 env PORT. 없으면 로컬 기본값과 WARN
슬롯 (blue·green) 18090·18091 배포 블록이 서비스 포트에서 계산
nginx 입구 8090 정본 값·옛 8090
SG 인바운드 8090 정본 값·옛 8090 (http 데이터 소스)
배포 후 프론트 검증 주소 localhost:8090 localhost 의 정본 값
  • Dockerfile 의 포트 선언 삭제
    • 원인: publish 에 영향 없음. 이미지 안에 포트 숫자를 두지 않음
  • 옛 입구 8090 은 숫자 그대로 둠
    • 원인: 이전이 끝나면 지울 값. 2단계에서 삭제

renderer 주소를 배포가 계산

  • 배포 작업(러너)이 infra 의 주소 계산 블록으로 renderer 서버 Name 태그의 사설 IP 를 찾고 정본 포트를 붙임
  • 계산한 값을 컨테이너 env 파일 끝에 넣음
  • SSM 의 같은 키는 env 파일 변환 블록의 예약 이름으로 막음
    • 결과: SSM 에 옛 주소가 남아 있으면 배포 실패
선택지 장점 비용
SSM 키를 예약으로 막음 (채택) 값이 두 곳에 있을 수 없음 머지 전에 SSM 키를 지워야 함
계산 값을 뒤에 덧붙여 덮어씀 SSM 정리와 머지 순서 무관 옛 값이 SSM 에 남아 조용히 낡음
  • 덮어쓰기는 동작함
    • 결과: docker env 파일은 같은 키가 둘이면 마지막 값 하나만 넣음 (로컬 실측)
    • 기각: 정본이 둘로 남음

옛 슬롯을 알아보는 배포 인자 사용

  • 배포 블록에 옛 슬롯 18090·18091 을 함께 넘김
  • 원인: 서비스 중인 포트가 새 슬롯과 다르면 블록이 첫 배포로 판단
    • 서비스 중인 컨테이너가 blue 면 새 컨테이너 기동 전에 지워짐
    • 결과: 그 경우 JVM 기동 시간만큼 추출 요청 실패

Result

검증

  • terraform plan: SG 1건 변경
    • 정본에서 읽은 8081 규칙 추가, 8090 유지
  • 실제 서버 상태 파일(green 18091 서비스 중)로 슬롯 판정 확인
    • 결과: 새 슬롯은 blue 18081, 옛 green 은 전환 뒤 종료
  • 기본 포트 경고 테스트 2건: PORT 없을 때 경고·있을 때 경고 없음

반영 순서

  1. 배포 블록 옛 슬롯 포트 인식 추가 infra#129·#131 머지 (완료)
  2. 이 브랜치에서 terraform apply (SG 에 8081 추가)
  3. SSM 의 renderer 주소 키 삭제
  4. 머지 (prod 서버 자동 배포)
  5. 서버에서 8081·8090 응답, PORT 값, renderer 주소 확인
  6. 머지로 자동으로 닫힌 extractor 포트 8081 전환 #108 다시 열기 (2단계 남음)
  • 위험: 3번과 4번 사이에 옛 커밋을 다시 배포하면 renderer 주소가 없어 새 컨테이너가 뜨지 못함
    • 그 경우에도 서비스 중인 컨테이너가 계속 응답

후속

  • core 가 정본으로 extractor 주소를 계산 (core 이슈)
  • 2단계: nginx 8090·SG 8090·옛 슬롯 인자 제거

연관 이슈

- 앱·컨테이너 포트 8090 에서 8081 로
  - 원인: infra 포트 체계 규약의 extractor 서비스 번호 (TeamPiKi/infra#126)
- 슬롯 18090·18091 에서 18081·28081 로
  - 배포 블록 --legacy-slot 로 서빙 중인 옛 슬롯을 알아봄 (TeamPiKi/infra#128)
  - 결과: 옛 blue 가 서빙 중이어도 새 컨테이너 기동 전에 지워지지 않음
- nginx 입구가 8081·8090 둘 다 받음
  - 원인: core 의 extractor 주소를 옮길 때까지 옛 입구 유지
- SG 인바운드를 포트 목록으로 바꾸고 8081 추가 (8090 유지)
@m-a-king m-a-king added the infra 운영 환경 (IaC·클라우드 리소스·secret·배포 workflow) label Oct 14, 2026
@m-a-king m-a-king linked an issue Oct 14, 2026 that may be closed by this pull request
@m-a-king m-a-king self-assigned this Oct 14, 2026
@github-actions

Copy link
Copy Markdown

Discord 스레드 연동용 메타데이터입니다. discord-pr-bot 워크플로가 자동 생성하며, 수정·삭제하면 PR 과 Discord 알림 연동이 끊깁니다.

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cdcffedd-16bd-454f-a724-3870e47ec157
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

- application.yml server.port 를 ${PORT:로컬 기본값} 으로 교체
- ListenPortWarning 추가: PORT 없이 뜨면 기동 완료 때 WARN
  - 원인: 배포가 PORT 를 빠뜨린 상태를 로그로 드러냄
- Dockerfile EXPOSE 삭제
  - 원인: 포트 숫자를 이미지에 두지 않음. EXPOSE 는 publish 에 영향 없음
- 배포가 infra contracts/ports.json 에서 서비스 포트를 읽음
  - deploy_slot 에 --service-port 하나만 넘김. 슬롯 포트·PORT env 는 블록이 계산
  - nginx conf 의 listen 자리를 배포가 채움
- 배포가 renderer 주소를 service_url.sh 로 계산해 env 파일에 넣음
  - SSM 의 같은 키는 예약으로 막음. 남아 있으면 배포 실패
  - 원인: SSM 주소는 포트·박스가 바뀔 때 조용히 낡음
- SG 가 정본을 http 데이터 소스로 읽음
- 옛 입구 8090 과 옛 슬롯 인자는 core 전환까지 유지(#108)
@m-a-king
m-a-king merged commit 90f5e84 into main Oct 14, 2026
4 checks passed
@m-a-king
m-a-king deleted the infra/108-port-8081 branch October 14, 2026 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra 운영 환경 (IaC·클라우드 리소스·secret·배포 workflow)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

extractor 포트 8081 전환

1 participant