본문 바로가기

IT/Backend , 네트워크

[aws] networking #3

ENI

elastic network interface. 가상의 네트워크 카드라고 생각하면 된다.

 

 

ENI Attribute

  • primary 프라이빗 IPv4, 하나 이상의 secondary IPv4
  • 프라이빗 아이피당 하나의 Elastic IP (IPv4) 할당 가능
  • 하나의 퍼블릭 IPv4
  • 하나 이상의 security groups (하나의 EC2 에 여러 ENI 에 따른 해당 security group일 수 있다)
  • MAC 주소

 

  • ENI를 독립적으로 만들고 EC2에 붙일 수 있다. (failover 를 위해)
  • AZ 에 종속된다

예)

EC2 a

    Eth0 - primary ENI

        192.168.0.xx

    Eth1 - secondary ENI

        192.168.0.yy

EC2 b

    Eth0 - primary ENI

    Eth1 - 위 EC2 a 의 Eth1 이 옮겨올 수 있다 (secondary 만 가능)

 

참고로, 이 방식이 많은 AWS Managed Service 들이 마치 자신의 VPC 에 들어와 있는 것처럼 동작하는 기술적인 방식이다.

primary 는 AWS 쪽으로, secondary 는 자신의 VPC 에 포함 되어 있는것.

 

ENI 유스케이스

Dual Home 인스턴스

일반적으로 EC2 Instance 는 하나의 Subnet 에 종속되어야 한다고 생각하기 쉽다.

그러나 두 개의 ENI 를 통해 Public Subnet 과 Priviate Subnet 에 걸쳐서 쓸 수 있다.

예를들면 80 Port 를 통해 public 으로 접근 가능하게 하고 22 Port 를 통해 Private 작업을 할 수 있다.

즉, 두 개의 ENI 를 통해 각각의 subnet 과 이에 설정된 라우트 테이블을 통해 각각의 보안 접근을 통제할 수 있는 아이디어이다.

 

고가용성 제공 - failover 

원래 연결되어있던 EC2 가 다운되었을 경우, 연결된 ENI attribute 들은 그대로 retain(유지한 채로)되고 다른 EC2 로 failover 하는 방법을 제공한다.

 

 

 

Firewall

VPC 에는 두 개의 방화벽이 있다.

  • Security group
  • NACL (network access control list)

Inbond traffic 은 우선 NACL 을 거쳐 -> Security Group을 거쳐 -> EC2 Instance 에 도달한다. (outbound 는 역순)

 

Security Group

  • Instance level (ENI) 트래픽이 EC2 에 어떻게 들어가고 나가는지에 대한 컨트롤을 한다.
  • statefulness - inbound 80 만 세팅하거나 outbound 80 만 세팅해도 됨. 허용만 존재하고 모든 룰을 먼저 평가함
  • 그러나 설정이 없다면 모든 인바운드는 기본적으로 막혀있다. 아웃바운드는 전체 허용되어 있는걸로 기본 세팅되어있다.
  • source 에 security group을 지정할 수 있다.
  • 멀티 instance 에 붙일 수 있다.
  • Region 과 VPC 조합에 걸려있다.
  • EC2 바깥에서 별개로 동작하는 구조임. 타임아웃으로 접근이 안되는 경우면 security group 문제, connection refused 면 application 문제(혹은 아직 running 상태가 아님)이다.

NACL

  • subnet level
  • stateless - 설정 안한건 동작 안함.  허용, 거부 룰이 있다. 기본으로 다 허용세팅. 위로부터 필요할때까지 순서대로 룰 확인
  • 주로 outbound 는 80이 아니고 ephemeral port 임시포트로 나간다. 그러므로 그렇게 세팅해줘야 함 (32768~65535)
  • 서브넷 레벨에서 특정 아이피 막는데 효과적