이번에 프로젝트를 진행하면서 프론트엔드 파트와 원활한 기능 테스트를 하기 위해 ec2에 백엔드 서버를 일찍이 배포했다. 프로젝트 기간동안 ec2 비용이 어느정도 지원되기 때문에 부담없이 사용할 수 있다고 생각하고 있지만 그래도 한편으로는 비용이 과하게 나오면 어떻하지...? 라는 생각을 떨칠 수가 없었다.
그래서 ec2를 사용하지 않는 시간대에는 인스턴스를 꺼둘까..? 하는 소심한 생각을 해보았지만 이럴 경우 발생하는 문제는 인스턴스 재시작마다 퍼블릭IPv4 주소가 변경된다는 것이다.
내 걱정으로 서버를 꺼놓은 후 재시작 할 때 ip주소가 변경된다면 프론트 측에서 테스트를 하는데도 문제가 생기고 ec2 ip주소를 매번 공지해야하는 귀찮음이 발생할 것 같아 개발 과정에서 문제가 생길 것 같다고 생각했다.
그래서 방법을 알아본 결과 네트워크의 탄력적 IP 주소를 할당한 후 사용 중인 인스턴스와 연결시켜 IP를 고정시키기로 했다.
위 내용에서 다른 추가 설정은 필요 없이 내용 체크 후 할당 버튼을 클릭하면 된다.
할당이 완료되면 IPv4주소가 새로 생기게 된다. 이제 이 주소를 내가 사용 중인 인스턴스와 연결해보자
먼저 할당한 ip주소를 선택한 후 작업탭 -> [탄력적 ip 주소 연결] 을 클릭한다.
인스턴스와 프라이빗 IP 주소를 선택한 후 [연결] 버튼을 클릭해 할당받은 ip 주소와 인스턴스를 연결한다.
해당 탄력적 ip 주소를 다른 리소스에 재연결 할 지의 여부는 체크하지 않았는데 탄력적 ip 주소를 2개 이상의 리소스에 연결할 시 ip 사용 요금이 발생하고 이 외에도 요금 발생 관련 여러 조건이 있다.
ip주소를 인스턴스와 연결 후 인스턴스 세부 정보를 확인해보니 생성한 ip주소와 인스턴스가 연결된 것을 확인할 수 있다.
탄력적 ip 주소도 하나의 자원으로서 기본적으로 유료서비스(시간당 $0.005)이다. 하지만 아래의 조건을 충족하고 있음에 한해서 무료로 제공하고 있다.
**- 탄력적 IP 주소가 EC2 인스턴스와 연결되어 있다.
쉽게 말해 탄력적 IP 주소가 실행 중인 딱 1개의 인스턴스에만 연결되어있는 경우에는 무료이지만 2개 이상의 리소스에 연결되거나 연결된 인스턴스를 사용안하는 경우, 또는 어떤 인스턴스에도 연결되어있지 않은 경우(연결 해제) 시간당 요금이 부과가 된다.
인스턴스 중지 과정의 메세지에서도 탄력적 ip 주소 관련 리소스 요금은 계속 부과된다고 나와있다.
사용하지 않는 탄력적 ip 주소는 남겨둔다면 요금이 부과되니 깔끔하게 삭제해 요금 부과를 막아야 한다. 그럼 삭제 방법을 알아보자
먼저 사용하지 않는 ip를 체크한 후 작업 -> [탄력적 IP 주소 연결 해제]를 클릭해 인스턴스와의 연결을 해제한다.
다음으로 연결 해제된 ip를 선택해 작업 -> [탄력적 ip 주소 릴리스] 버튼을 클릭해 ip주소를 완전히 삭제해준다.
이 작업을 거치게 되면 선택한 ip 주소는 삭제되어 혹시 모를 추가 과금 위험을 회피할 수 있다.
해당 부분을 알게되면서 현재 프로젝트에서의 적용 방법을 생각해본 결과, 현재 프로젝트 초기 단계 이기도 하고 인프라 구성을 마치기 전까지는 작업 시간에는 ec2를 열어놓고, 자기 전에는 끄는 방식으로 사용하기로 했다. ec2 off 상태일 때 EIP로 인한 과금이 발생한다고 하더라도 현재 사용하는 인스턴스(t2.small)의 1/4 가격이기도 하고 aws 비용을 일부 지원받기 때문에 굳이 EIP를 사용하지 않을 이유도 없다고 생각했다.