[AWS] EC2 : ENI & Elastic IP 설정을 통한 Public IP 고정시키기
이번 포스팅에서는 AWS EC2 인스턴스의 네트워크 연결을 위한 ENI에 대해 알아보고, 탄력적 IP를 사용하여 EC2 인스턴스의 IP를 고정시키는 작업을 해보려고 한다.
ENI (Elastic Network Interface)
우리의 노트북에는 인터넷이나 로컬 네트워크와의 연결을 위한 랜카드가 존재한다. 해당 랜카드의 MAC주소를 기반으로 네트워크를 식별하고, DHCP나 수동적으로 IP를 할당하여 네트워크 연결을 담당한다.
EC2도 마찬가지다. 특정 계정의 가상 네트워크 환경을 구성하는 VPC(Virtual Private Cloud) 와의 네트워크를 연동시키기 위해서 EC2에도 MAC 주소, Private / Public IP 주소가 할당되어야 한다.
ENI는 VPC에서 네트워크 연결을 위한 가상 네트워크 카드 역할을 하는 리소스이다. EC2 인스턴스나 다른 네트워크 지원 리소스에 연결되어 IP 주소와 네트워크 구성을 제공하기 위한 역할을 한다.
가상 네트워크 인터페이스의 역할을 한다는 것은 즉, EC2 인스턴스와의 느슨한 결합으로 유동적으로 할당하거나 해제할 수 있다는 것을 의미한다. 즉 복구 및 네트워크 분리 등의 작업이 가능하다.
구성 요소
주요 구성 요소 : Private IP, (Public IP), 보안 그룹, MAC Address
- VPC 내부망에서 사용되는 Private IP (Private DNS) 를 보유
- 선택적으로 Public IP (Public DNS) 를 보유할 수 있음.
- Elastic IP와 연결하여 고정된 Public IP를 보유할 수 있음.
- ENI에 보안 그룹을 할당하여 네트워크 트래픽을 제어할 수 있음.
- 인스턴스에 여러 개의 ENI 연동 가능 → 1개 이상의 IP 보유 가능
- 하나의 ENI는 항상 VPC 내부의 단일 서브넷에 연결된다.
탄력적 IP (Elastic IP)
Elastic IP는 AWS에서 제공하는 고정된 퍼블릭 IPv4 주소이다. 이것을 활용하여 클라우드 환경에서 서비스의 IP 주소를 고정시킬 수 있다.
1. Public IP를 고정시켜주는 역할
- Elastic IP는 ENI 와 연결되어, EC2 인스턴스를 비롯한 ENI를 사용하는 리소스에 고정된 퍼블릭 IP를 제공한다.
- 내부적으로는 Elastic IP는 인스턴스나 ENI 자체에 직접 연결하는 것이 아니라, 인스턴스나 ENI에 할당된 특정 프라이빗 IP에 연결된다.
2. 인스턴스를 중지 후 재시작 시 고정적인 IP 확보 가능
- 일반적으로 EC2 인스턴스를 중지 후 재시작하면, 퍼블릭 IP 주소가 변경된다.
- Elastic IP를 사용하면 인스턴스를 중지하거나 재시작하더라도 동일한 IP 주소로 접근할 수 있다.
3. 할당되는 Public IP 주소 범위
- 기본적으로 Elastic IP는 AWS가 보유한 IPv4 주소 풀에서 할당된다.
- BYOIP 기능 등을 통해 사용자가 소유한 IP 주소를 AWS 환경에서 활용 가능하다.
4. 리전 단위 → 해당 Elastic IP는 다른 리전에서 사용할 수 없음
- Elastic IP를 다른 리전에서 사용하려면 해당 리전에서 새로운 Elastic IP를 할당받아야 한다.
5. 연결하지 않고 보유하기만 해도 비용 발생 (IPv4 비용 발생)
- AWS는 Elastic IP를 과도하게 점유하지 않도록 하기 위해 인스턴스에 연결되지 않은 상태에서 보유 중인 Elastic IP에 대해 요금을 부과한다.
Elastic IP 주소를 EC2 인스턴스에 할당하기
1. 콘솔에서 VPC 대시보드 > 탄력적 IP 주소로 이동
2. 탄력적 IP 생성하기
Public IPv4 주소 풀 : 기본적으로 AWS의 주소 풀을 기반으로 탄력적 IP 주소가 할당되며, 소유한 IP 주소를 탄력적 IP 주소로 사용할 수 있는 BYOIP 등의 방식도 볼 수 있다.
네트워크 경계 그룹 설정 : 탄력적 IP를 할당할 AWS 리전을 선택한다. > 탄력적 IP는 리전 단위로 관리된다고 언급했었다.
글로벌 정적 IP 주소 : 여러 리전에 배포된 애플리케이션에 대해 단일 IP 주소를 사용하고 싶을 때 사용할 수 있다.
해당 포스팅에서는 위의 사진처럼 기본적인 AWS IPv4 주소 풀을 Elastic IP로 사용하여 단일 EC2 인스턴스에 할당하는 작업을 진행해 보겠다.
3. 탄력적 IP 주소 연결
이제 생성한 Elastic IP를 리소스에 연결해주는 작업을 거친다.
- 인스턴스에 연결 : Elastic IP는 직접 EC2 인스턴스에 연결할 수 있다.
- 네트워크 인터페이스에 연결 : EC2 등 리소스에 포함된 ENI (네트워크 인터페이스)에 연결하여 고정 IP 주소를 할당해 줄 수 있다.
- Private IP에 연결 : Elastic IP는 인스턴스나 ENI 자체에 직접 연결되는 것이 아니라 ENI에 할당된 특정 프라이빗 IP에 연결된다고 하였다. 따라서 직접 Private IP를 지정하여 탄력적 IP를 연결 가능하다.
재연결 옵션: 이미 연결된 탄력적 IP를 다른 리소스에 재연결할 수 있도록 허용하는 옵션
4. 할당된 탄력적 IP 주소 연결 해제와 릴리스
위의 사진은 EC2 인스턴스에 탄력적 IP 주소가 연결되어 있는 모습이다.
만약 다른 인스턴스에서 사용할 목적으로 Elastic IP의 할당을 현재 인스턴스에서 해제하거나, 더 이상 사용되지 않는 Elastic IP 없애고 싶을 경우에는 연결 해제 및 릴리스 과정을 거쳐야 한다.
연결 해제 : 해당 리소스와 Elastic IP의 연결을 해제한다. 즉 해당 리소스는 더이상 해당 고정 IP를 할당받지 않는다.
탄력적 IP 주소 릴리스 : Elastic IP를 제거한다. 더 이상 사용되지 않는 탄력적 IP의 경우 소유하고 있기만 해도 과금이 이루어지므로 제거하는 것이 필요하다.
References
'Cloud > AWS' 카테고리의 다른 글
[AWS] ELB : 개념 및 구성 요소 (+ EC2 Autoscaling X ALB 적용) (0) | 2025.01.15 |
---|---|
[AWS] Autoscaling : EC2 클러스터 구성 및 스케일링 정책 적용 (1) | 2025.01.14 |
[AWS] EC2 : 유저데이터와 메타데이터 (EC2 User Data & Meta Data) (0) | 2025.01.13 |
[AWS] EC2 : 주요 구성 요소와 인스턴스 생성 및 연결 방법 (0) | 2025.01.12 |
[AWS] IAM : 인증과 접근 방식 (장기 자격 증명 & 임시 자격 증명) (0) | 2025.01.11 |