얼마전에 AWS 프리티어 과금 문제를 해결하기 위해 EC2 Instance Connect Endpoint 설정법을 알아보았다.
그런데 8시간 개고생하여 설정을 마친 뒤, 나름 뿌듯함을 느끼며 조금 더 검색을 하다가 엄청난 것을 알게 되었다.
결론은 EC2 Instance Connect Endpoint 알아보고 하는게 다 의미 없는 일이었다. EC2의 public IPv4는 무료가 맞았다.
청구서에 보면 In-use public IPv4 address per hour for EC2 Free Tier 라고 프리티어 EC2를 위한 public IPv4 는 무료라고 되어있고, 그 밑에 $0.005 per In-use public IPv4 address per hour 이렇게 적혀있다.
이건 EC2를 위한 public IPv4는 무료고, 그 외의 것을 위한 public IPv4는 유료라는 의미었다.
내가 도대체 뭘 다른 public IP를 쓰고 있었나 알아보았더니 RDS 때문이었다.
RDS로 postgres16 데이터베이스를 쓰고 있었는데 그걸 처음에 설정할 때 퍼블릭 액세스 허용으로 해놓으면서 RDS에도 나도 모르게 public IP가 할당되어있었던 것이다. 정작 한번도 쓴 적은 없다.
해결책
RDS 콘솔 > 데이터베이스 > 해당 데이터베이스를 클릭 후
DB 인스턴스 수정에 들어가 연결 > 추가구성에서 퍼블릭 액세스를 불가능으로 바꾸어야 한다.
그럼 콘솔의 보안에서 퍼블릭 액세스 가능이 아니요로 바뀐것을 알 수 있다.
이미 AWS에 관련해서 문의는 남겨놔서 답변 오는 건 기다려봐야겠지만
아마 EC2 public IPv4 때문이 아니라 데이터베이스 때문이라고 답변 오지 않을까 싶다.