본문 바로가기

aws/EC2

ec2 - 네트워크 인터페이스 사용(network interface)

aws cloud 환경에서 여러개의 서버를 구축하는 작업을 하다가 보면 

programming을 하는 것과 같이 같은 작업을 하는 경우가 적지 않게 발생합니다. 

 

ec2 instance를 여러개 생성하여 docker swarm으로 network 환경을 구성한 프로젝트가 

있었습니다. docker swarm으로 통신을 테스트 하던 중에 network가 불안정하여 

docker의 container의 name으로 통신을 하지 않고 IP 주소를 명시하여 사용하였습니다. 

 

 

이때 구성하였던 network 환경은 위와 같습니다. 

 

test를 하기 위해 여러번 ec2 instance를 새로 생성하여 구성을 할 때 

instance의 ip 주소가 바뀌어 매번 수작업으로 host의 "/etc/hosts" 파일과 

docker-compose.yaml 파일의 "extra_hosts" 컬럼의 값을 바꿔주어야 했습니다. 

 

 

예를 들면 위와같이 "/etc/hosts"와 docker-compose.yaml의 "extra_hosts"에

서로 통신하는 docker의 host의 ip를 명시하여 사용하였습니다. 

 

이렇게 작업을 해주어야 했던 이유는 매번 ec2 instance를 생성할 때마다 ip 주소가 

바뀌기 때문인데 이렇게 반복되는 번거로운 적업을 없애기 위해 aws의 network interface라는 것을 알게 되었습니다. 

 

ec2 instance를 생성하기 전에 미리 network interface를 생성해 두어 ec2 instance에 적용하는 것입니다. 

network interface는 security group 처럼 설정을 생성해두어 원하는 ec2 instance에 적용할 수 있습니다. 

network interface는 다음과 같은 속성을 정의 해둘 수 있습니다. 

1. description : 설명

2. subnet : subnet을 설정할 수 있습니다. 

3. private ip : 사설 ip를 지정할 수 있습니다. 

4. Elastic Fabric Adapter : network latency를 줄이기 위해 적용할 수 있습니다. 

5. Security Group : network interface의 security group을 지정해줍니다. 

 

그럼 이제부터 network interface를 사용하여 ec2 instance를 생성해보겠습니다. 

 

 

aws console에서 ec2 대시보드로 이동하여 좌측에 "네트워크 인터페이스"를 클릭합니다. 

 

 

"네트워크 인터페이스 생성" 버튼을 클릭하여 이동합니다. 

 

 

1. description : 간단한 설명을 적어줍니다. 

2. subnet : 사용할 vpc안에 subnet을 지정해줍니다. 

3. IPv4 Private IP : Custom으로 지정해야 ip를 지정하여 사용할 수 있습니다. 

4. IPv4 address : 사용할 vpc의 subnet의 CIDR 블록 범위 내에서 ip를 지정해줍니다. 

5. Security Group : 사용할 보안 그룹을 지정해줍니다. 

이렇게 설정을 하면 network interface 생성이 완료됩니다. 

 

이제 생성한 network interface를 사용하여 ec2 instance를 생성해보겠습니다. 

 

ec2 instance를 생성하는 방법은 생략하겠습니다. 

ec2 - aws ec2 만들기(1)

 

ec2 instance를 만드는 과정에서 한가지만 지정해주면 ec2 instance에 

network interface를 지정해줄 수 있습니다. 

 

ec2 instance를 생성할 때 "인스턴스 구성" 탭에서 network interface를 지정해줄 수 있습니다. 

"인스턴스 구성" 탭에서 두가지를 유의하여 설정합니다. 

1. 네트워크 : network interface를 생성할 때 지정해준 subnet의 vpc를 설정해줍니다. 

2. 서브넷 : network interface를 생성할 때 지정해준 subnet으로 설정해줍니다. 

3. 네트워크 인터페이스 : 생성한 network interface를 지정해줍니다. 

 

위와같이 설정을 하고 ec2 instance를 생성하면 

 

 

그림과 같이 지정한 private ip가 적용되어있는 것을 볼 수 있습니다. 

 

이렇게 network interface를 사용하는 방법을 알아보았습니다.