• ENI (Elastic Network Interface)
    • Elastic Network Interface 란 인스턴스가 AWS 서비스 등 다른 네트워크 리소스와 통신 할 수 있도록 한다.
    • SSH, RDP(Remote Desktop Protocol) 등을 이용해 인스턴스에서 실행되는 OS와도 통신 가능.
    • 물리적 서버의 네트워크 인터페이스와 같은 기능을 제공한다.
    • 모든 인스턴스는 ENI를 가져야 하며, 이 인터페이스는 하나의 서브넷에만 연결 된다.
    • 각 인스턴스는 기본 프라이빗 IP 주소를 지니며, 인스턴스의 기본 ENI와 연결된다, 삭제 변경 불가능
    • 각 인스턴스에 기본 프라이빗 IP 주소 외에 보조 프라이빗 IP를 할당하여 사용 가능하며, 보조 프라이빗 IP 주소는 기본 ENI와 연결된 서브넷 범위 내에 있어야 한다.
    • ENI 는 인스턴스와 독립적으로 존재할 수 있으며, ENI를 생성한 뒤 인스턴스에 부착할 수 있다.
    • ‘종료 시 삭제’ 속성을 비활성화 하면 인스턴스 삭제 후에도 ENI가 삭제되지 않는다.

  • Elastic IP (탄력적 IP 주소, EIP)
    • 사용자의 요청에 따라 AWS 가 사용자의 계정에 할당하는 퍼블릭 IP 주소
    • EIP를 처음 생성하면 인스턴스와 연결되지 않은 상태이므로 (독립적), 직접 ENI와 연결후 ENI를 인스턴스와 연결하여 사용하여야 한다.
    • EIP를 ENI와 연결한 뒤에는 ENI를 삭제하거나 EIP를 해제하지 않는 한 연결이 지속
    • EIP는 리전 단위로 제공된다.
    • EIP를 AWS 계정이 보유한 퍼블릭 주소로 전달 가능하다. (BYOIP - Bring your own IP address 라 부르며 리전당 최대 다섯개의 주소목록을 가져올 수 있다.)


  • ENI 확인 예시
    • eth0 는 기본(Default) 인터페이스로 인스턴스 생성 시 자동으로 생성되며 제거되지 않음
    • 인스턴스 유형 별 최대 네트워크 인터페이스 수와 프라이빗 IPv4, IPv6 주소 수 제한
    • 아래 리눅스 / 윈도우 인스턴스 두개 인터페이스 확인 명령(GET-EC2NetworkInterface) 예시


      • Association: Public IP에 대한 정보, EIP 지정 시 EIP정보가 포함
      • Attachment: ENI 연결 정보
      • AvailabilityZone: ENI가 소속된 AZ
      • Description: 설명
      • Groups: ENI가 설정된 Security Group
      • MacAddress: ENI의 MAC 주소
      • NetworkInterfaceId: ENI ID입니다.
      • OwnerId: ENI를 생성한 사용자 ID
      • PrivateDnsName: 내부 DNS Name
      • PrivateIpAddress: 내부 IP 주소
      • PrivateIpAddresses: 내부 IP 주소에 대한 정보, 하나의 ENI에 여러 개의 IP를 삽입할 시 확인 필요
      • RequesterId: ENI를 관리하는 AWS 서비스 ID
      • RequesterManaged: ENI를 관리하는 AWS 서비스가 있는 지에 대한 정보
      • SourceDestCheck: In/Out traffic 확인 여부
      • Status: ENI 상태입니다. In-use는 현재 Instance에 attach되어있다는 의미
      • SubnetId: ENI가 소속된 Subnet ID
      • TagSet: 태그
      • VpcId: ENI가 소속된 VPC ID


  • SKBS AWS 아키텍처 예상

EC2 내부에서 외부 인터넷 접속 가능 ( test > curl -v http://naver.com )
-> 위 아키텍처에 Internet Gateway가 추가되어있는 듯 함 (아래 그림과 같이)


EC2 인스턴스 A-BD-APIGW-WAS1 , 2, 3 이 있는 서브넷 내부
Subnet 내부에는 보안그룹(방화벽) 정책이 적용되어 있고,

Public IP (EIP)를 확인 불가능 -> 할당되어 있지 않을 것으로 예상
-> 프라이빗, 퍼블릭 서브넷으로 나누고, 퍼블릭 서브넷 내부에 NAT Gateway가 있을 것으로 예상 된다

(좋은 그림이 없어.. 일단 첨부, 그림에서 수정되어야 함)

Internet Gateway -> NAT Gateway -> Security Group -> EC2 순서로 구성되어 있는 듯 하며,
Security Group (보안그룹, 방화벽)이 Primary ENI(eth0) 이 EC2와 연결 되어 있는 듯 하다.

방화벽 정책을 봐야 알겠지만
Private IP 가 NAT Gateway와 연결되어 있기에
Private IP (eth0) 의 정책만 기본 정책으로 적용 되어 있을 가능성이 있다.

-> lo (Loopback 주소) 네트워크 인터페이스는 보안그룹 (방화벽) 정책에 적용되어 있지 않아 Localhost와 127.0.0.1, ::1 과 같은 주소로 호출하였을 때 Connection Refused가 발생 (방화벽 문제)

-> webMethods 설치 (SoftwareAGInstaller.....bin) 파일에서 Hostname과 IP Address가 기본적으로 네트워크 인터페이스의 Private DNS Name을 출력하도록 설정 되어있을 가능성이 있다. 그럴경우 Private DNS Name은 위와 마찬가지로 호출이 안되 API Gateway, Developer Portal 설치 시 Elasticsearch와의 연결에서 문제가 생길 가능성이 있다.