ECS Task를 고정된 IP로 실행하기

2024년 12월 6일 금요일

Today I Learned

날짜

2024년 12월 6일 금요일

내용

ECS Task의 IP 고정하기

네이버 커머스 솔루션에서 앱을 등록할 때, IP를 등록해야 한다. 네이버 쪽 API를 사용할때는 등록된 API만 사용해야 한다. 네이버쪽에서 허용되지 않은 IP로 요청이 왔었고, 이게 지속되면 막아버린다고 한다.

곰곰히 생각해봤을 때, 네이버 API에 접근하는 곳은 3가지이다. 서버, 크론 작업이 돌아가는 ECS Task, 서버의 데이터베이스 마이그레이션이나 커맨드를 돌릴 떄 사용하는 EC2다. 서버는 진작에 등록해줬기 떄문에 문제가 없고, EC2는 이참에 등록해줬다. 그런데 네이버쪽에서 보내준 IP는 EC2 것과는 달랐다. 인스턴스를 바꾸거나 한 일이 없으니 IP도 바뀌지 않았기 떄문에.. 아마 ECS Task의 IP였나보다. 그렇다면 크론작업이 돌아갈 때만 생성되는 Task의 IP가 무엇일 줄 알고 미리 네이버에 등록할 수 있을까..

방법을 찾던 중 Task가 항상 같은 IP를 가질 수 있는 아이디어를 발견했다. 서브넷 중 프라이빗 서브넷만 이용하면 된다. 프라이빗 서브넷에 할당된 Task가 외부 인터넷에 접속할 떄는 항상 NAT 게이트웨이를 통해야 한다. 따라서 이 Task의 퍼블릭 IP는 NAT 게이트웨이 에 할당된 Elastic IP로 고정될 테다. Task가 프라이빗 서브넷에만 할당되도록 설정을 변경해주었다. 아마 되지 않을까?

회고

네이버는 왜 API를 등록하라는 걸까?