EIP(Elastic IP)
EIP는 인터넷을 통해 접속할 수 있는 고정적인 공인 IP 주소를 할당할 수 있고, 인스턴스에 연결할 수 있는 서비스이다.
모든 인스턴스 또는 네트워크 인터페이스에 탄력적 IP 주소를 연결 가능하며, EIP 할당받고 삭제하기 전까지 쭉 같은 IP 주소를 유지할 수 있다.
DNS 서버에서 도메인과 IP 주소를 연결할 때, 또는 IP 주소가 바뀌지 않고 계속 유지돼야할 때 EIP를 할당받아 연결해주면 된다.
EIP를 사용해야하는 이유
EC2를 올리기 되면 ENI(Elastic Network Interface)가 따라오게 되는 ENI는 일종의 가상의 랜카드라고 생각하면된다. ENI는 가상이긴 하지만 랜카드이기에 MAC 주소와 보안 그룹에 연결돼있고 IP도 가지고 있다.
그리고 이 ENI를 EC2의 사이즈에 따라서 여러대를 달 수도 있다.
[참고] 네트워크 인터페이스의 개념
기본 네트워크 인터페이스
각 인스턴스는 기본 네트워크 인터페이스라는 기본 네크워크 인터페이스를 갖는다. 주 네트워크 인터페이스는 인스턴스에서 분리할 수 없다.
보조 네트워크 인터페이스
보조 네트워크 인터페이스를 생성하고 인스턴스에 연결할 수 있다. 최대 네트워크 인터페이스 수는 인스턴스 유형에 따라 달라진다.
네트워크 인터페이스용 IPv4 주소
EC2 인스턴스를 IPv4 전용 또는 이중 스택 서브넷에서 시작할 경우, 인스턴스는 서브넷의 IPv4 주소 범위에서 기본 프라이빗 IP 주소를 수신한다. 또한, 사용자는 보조 프라이빗 IPv4 주소라는 추가 프라이빗 IPv4 주소를 지정할 수 있다. 기본 프라이빗 IP 주소와는 달리, 보조 프라이빗 IP 주소는 한 인스턴스에서 다른 인스턴스로 재할당될 수 있다.
네트워크 인터페이스용 퍼블릭 IPv4 주소
모든 서브넷은 해당 서브넷에서 생성된(=인스턴스가 그 서브넷으로 시작된) 네트워크 인터페이스가 퍼블릿 IPv4 주소에 할당될 것인지 결정하는 수정 가능한 속성을 갖는다. 인스턴스를 시작하면 기본 네트워크 인터페이스에 IP 주소가 할당된다. 인스턴스를 시작할 때 기존 네트워크 인터페이스를 기본 네트워크 인터페이스로 지정하면 퍼블릭 IPv4 주소는 이 네트워크 인터페이스에 의해 결정된다.
네트워크 인터페이스를 생성할 때 네트워크 인터페이스는 서브넷에서 퍼블릭 IPv4 주소 지정 속성을 상속한다. 이후에 서브넷의 퍼블릿 IPv4 주소 지정 속성을 수정하면 네트워크 인터페이스는 처음 생성될 때 적용된 설정을 그대로 유지한다.
ENI(Elastic Network Interface)의 특성
- ENI는 IP주소와 MAC 주소를 가지고 있다.
- ENI 하나당 1개 이상의 Private IP 주소를 부여할 수 있다.
- (Optional) Public IP 주소를 부여가능하다.
- EC2는 반드시 하나 이상의 ENI와 연결돼있다. EC2를 생성하면 기본 ENI가 생성되어 연결되고, 하나의 EC2는 1개 이상의 ENI를 보유할 수 있다.
이 ENI에 퍼블릭 IP를 달면 외부에서 접속할 수 있게 된다.
하지만 이 ENI의 Public IP는 고정된 IP 주소가 아니라 유동적인 IP 주소이다.
EC2 인스턴스를 중지하고 새로 실행하면 기존에 할당 받은 IP 주소가 변경돼버린다.
이런 문제를 해결하고자, 한번 할당 받은 아이피를 계속 쓸 수 있게 하는 것이 Elastic IP이다.
EIP 설정하기
EIP 생성
EC2 대시보드로 가서 좌측 사이드바를 보면 네트워크 및 보안 > 탄력적 IP라는 메뉴가 있다.
해당 메뉴를 클릭해 들어가면 "탄력적 IP 주소 할당"이라는 버튼을 눌러서 EIP를 생성할 수 있다.
"할당" 버튼을 누르면 EIP가 생성된다.
EC2 또는 ENI에 EIP 연결하기
EIP를 생성했다면, EIP 대시보드에서 해당 EIP를 눌러 들어가면 아래와 같은 화면이 나온다.
우측 상단의 탄력적 IP 주소 연결을 눌러서 EIP와 EC2 또는 ENI를 연결할 수 있다.
Reference
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-eni.html#eni-basics
https://jibinary.tistory.com/133#google_vignette
'개념 공부 > Infra, CICD' 카테고리의 다른 글
[CI/CD] Jenkins란 무엇인가 (0) | 2024.05.04 |
---|