일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- spring
- gradle
- Docker
- 리눅스
- nginx
- grpc
- jenkins github
- 리액트
- CI/CD
- jpa
- MySQL
- IntelliJ
- grafana
- jenkins github 연동
- jenkins jdk
- subnetmask
- jenkins 설치
- vue.js
- Linux
- REACT
- Spring Boot
- jenkins maven
- java
- MongoDB
- jenkins install
- error
- Jenkins
- Jenkins Pipeline
- docker network
- JavaScript
- Today
- Total
뭐든 즐기면서 ;)
AWS ENI(AWS Elastic Network Interface) 본문
ENI(Elastic Network Interface)
VPC에서 가상 네트워크 카드를 나타내는 논리적인 네트워킹 구성 요소, EC2의 가상 랜카드이다.
ENI 기능 및 특징
- 서브넷에 연결
- ENI 하나에 한 개 또는 복수의 Private IP와 오직 하나의 Public IP를 가질 수 있음.
Public IP는 없어도 됨.(Private Subnet에 연결되는 ENI일 경우 Public IP가 필요 없겠쬬?)- 인스턴스 사양마다 연결 가능한 ENI 개수가 정해져 있음(AWS 사이트 인스턴스 사양 부분 참고)
- MAC Address를 가짐(인터페이스 '세부 정보'에서 확인 가능)
- 모든 인스턴스는 기본적으로 Primary ENI가 하나 있어야 함(아래 이미지 참고, 인스턴스 생성 후 기본적으로 하나가 있음)
- 인스턴스 생성 시 자동 생성됨
- Primary ENI는 인스턴스에서 제거할 수 없음
- Primary ENI는 하나의 서브넷에만 연결됨. 이는 인스턴스 생성 시 어느 서브넷에 연결할 건지 지정하는 이유이기도 함
3
여기부터는 심화
- 단, 기본 ENI말고 새로 생성한 ENI의 경우, EC2와 같은 AZ이면 다른 서브넷에도 연결 가능 ( 아래 4-2 그림 참고 )
- Security Group이 인스턴스 단위에 적용된다고 알고 있었지만, 사실은 ENI 단위에 적용되는 것임
- Elastic IP (아래에서 상세 설명)
- ENI Switching
- Source/Destination Check 기능 (아래에서 상세 설명)
AWS에서의 ENI 위치와 잘못 알고 있던 인스턴스 위치
우리가 ENI를 배우기 전은 인스턴스의 위치가 Subnet 안에 위치한다고 생각하지만, 그는 사실 틀린 것이다.
사실 인스턴스는 서브넷 내부가 아닌 AZ에 위치해 있으며, 외부로부터의 트래픽이 ENI를 통해 들어오고, 해당 ENI에 연결되어 있는 인스턴스가 최종 목적지인 것이다.
아래 이미지는, 위에 ENI 기능 및 특징에서 언급한, 인스턴스가 존재하는 AZ가 아닌, 다른 AZ의 ENI와 연결이 불가능하다는 것을 보여주는 이미지이다.
ENI와 Public IP
아래 그림을 보면, 1.235.33.45 IP로 트래픽 요청이 오면 Table을 참조하여 Public IP '1.235.33.45'에 대응되는 Private IP '172.31.16.17' ENI로 통신이 가고, Web Instance 최종 트래픽 처리를 하게 된다.
위 상태에서 Web Instance가 중지되면 아래와 같이 Table에서 해당 레코드가 없어지게 된다. (아래 이미지)
그리고 재시작을 하게 되면, Public IP는 다른 번호로, Private IP는 그대로 레코드가 다시 생성된다.
실습 확인
실행 중 Public IP 확인
중지 후 Public IP 확인
위 그림을 보면 Public IP가 없어진 것이 확인된다. 그리고 다시 재실행 후 Public IP를 확인해 보자. 중지 전 IP와 재실행 후 IP가 다른 것을 확인할 수 있다. 그리고 Private IP는 그대로인 것도 확인된다.
Elastic IP
고정된 Public IP에 변화되는(탄력적인) Private IP를 할당해줄 수 있다.
아래 그림처럼 테이블에 고정된 Public IP가 있고, Private IP(연결된 ENI IP)만 바뀌게 되는 것이다.
ENI Switching
Public IP에 연결된 Private IP을 변경하는 개념
Elastic IP 기능은 아래와 같은 상황에서 아주 유용하게 쓰인다.
Public IP 32.172.3.44에는 구 버전의 ENI(인스턴스)가 연결되어 있는데, 이를 빠르고 간단하게 신규 버전의 인스턴스로 간단히 연결을 해줄 수 있다.
실습
* 아래, 'study-ENI'가 아니라 'study-elasticIP'로 변경함;;
우리는 아까 'ENI와 Public IP' 대목에서 인스턴스 재시작을 할 때 Public IP가 바뀐 것을 확인했었다.( 이미지 5-4~5-7 )
Elastic IP 설정 후에는 어떻게 달라졌는지 확인해 보자.
재시작 후에도 Public IP는 그대로이다.
이 상태에서 Private IP(즉, 인스턴스)를 변경하려면, 아래와 같이 하면 된다.
ENI 관리 창으로 간다.
Source/Destination Check
트래픽 발생지가 본인일 때, 트래픽 목적지가 자신이 아닐 때의 트래픽은 무시하도록 하는 기능
- 설정에 따라 해당 기능 해제 가능.
- 바로 NAT Instance가 이 기능을 해제해야 하는 경우에 속한다.
NAT Instance의 경우 자신을 위한 트래픽이 아닌 중계 역할을 하는 것이므로, 해당 기능 해제를 해야 한다.
(아래 이미지 참고)
- 바로 NAT Instance가 이 기능을 해제해야 하는 경우에 속한다.
실습
참고 영상
'서버 > AWS' 카테고리의 다른 글
AWS API Gateway (0) | 2024.03.16 |
---|---|
AWS VPC Peering (1) | 2024.02.18 |
AWS VPC Endpoint (0) | 2024.02.15 |
AWS IGW(Internet Gateway) / AWS Routing table (0) | 2024.02.14 |
AWS VPC (0) | 2024.02.02 |