2024년 2월 1일부터 AWS의 Public IPv4 주소 사용이 유료화되었다.
IPv4 주소가 고갈되면서 IPv6로의 이전을 장려하기 위해 취한 조치라는 것 같다.
공지 글을 읽어보면 프리티어(Free-tier) 사용자는 유료화에서 제외가 되는 모양이다.
단, 이는 EC2 인스턴스에 할당된 주소에만 적용된다.
"퍼블릭 IPv4 주소로 EC2 인스턴스를 시작하면 매달 750시간의 퍼블릭 IPv4 주소를 무료로 사용할 수 있습니다."
(매달 750시간이라는 건 한달 내내 써도 무료라는 뜻이다.)
그런데 이상하게도 내가 가진 프리티어 계정에서는 2월부터 과금이 되고 있었다.
검색해보니 해외에서도 이런 유저가 꽤 많은 모양이다.
프리티어인데 왜 과금이 되고 있는지, 어떻게 하면 이를 해결할 수 있는지 알아보자.
1. 일단 프리티어가 맞는가?
프리티어 플랜은 1년간만 유효하기 때문에, 계정 생성 후 1년이 넘었다면 과금이 되는 것이 정상이다.
그냥 돈을 내거나 IPv6로의 전환 등 다른 방법들을 찾아보자.
2. 어디서 비용이 청구 됐는지 확인하기
AWS 콘솔 > 결제 및 비용관리 > 청구서에 들어가면 아래처럼 청구 항목을 확인할 수 있다.
Virtual Private Cloud에서 돈이 나갔는데, 아래 두 항목에 주목해보자.
- $0.00 per In-use public IPv4 address per hour for EC2 Free Tier --> 비용 청구 안됨
- $0.005 per In-use public IPv4 address per hour --> 비용 청구됨
즉 EC2가 아닌 무언가에서 Public IP를 사용하고 있다는 뜻이다.
Q. 저는 EC2만 쓰고 있는데요? (혹은 EC2도 안 쓰고 있는데요?)
필자도 위 사진의 계정 외에 EC2 인스턴스 하나만 만든 계정이 있는데,
얼마 전에 확인해보니 $0.2정도가 과금되었었다.
그런데 며칠 뒤에 다시 보니 $0.0으로 표시가 바뀌어 있었다.
이와 관련해서 AWS의 답변을 찾았는데, 이번 변화가 모든 계정에 적용되는데 시간이 걸리고 있어서 잠깐 잘못 표시되었을 수 있고, 2월 말에 실제 비용이 청구되기 전에는 모든 계정이 제대로 표시될 것이라고 한다.
그러니 본인이 여기에 해당한다면 좀 인내심을 갖고 기다려보자.
3. 무엇이 Public IPv4를 쓰고 있는지 찾기
AWS 콘솔 > VPC IP Address Manager (검색창에 address라고 치면 나옴) > (왼편 메뉴 중) 퍼블릭 IP 인사이트 > 퍼블릭 IP주소 섹션을 확인해보자.
* 만약 IPAM을 생성해야 한다고 하면 프리티어용으로 먼저 하나 만들어준다.
필자는 Public IP를 총 2개 사용 중이었다.
하나는 EC2이고, 나머지 하나는 Relational Database Service라고 되어 있다.
즉 RDS에 Public IPv4 주소가 할당이 되어 있다는 말이다.
(본인이 해놓고 왜 모르냐 싶겠지만 위 계정은 내가 PM으로 있는 프로젝트에 다른 개발자가 세팅해둔 것이다..그리고 개발자여도 실수로 할당했을 수 있다!)
그럼 이제 결정을 해야 한다.
돈을 내고 RDS IP주소를 계속 쓸 것인가, 아니면 IP주소를 해제하고 과금을 피할 것인가?
위 프로젝트의 경우 RDS에 Public IP는 딱히 필요없어서, 이를 해제하기로 했다.
4. RDS에 할당된 Public IPv4 주소 사용 해제하기
AWS 콘솔 > RDS > (왼편 메뉴 중) 데이터베이스 > 목록에서 DB 인스턴스 선택 > 수정에 들어간다.
화면을 쭉 내려가다보면 '연결' 섹션이 있는데 섹션 하단의 '추가 구성' 부분을 펼쳐보자.
여기서 "퍼블릭 액세스 불가능"을 선택하고 저장하면 된다.
퍼블릭 액세스 불가능을 선택하면 VPC 외부의 EC2 인스턴스 및 디바이스는 DB에 연결할 수 없으니, 본인 프로젝트에 영향이 없는지 잘 파악하고 선택하자.
이제 Public IP주소가 해제됐다.
그런데..
잘 해제됐나 확인하려고 VPC IP Address Manager 에 다시 들어갔는데
사용 중인 IP가 여전히 2개라고 표시되고 있었다.
왜일까?
이것도 그냥 반영이 느려서 그렇다.
필자의 경우 24시간 정도 지나서야 1로 바뀌었으니, 좀 기다려보기 바란다.
Q. 불안한데 잘 해제된건지 미리 알 수 없을까요?
AWS 콘솔 상단에 있는 네모[>-] 아이콘을 클릭하면 AWS cloudshell을 열 수 있다.
여기서 다음 명령으로 RDS에 설정된 IP 주소를 확인할 수 있다.
nslookup [RDS 엔드포인트]
RDS의 퍼블릭 액세스를 비활성화하면, 기존에 할당된 Public IP 주소는 사라지고 Private IP 주소로 변경된다.
따라서 위 명령어를 입력했을 때 Private IP 주소가 출력된다면 Public IP 주소가 잘 사라진 것이다.
* 만약 command not found 같은게 뜬다면 설치가 안 되어서 그러니,
sudo yum install -y bind-utils를 먼저 쳐준다.
Q. 명령어에 입력할 [RDS 엔드포인트]는 어떻게 찾아요?
DB 인스턴스 클릭 > "연결 및 보안" 탭 > "엔드포이트 및 포트"에서 찾을 수 있다.
대충 my-rds.abcabc.ap-northeast-2.rds.amazonaws.com 이런 느낌의 엔드포인트가 적혀있을 것이다.
셸에 "nslookup my-rds.abcabc.ap-northeast-2.rds.amazonaws.com" 라고 치면 된다.
그럼 아래처럼 출력이 될 것이다.
여기서 제일 아래에 표시되는 주소를 확인하면 된다.
Server: x.x.x.x
Address: x.x.x.x#53
Non-authoritative answer:
Name: my-rds.abcabc.ap-northeast-2.rds.amazonaws.com
Address: 172.31.0.0 ←이거
5. 기타 IPv4 - 로드밸런서
위 VPC IP Address Manager 에서 아래와 같이 로드밸런서가 뜨는 분도 있을 것이다.
위는 필자의 다른 프로젝트인데, 사진에는 2개만 있지만 처음에는 4개가 떴다.
프로젝트에 SSL 적용을 위해 로드밸런서를 설정하면서 가용영역을 4개 선택했었는데, 여기서 선택한 각 영역에 IP가 자동할당 되면서 4개의 퍼블릭 IP가 사용되고 있던 것이었다.
가용영역은 최소 2개만 설정해줘도 되기 때문에 나머지 2개는 해제해 주기로 했다.
EC2 > 네트워크 인터페이스로 들어가 2개의 인터페이스에 대해 작업 > 주소연결 해제를 선택해준다.
이때! EC2 인스턴스가 사용하는 가용영역은 해제하면 접속이 막혀버리므로 해제하면 안 된다.
EC2 > 인스턴스 목록에 '가용영역' 칼럼을 확인해서 해당하는 인터페이스는 남겨준다.
그리고 이렇게 IP가 자동할당되는 일이 없도록 설정도 바꿔줄 것이다.
VPC > 서브넷으로 들어가서 서브넷을 선택한 뒤 작업 > 서브넷 설정 편집을 누른다.
자동 할당 IP 설정 탭에서> '퍼블릭 IPv4 주소 자동 할당 활성화'를 선택 해제 해준다.
이렇게 불필요한 비용을 없앴다!
AWS 알못이라 찾기 정말 어려웠는데 그래도 해결하니 뿌듯하다.
나같은 누군가에게 도움이 되길~!
'Cloud' 카테고리의 다른 글
Oracle Cloud 무료로 웹서버&DB 배포하기 (0) | 2024.07.31 |
---|---|
[총정리] AWS에 내 웹사이트 올리는 법 (2편) (0) | 2024.04.27 |
[총정리] AWS에 내 웹사이트 올리는 법 (1편) (0) | 2024.03.17 |
댓글