EC2 인스턴스에는 Public IP, Private IP, Elastic IP 가 있다.
Public IP 말 그대로 공인 IP
Private IP 말 그대로 사설 IP
Elastic IP(EIP) 는 ? , Elastic IP 는 말그대로 탄력적 IP 이나 실제로 고정된 공인 IP의 역할을 수행한다.
우선 설명을 먼저 하면 Public IP 를 갖고 있는 EC2 인스턴스를 stop, start 할 경우 Public IP가 변동되는 것을 볼 수 있다. 그런데 서버의 공인 IP가 계속 변동된다면 안정적인 서비스를 제공하기 어렵다.
그래서 Elastic IP 를 사용하는데, Elastic IP 는 EC2 를 재시작하더라도 IP가 변경되지 않는다. (고정된다.)
EC2 인스턴스를 만들때 ADVANCED DETAIL > USER DATA 에 아래의 코드를 입력한다.
#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello Test $(hostname -f)</h1>" > /var/www/html/index.html
추후에 웹 서버에 접속하기 위함이다.

EC2 인스턴스를 생성하면 Public IP, Private IP는 있지만, Elastic IP는 없는 것을 볼 수 있다.

웹 서버에 접속해보면 접속이 되며

EC2 인스턴스를 instance state > stop 을 한다.

이렇게 stop 시켰다가 다시 start 를 한다. 그러면,

Public IPv4 address 의 주소가 변경되는 것을 볼 수 있다.

변경된 Public IPv4 주소로 접속도 가능하다.
그러면 stop, start 하더라도 Public IP를 고정시키기 위해 Elastic IP를 생성해야 한다.

Network & Security > Elastic IPs 에서 우측 상단의 allocate Elastic address
로 생성가능하다. EIP (Elastic IP) 생성 후 인스턴스 및 ENI 에 associate 시켜야 사용할 수 있다. (반대로 삭제 할때는 deassociate > release 순서대로 한다.)

위 설정으로 생성을 하면,

EIP 현황에서 확인 가능하며 actions > associate Elastic IP address 를 통해 인스턴스 또는 ENI (elastic network interface)에 연결 한다. 지금은 EC2 인스턴스에 연결할 것이다.

EC2 인스턴스 연결해야 하므로 instance 를 선택하고 아래의 instance 는 EC2 하나를 만들었으므로 클릭시 나오는 인스턴스를 선택, private ip도 하나이므로 바로 선택해준다.
그리고 우측 하단의 associate 클릭해서 EC2 인스턴스에 연결한다.

그 후 인스턴스로 돌아오면 생성한 EC2의 Elastic ip address 부분이 공란에서 할당된 ip로 바뀐 것을 볼 수 있다.

할당된 EIP 로 접속도 가능하다.


EC2 인스턴스를 stop , start 하더라도 EIP 는 변동하지 않고 고정되어 있음을 알 수 있다.

같은 ip로 접속 잘 된다.
이제 테스트틀 했으니 EIP를 삭제해야 한다. EIP 는 EC2 인스턴스에 연결되고 이 인스턴스가 실행중일 때는 따로 요금이 부과되지 않으나, 만약 인스턴스가 중지 되고 EIP 를 연결된 그대로 둔다면 비용이 청구 된다..
삭제 과정은 EIP deassociate > EIP release 순으로 진행한다.
(EIP 삭제 후 EC2 인스턴스를 삭제한다. 역으로의 삭제는 절대로 권장하지 않는다. 문제가 생길 수 있다.)


우선 위 과정을 거쳐 인스턴스 연결을 해제한 후


release EIP 를 통해 완전히 삭제한다.

EIP 목록에서 사라진 것을 볼 수 있다.

인스턴스에서 EIP가 없어지고 공란으로 된 것을 볼 수 있다.