[AWS] Elastic Network Interface (ENI) 본문
Elastic Network Interface
탄련적 네트워크 인터페이스는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소다. EC2의 IP주소와 Mac 주소를 보유하고 있다.
EC2는 반드시 하나 이상의 ENI가 연결되어 있으며, EC2 최초 생성시 Primary ENI가 생성되어 연결된다. 사용자의 필요에 따라 한 개의 EC2에 여러 개의 ENI를 연결시킬 수 있다. 추가된 ENI의 경우 EC2와 동일한 가용영역이라면 다른 서브넷에도 설정이 가능하다.
하나의 ENI에 Private IP와 하나의 Public IP로 구성되어 있는데, Public IP의 경우 사용자의 선택에 따라 설정하지 않을 수도 있다. 또한 필요에 따라서 한 개 이상의 Private IP를 부여할 수 있다.
실질적으로 EC2의 서브넷 위치, 보안그룹 등 외부와 관련된 연결은 ENI 단위에서 결정된다. 사용자 입장에서는 서브넷 내부에 EC2를 위치시킨다고 생각할수도 있지만, 사실 EC2는 가용영역 단위에 존재하며 해당 EC2에 연결된 Primary ENI가 서브넷에 위치하는 것이다.
EC2 자체가 가용영역 단위이기 때문에, 동일한 가용영역에 위치한 서브넷에는 ENI를 여러개 연결할 수 있지만, 다른 가용영역은 불가능하다.
ENI & Security Group
보안그룹 적용은 ENI 단위기 때문에 하나의 EC2 인스턴스에 다양한 보안그룹으로 구성된 경로를 적용할 수 있다.
예를 들어 서브넷 A에서는 80번 포트만 허용하여 고객으로 하여금 웹서버를 통해 접근이 가능하도록 할 수 있고 서브넷 B에서는 22번 포트만 허용하여 SSH 연결로 인스턴스를 관리할 수 있도록 설정이 가능하다는 것이다.
참고로 NACL의 경우 서브넷 단위이기 때문에 보안그룹과는 상이하다.
EC2의 Public IP
EC2의 Public IP는 ENI가 아닌 Public IP와 Private IP를 중계하는 가상의 라우팅 테이블을 통해 관리된다. 예를 들어 특정 Public IP로 요청이 들어왔을 때 가상 라우팅 테이블을 통해 매핑되어 있는 Private IP 주소의 ENI로 요청을 전달하는 것이다.
해당 Public IP, Private IP 매핑 레코드는 Elastic IP를 사용해 고정하지 않는 이상 영구적인 레코드가 아니다. 이 때문에 EC2 중지 혹은 재부팅 시 Public IP가 변경되는 반면, Private IP는 변경되지 않는 것이다.
인터넷에서 Public IP로 요청이 전달되면 IGW가 해당 라우팅 테이블을 통해 Private IP로 변환 후 전달한다. 이 때문에 EC2 인스턴스의 OS에서는 할당된 Public IP를 절대 알 수 없다.
EC2 생성 시점에 만들어지는 Primary ENI가 아닌 별도의 ENI에 Public IP를 부여하기 위해서는 Elastic IP가 필요하다.
Source / Destination Check
ENI는 기본적으로 자신이 발생시켰거나, 대상이 아닌 트래픽은 무시한다. 단, 설정에 따라서 해제가 가능하다.
NAT 인스턴스 등 자신을 위한 트래픽이 아닌 다른 대상에게 중계해주는 경우 해당 설정을 해제할 필요가 있다.
'Public Cloud' 카테고리의 다른 글
[AWS] Elastic Block Storage (EBS) (0) | 2024.07.16 |
---|---|
[AWS] Slack을 사용해서 EC2 인스턴스 조작하기 (1) | 2024.07.15 |
[AWS] Elastic Load Balancer (0) | 2024.07.11 |
Jenkins 에서 빌드한 Jar 파일 EC2 Instance 에 배포해서 실행시키기 (0) | 2024.02.22 |
AWS EC2 프리티어 환경에서 Jenkins 실행시키기 (0) | 2024.02.21 |