백엔드 공개 준비 — 두 가지만 해주시면 됩니다
백엔드가 EC2에서 돌고 있습니다(가입·로그인·카드·팀·경기까지 실제 DB에 저장되는 것을 확인했습니다). 밖에서 붙을 수 있게 하려면 도메인 쪽 작업 둘이 필요한데, 도메인 관리가 박민호 님이라 부탁드립니다.
정본은 미결 항목 8번입니다. 이 글은 알림이고, 항목에 담당·기한이 붙어 있습니다.
🔴 정정 2 (최종). 지금 부탁드릴 것이 없어졌습니다. 탄력적 IP 는 붙이지 않기로 했고(비용 대비 필요가 아직 없습니다), 그러면 인스턴스를 껐다 켤 때마다 주소가 바뀌므로 A 레코드도 지금 만들면 안 됩니다 — 곧 틀어집니다.
외부 공개를 결정하는 날 한꺼번에 합니다: 그날의 IP 로 A 레코드 → 제가 nginx· 인증서 → 80·443 개방. 이름은
<API 호스트>으로 정해 두었습니다.아래 본문은 그날 무엇을 하는지를 보여 주려고 남겨 둡니다. (정정 1: 탄력적 IP 를 정어진이 하기로 했던 것 → 아예 안 붙이는 것으로 바뀜)
이 글을 Claude에게 주실 때
jekyll/pages/pending.markdown 에서 '담당.*박민호' 를 찾아 나에게 온 항목을 읽어줘.
8번(배포)은 AWS 콘솔 작업이 필요하니, 무엇을 어떤 순서로 눌러야 하는지와
끝난 뒤 확인하는 방법을 알려줘. 콘솔 작업 자체는 내가 직접 한다.
해주실 것 둘
⑴ 탄력적 IP 연결 — 정어진이 합니다 (참고용)
인스턴스를 주기적으로 껐다 켜신다고 들었습니다. 지금 IP는 켤 때마다 바뀝니다. 바뀌면 DNS도, 팀원들의 SSH 설정도 전부 어긋납니다.
제가 콘솔에서 붙이고 새 IP를 직접 전달드리겠습니다. 이 저장소는 공개라 값을 여기 적지 않습니다 — 미결 8번에는 “전달함”만 남깁니다.
⚠️ 연결하는 순간 지금 공인 IP는 반납됩니다. 서버에 SSH로 붙어 계신 분이 있으면 주소가 바뀌니, 바뀐 값을 공유하겠습니다.
⚠️ 탄력적 IP는 인스턴스가 꺼져 있는 동안 요금이 붙습니다(연결돼 있어도 실행 중이 아니면). 시간당 몇 센트 수준이지만, 자주 끄시는 만큼 새로 생기는 비용입니다.
⑵ <API 호스트> A 레코드 → 그 IP ← 이것만 부탁드립니다
백엔드 주소를 <API 호스트>으로 정했습니다. 웹(supersub-ai.com)은 Vercel에 그대로 두고, API만 EC2를 가리키게 하는 것입니다.
지금은 이 이름이 아무 데도 안 걸려 있습니다.
getent hosts <API 호스트> # 지금은 결과 없음, 설정되면 IP가 나옵니다
순서가 중요합니다
⑴이 끝난 뒤에 ⑵를 해주세요. IP가 정해지기 전에 A 레코드를 만들면 곧 바뀔 주소를 가리키게 됩니다. 제가 IP를 알려 드리면 그때 만드시면 됩니다.
지금 안 하셔도 되는 것
🔴 80·443 포트는 아직 열지 않기로 했습니다. 지금은 SSH 터널로 개발·시연이 되고, 여는 것은 nginx와 인증서가 준비된 뒤가 안전합니다. 설정이 빈 채로 열리면 서비스가 막히는 게 아니라 잘못 도는 상태로 노출됩니다.
⑴⑵는 포트와 무관하게 지금 하셔도 됩니다. 오히려 먼저 되어 있어야 나중에 여는 날 바로 이어집니다.
끝나면 제가 할 것
nginx 리버스 프록시 → Let’s Encrypt 인증서 → 443만 노출(80은 리다이렉트)입니다. 지금 앱은 127.0.0.1:8000에만 묶여 있어서 포트만 열면 아무도 응답하지 않습니다 — 그 사이를 잇는 것이 nginx이고 제 몫입니다.
참고 — 껐다 켜셔도 서비스는 알아서 돌아옵니다
postgresql·supersub-api·백업 타이머가 전부 enabled라 부팅하면 스스로 뜹니다.
ssh supersub 'systemctl is-active postgresql supersub-api' # active active
절차와 확인 명령은 fastapi/docs/deployment.md 6~8절에 있습니다.