네트워크 인터페이스 구성 모범 사례 - Amazon Elastic Compute Cloud

네트워크 인터페이스 구성 모범 사례

  • 실행 중 상태(핫 연결), 중지 상태(웜 연결) 또는 시작 중 상태(콜드 연결)의 인터페이스에 네트워크 인터페이스를 연결할 수 있습니다.

  • 인스턴스가 실행 중이거나 중지된 경우 보조 네트워크 인터페이스를 분리할 수 있습니다. 하지만 기본 네트워크 인터페이스는 분리할 수 없습니다.

  • 인스턴스가 동일한 가용 영역과 VPC에 있지만 서로 다른 서브넷에 있는 경우 보조 네트워크 인터페이스를 한 인스턴스에서 다른 인스턴스로 이동할 수 있습니다.

  • CLI, API 또는 SDK에서 인스턴스를 시작할 때 기본 네트워크 인터페이스 및 추가 네트워크 인터페이스를 지정할 수 있습니다.

  • 여러 네트워크 인터페이스를 포함하는 Amazon Linux 또는 Windows Server 인스턴스를 시작하면 인스턴스의 운영 체제에서 인터페이스, 프라이빗 IPv4 주소 및 라우팅 테이블이 자동으로 구성됩니다.

  • 추가 네트워크 인터페이스의 웜 또는 핫 연결을 사용하려면 수동으로 두 번째 인터페이스를 열고 프라이빗 IPv4 주소를 구성하고 그에 따라 라우팅 테이블을 수정해야 할 수 있습니다. Amazon Linux 또는 Windows Server를 실행하는 인스턴스는 웜 또는 핫 연결을 자동으로 인식하여 자체적으로 구성됩니다.

  • 이중 홈 인스턴스로 송/수신되는 네트워크 대역폭을 높이거나 두 배로 늘리기 위해 인스턴스에 다른 네트워크 인터페이스를 연결(예: NIC 팀 구성)할 수는 없습니다.

  • 동일한 서브넷에서 2개 이상의 네트워크 인터페이스를 인스턴스에 연결하면 비대칭 라우팅과 같은 네트워킹 문제가 발생할 수 있습니다. 가능한 한 기본 네트워크 인터페이스에서 보조 프라이빗 IPv4 주소를 대신 사용하세요.

  • Windows 인스턴스 - 여러 개의 네트워크 인터페이스를 사용하는 경우 정적 라우팅을 사용하도록 네트워크 인터페이스를 구성해야 합니다.

Amazon Linux 2의 ec2-net-utils를 사용하여 네트워크 인터페이스 구성

참고

AL2023의 경우 amazon-ec2-net-utils 패키지는 /run/systemd/network 디렉터리에 인터페이스별 구성을 생성합니다. 자세한 정보는 Amazon Linux 2023 사용 설명서네트워킹 서비스를 참조하세요.

Amazon Linux 2 AMI에는 AWS에 의해 설치된 ec2-net-utils라는 추가 스크립트가 포함되어 있을 수 있습니다. 이러한 스크립트는 네트워크 인터페이스의 구성을 선택적으로 구성합니다. 이 스크립트는 Amazon Linux 2 전용입니다.

아직 설치되어 있지 않으면 다음 명령을 사용하여 Amazon Linux 2에 패키지를 설치합니다. 설치되어 있고 추가 업데이트가 가능한 경우에는 업데이트합니다.

$ yum install ec2-net-utils

다음 구성 요소는 ec2-net-utils의 일부입니다.

udev 규칙(/etc/udev/rules.d)

실행 중인 인스턴스에 연결, 분리 또는 다시 연결될 때 네트워크 인터페이스를 식별하며 핫플러그 스크립트(53-ec2-network-interfaces.rules)가 실행되도록 합니다. MAC 주소를 드라이브 이름(75-persistent-net-generator.rules, 여기서 70-persistent-net.rules를 생성)에 매핑합니다.

핫플러그 스크립트

DHCP에서 사용하기에 적합한 인터페이스 구성 파일을 생성합니다(/etc/sysconfig/network-scripts/ifcfg-ethN). 또한 라우팅 구성 파일도 생성합니다(/etc/sysconfig/network-scripts/route-ethN).

DHCP 스크립트

네트워크 인터페이스에서 새 DHCP 임대를 수신할 때마다 이 스크립트는 인스턴스 메타데이터에 탄력적 IP 주소를 쿼리합니다. 각 탄력적 IP 주소마다 라우팅 정책 데이터베이스에 규칙을 추가하여 해당 주소의 아웃바운드 트래픽에 올바른 네트워크 인터페이스가 사용되도록 합니다. 또한 각 프라이빗 IP 주소를 네트워크 인터페이스에 부 주소로 추가합니다.

ec2ifup ethN (/usr/sbin/)

표준 ifup의 기능을 확장합니다. 이 스크립트는 구성 파일 ifcfg-ethNroute-ethN을 다시 쓴 후 ifup을 실행합니다.

ec2ifdown ethN (/usr/sbin/)

표준 ifdown의 기능을 확장합니다. 이 스크립트는 라우팅 정책 데이터베이스에서 네트워크 인터페이스 관련 규칙을 모두 제거한 후 ifdown을 실행합니다.

ec2ifscan (/usr/sbin/)

구성되지 않은 네트워크 인터페이스가 있는지 확인하고 이러한 인터페이스를 구성합니다.

이 스크립트는 ec2-net-utils의 초기 릴리스에서는 사용할 수 없습니다.

ec2-net-utils에서 생성된 구성 파일을 나열하려면 다음 명령을 사용합니다.

$ ls -l /etc/sysconfig/network-scripts/*-eth?

자동화를 비활성화하려는 경우 EC2SYNC=no를 해당 ifcfg-ethN 파일에 추가할 수 있습니다. 예를 들어, 다음 명령을 사용하여 eth1 인터페이스에 대한 자동화를 사용하지 않도록 설정합니다.

$ sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1

자동화를 완전히 사용하지 않으려면 다음 명령을 사용하여 패키지를 제거할 수 있습니다.

$ yum remove ec2-net-utils