탄력적 IP 란 - 왜 사용하고, 어떻게 써야할까 ❓
📌 탄력적 IP를 사용하려는 이유
사이드 프로젝트 중 문자 전송을 위해 알리고 서비스를 사용하고 있습니다
여기서 문제는! 알리고 서비스 사용시 전송 가능한 서버IP 주소를 등록해야 정상적으로 전송이 가능하다는 것입니다.
로컬서버에서는 보통 고정된 IP 주소를 사용하지만 클라우드 환경에서는 다릅니다.
보통 가상 인터넷 서버 EC2(AWS 기준) 의 public IPv4 주소를 이용에 서버에 접속을 하는데, 이 Pulbic IPv4주소는 서버가 중지, 중단, 일시정지 등 얼마든지 유동적으로 변해버립니다.
👏🏻 따라서 알리고 서비스를 사용하기 위해서는 변하지 않는 고정 IP 주소 [EIP(Elastic IP Address)]가 필요했습니다.
📌 탄력적 IP란
AWS 에서 탄력적 IP란, 동적인 클라우드 컴퓨팅 시스템에서 고정된 정적인 IPv4 주소를 가지는 주소입니다.
탄력적 IP 주소의 특성 (참고용 → 과금 안되게 조심합시다)
- 탄력적 IP 주소는 정적이며 시간이 지남에 따라 변경되지 않습니다.
- 탄력적 IP 주소는 특정 리전에서만 사용할 수 있으며 다른 리전으로 이전할 수 없습니다.
- 탄력적 IP 주소를 사용하려면 먼저 계정에 주소를 할당한 후 인스턴스 또는 네트워크 인터페이스와 연결합니다.
- 탄력적 IP 주소를 인스턴스와 연결하면 해당 인스턴스의 기본 네트워크 인터페이스와도 연결됩니다. 탄력적 IP 주소를 인스턴스에 연결된 네트워크 인터페이스와 연결하면 해당 인스턴스와도 연결됩니다.
- 연결 해제한 탄력적 IP 주소는 명시적으로 릴리스할 때까지 계정에 할당되어 있습니다. 실행 중인 인스턴스와 연결되지 않은 탄력적 IP 주소에 대해서는 소액의 시간당 요금이 부과됩니다.
- 탄력적 IP 주소를 이전에 퍼블릭 IPv4 주소가 있던 인스턴스와 연결하면 인스턴스의 퍼블릭 DNS 호스트 이름이 탄력적 IP 주소에 맞게 변경됩니다.
- Amazon은 퍼블릭 DNS 호스트 이름을 인스턴스 네트워크 외부에서는 인스턴스의 퍼블릭 IPv4 주소 또는 탄력적 IP 주소로 변환하고, 인스턴스 네트워크 내부에서는 인스턴스의 프라이빗 IPv4 주소로 변환합니다.
- 탄력적 IP 주소는 특정 네트워크 경계 그룹에서만 사용할 수 있습니다.
📌 탄력적 IP 사용 하기
그러면 인제 탄력적 IP를 사용해 봅시다. 기존의 EC2에 탄력적 IP 를 생성하여 연결해보도록 하겠습니다.
1. EC2(Home) → 네트워크 및 보안 탭 → 탄력적 IP 창으로 들어갑니다.
2. 탄력적 IP 할당 or Allocate Elastic IP address 를 선택합니다.
3. 퍼블릭 IPv4 주소 풀에서 다음 중 하나를 선택합니다. (네트워크 경계 그룹은 region을 의미합니다 ap-northeast-2 는 서울 입니다)
- [Amazon의 IP 주소 풀(Amazon's pool of IPv4 addresses)]—IPv4 주소를 Amazon의 IPv4 주소 풀에서 할당하려는 경우.
- AWS 계정으로 가져오는 퍼블릭 IPv4 주소 - AWS 계정으로 가져온 IP 주소 풀에서 IPv4 주소를 할당하려는 경우. IP 주소 풀이 없는 경우에는 이 옵션을 사용할 수 없습니다.
- [고객 소유 IPv4 주소 풀(Customer owned pool of IPv4 addresses)] - AWS Outpost를 통해 사용할 온프레미스 네트워크에서 생성된 풀에서 IPv4 주소를 할당하려는 경우. AWS Outposts가 없는 경우 이 옵션이 비활성화됩니다.
4. 생성된 정적 IP 주소에 기존 EC2의 동적 IP 주소를 연결합니다
5. 연결하고자하는 EC2의 프라이빗 IP 주소로 연결합니다.
6. ec2 로 돌아가 확인해보면 탄력적 IP 주소가 잘 할당되었음을 확인해 볼 수 있습니다.
7. 👏🏻 AWS DNS 서비스인 route53을 사용하고 있다면, 레코드의 IPv4 주소도 탄력적 IP주소로 바꿔줘야 합니다.
그리고 알리고 서버에 IP 주소에 주면 끝!
8. 마지막으로 과금을 방지하기위해 탄력적 IP를 삭제하는 법
- 탄력적 IP는 기본적으로 free 지만 효율적인 운영을 위해 연결된 ec2 가 없거나 실행중이면 아니면 시간당 요금이 나간다고 합니다.
* 참고