토폴로지로 이해하는 Amazon 3부 - 1

minseok·2023년 9월 30일
0
post-thumbnail

퍼블릿 IP와 인터넷 라우팅

어느 한 IP가 public, private 중 어떤 성격을 띠는지는 ISP(Internet Service Provider)가 결정한다.

ISP가 내린 의사 결정이 목적지 IP 소유자의 목적과 부합하는 경우 그 IP를 퍼블릭 IP라 볼 수 있다.

국내 ISP : KT, SKT, LG U+

인터넷망은 이 ISP들이 구축한 여러 통신 장비가 상호 연결돼 형성된 것
인터넷망에 존재하는 라우터 등의 통신 장비는 호스트가 전달한 패킷의 목적지를 분석해 나아갈 방향을 결정한다.

프라이빗 IP와 VPC CIDR 선정

AWS 콘솔은 54.239.30.25이고 어딘가의 특정 사설 네트워크 서버(CIDR : 54.239.0.0/16)에도 54.239.30.25가 할당되었다고 가정한다.

불특정 인터넷 사용자가 54.239.30.25에 접속하면 AWS 콘솔에 접속되지만
54.239.0.0/16 네트워크 사용자는 사설 네트워크 서버의 54.239.30.25에 접근한다.


그러면 만약 54.239.30.25/16 네트워크 내부 사용자가 외부의 AWS 콘솔에 접근하고 싶다면?

네트워크는 사용자가 둘 중 어디로 접근하고 싶은지 알 수 없다.
이같은 네트워크 IP 충돌을 최소화하려면 사내 네트워크나 VPC CIDR은 고심해서 결정해야 한다. (국가별 사용 IP 범위를 파악해 가급적 통신 빈도가 낮은 해외 IP를 CIDR로 채택하자)



트래픽의 시작 :IP 주소

트래픽을 전달하려면 통신 경로상의 모든 네트워크 디바이스가 목적지 IP를 명확히 인식할 수 있어야 함



IP 유형

IPv4는 물리적 32비트 숫자와 유형으로 구성
유형은 다시 [공인,비공인] 중 하나와 [고정, 변동] 중 하나로 형성

AWS

  • 공인 = public
  • 비공인 = private
  • 정적 = static
  • 동적 = dynamic

[정적/동적] + [공인/비공인] 조합으로 총 4가지가 나온다.



IP가 주기적으로 변경되면 서비스를 제공할 도메인과 IP매핑을 위한 DNS 설정이 어렵다. = 서비스용 IP는 주로 정적IP사용

IP는 네트워크 인터페이스에서 설정한다.



Elastic IP는 정적 퍼블릭 IP로 리전종속된 네트워킹 리소스이다.
인스턴스, NAT 게이트웨이, 로드밸런서 등 인터넷 접속이 필요한 리소스에 연결해서 사용
단독으로는 아무것도 할 수 없음

탄련적 IP는 수명 주기 동안 프라이빗 IP에 연결 가능한 성질을 있다.
(NAT 게이트웨이, 로드밸런서에 탄력적 IP를 연결할 수 있는 이유는 이 리소스들이 네트워크 인터페이스를 장착하고 있기 때문)
(네트워크 인터페이스는 반드시 프라이빗 IP를 수반)

정리하면 탄련적 IP는 네트워크 인터페이스의 프라이빗IP에 연결된다.

Amazon IPv4의 주소 풀은 앞서 설명한 퍼블릭 IP의 모음,
사용자가 탄력적 IP 주소를 요청하면 AWS는 IPv4 주소 풀에 있는 IP 하나를 내 계정에 allocate (사용하지 않으면 주소 풀에 release)

자세한 내용은 아래 문서에서 확인할 수 있다.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html?icmpid=docs_ec2_console





탄력적 네트워크 인터페이스 ENI

  • ENI는 온프레미스 서버의 Network Interface Card와 대응되는 가상 장치
  • ENI는 인스턴스가 만들어 낸 트래픽을 네트워크로 전송하거나 수신
  • 물품 내용에는 관심이 없고 송수신 역할만 한다.
  • VPC 네트워킹은 반드시 ENI를 기반으로 함
  • ENI는 서브넷을 생성하므로 최소 1개의 프라이빗 IP를 소유 (기본 프라이빗 IPv4 주소)

모든 AWS 서비스가 VPC 네트워킹 환경을 이용하지는 않음 (S3)
ENI가 없는 서비스는 자체 보안 기능과 정책 권한으로 통제

ENI는 다양한 형태로 서비스에 연결돼 트래픽을 송수신
ENI 사용은 VPC 네트워킹을 의미, ENI에 연결된 모든 서비스는 반드시 VPC 네트워킹의 통제를 받음

ENI는 크게 2가지로 분류

  • 데이터 처리가 주 역할인 서비스 (컴퓨팅 ENI) (RDS, Lambda, EFS)
  • 트래픽 전송이 주 역할인 서비스 (라우팅 ENI) (NAT 게이트웨이, 전송 게이트웨이)

ENI 소스/대상 확인
ENI는 소스/대상 확인 속성이 존재, ENI가 패킷을 전송하고 수신할 때 출발지 IP와 목적지 IP를 검사할 것인지 선택하는 옵션

  • NAT 게이트웨이는 프라이빗 영역의 패킷을 퍼블릭으로 전달해야 하므로 프라이빗 IP와 퍼블릭 IP 모두 소유

ENI 입장에서
1. 출발지 IP와 제IP가 같을 때만 패킷을 보낼까요?
2. 목적지 IP와 제IP가 같을 때만 패킷을 받을까요?
라고 물어보는 것과 같음

서비스의 종류가 트래픽 전송(NAT Gateway...)인 경우 소스/대상 확인을 비활성화하고
데이터 처리(Lambda, RDS...)인 경우 활성화 시키도록 한다.

만약 인스턴스를 VPN Gateway로 활용하는 경우 소스/대상 확인 옵션을 끄도록 하자
그래야 전달된 트래픽을 NAT처럼 단순히 다른 네트워크로 전송할 수 있다.





이론 위주의 학습을 하니 머리에 잘 안들어오고
3부의 중간 까지의 학습을 토대로 실습을 해보기로 했다.

얻은 키워드는 Region, VPC, Subnet, 가용 영역, Elsatic IP, ENI, Nat Gateway 이다.
Elastic IP(탄력적 IP)는 allocate만으로 요금이 많이 발생하여 제외하겠다.

https://velog.io/@kma95278/AWS-서비스를-사용하여-서버-구축하기

profile
즐겁게 개발하기

0개의 댓글