aws 네트워킹

박진은·2023년 7월 29일
0

aws

목록 보기
3/3

CIDR:Classless Inter-Domain Routing(CIDR)은 인터넷상의 데이터 라우팅 효율성을 향상시키는 IP 주소 할당 방법입니다.

서브넷 마스크를 이용해서 서브넷으로 가는 패킷을 구분하기 위해서 주로 사용함.

관용적인 private IP

Amazon Virtual Private Cloud

해당 사진을 보면 VPC 의 private IP = 172.31.0.0/16 앞의 16 비트는 고정인 샘이다 따라서 나머지 총 16 비트를 가지고 프라이빗 아이피를 구성할 수 있는 것이다.

내부의 서브넷 아이피를 보면 172.31.0.0/24, 172.31.2.0/24 로 볼수 있듯이 서로 패킷경로가 겹치지 않게 마스크를 VPC 내부의 아이피중에 서로 겹치지 않는 범위로 선택한것을 볼 수 있다.

주의사항은 하나의 서브넷이 하나의 AZ 에 설정해야한다.

Routing in your VPC

  • route table 은 패킷이 이동하는 규칙을 포함
  • vpc 에 기본 routetable 이 존재 하지만 서브넷에 다른 routable 을 할당할 수 있다.

    위의 라우팅 테이블에서 볼 수 있듯이 내부를 향하는 라우팅이 있어야 패킷이 vpc 내부로 향한다.


위의 태이블에서 볼 수 있듯이 외부로 패킷을 전송하기 위해서는 라우트 테이블에 인터넷 게이트 웨이로 향하는 주소가 명시되어야한다 위의 그림에서는 내부로 향하는 패킷을 제외하고는 모두 외부로 전송하도록 설정하고 있다.

Network ACLS: Stateless firewalls

  • stateless firewalls 로 전통적인 방화벽으로 vpc 의 패킷을 ip 혹은 패킷 단위로 통제가 가능하다. aws 에서는 기본적으로 acl 은 모두 허용하게 설정되어있어 특정 ip 의 접근을 차단하기 위해서는 해당하는 ip 와 port 를 직접 설정해야한다.

  • state

기본적으로 서브넷 단위로 설정이 가능하다 그림에서는 모든 트레픽을 허용하는 설정을 보여준다.

security groups

위의 그림에서 볼 수 있듯이 ACL 은 VPC 로 전송되는 패킷을 vpc 외부에서 통제했다면 security 그룹은 vpc 내부에 존재하면서 패킷을 인스턴스 단위로도 조절할 수 있게 만들어 준다. 위 그림에서는 웹서버를 담당하는 클라이언트 서버는 모든 트레픽을 열고 벡엔드를 담당하는 서버에서는 트레픽을 웹서버 소스만을 허용하게 설정한 그림이다.

-securitt group 은 기본적으로 모든 포트를 막는것을 동작한다 따라서 (acl 과는 반대) 일부 포트를 허용하기 위해 pulic 으로 전환하기 위해서는 반드기시 인바운드 허용규칙을 추가해야한다.

  • 인바운드 규칙 - vpc 내부로 전송되는 패킷에 대해서 허용을 추가하는 규칙
  • 아웃바운드 규칙 - vpc 에서 외부로 전송되는 패킷을 조절하기 위한 규칙으로 기본적으로 모두 허용되어있다.

security group 을 생성할 때는 필요한 권한만을 부여하는 최소권한 규칙을 준수해야한다. 또한

Nat gateway

기본적으로 NAT 는 다음과 같다.
이 이론? 방법? 기술? 의 탄생배경은 사실 부족한 ip address 때문이다. 쉽게 설명하면

Network address translation 이란

  • 하나의 ip 로 할당 받아서 내부의 usbnet 의 여러 host 들에게 공통으로 서비스를 하는 방식이다. 내부적으로는 ip 를 따로 주면서 외부로 나갈 때 할당된 하나의 ip를 사용한다.

위와 같은 장점이 있지만 단점으로는 internet 의 설계에 맞지 않는다. 기본적으로 host 를 public 아이피의 port 로 구분해서 내부의 private ip 로 할당하기 때문에 애플리케이션을 구분하기 위해서 사용하는 포트의 목적과는 맞지 않다.

aws 에서는 이를 private vpc 가 public vpc 를 터널링해 외부와 통신할 수 있도록 보안을 강화하면서도 외부와의 통신을 할 수 있는 용도로 사용한다. 위의 그림에서는 nat 로 일부 패킷을 라우팅하고 있는 것을 볼 수 있다. 이렇게 구현하게 되면 왼쪽에 있는 vpc 는 외부 접속을 차단하면서도 외부로 패킷을 전송할 수 있게 된다(오른쪽 public subnet을 통해서).

Bastion Host
앞서 NAT Gateway를 통해 private 서브넷도 외부 인터넷과 간접적으로 연결될수 있었다.

다만 NAT Gateway는 서브넷에서 외부로 나갈수는 있어도, 거꾸로 외부에서 private 서브넷으로 접속은 못한다.

만일 ssh로 외부에서 인스턴스에 접속해 조정할 일이 있다면, private 서브넷은 어떻게 접속해서 해야할까?

아예 외부에서 private 서브넷으로는 영영 접속을 못하는 것일까?

가능하게 해줄 수 있다.

바로 이러한 역할을 해주는게 Bastion Host이다

Bastion-Host
Bastion Host란 Public Subnet에 위치하며, Private Subnet과의 통신을 도와주는 대리인이라고 할 수 있다.

좀 더 전문적으로 표현하면 내부와 외부 네트워크 사이에서 일종의 게이트 역할을 수행하는 호스트이다.

관리자가 Bastion Host으로 SSH 연결을 한 후 Bastion Host에서 Private Subnet의 Host에 SSH 연결을 하는 형태로 Private Subnet에 접근할 수 있게 된다.

여기서 흔히들 착각하는게 있는데 Bastion Host는 인터넷 게이트웨이나 NAT 게이트웨이 같이 서비스를 만들어 등록하는 게 아니라, 그냥 private 서브넷에 연결되어 접속할수있는 public 서브넷을 그냥 Bastion Host라고 일컫는 것이다.Bastion Host
앞서 NAT Gateway를 통해 private 서브넷도 외부 인터넷과 간접적으로 연결될수 있었다.

다만 NAT Gateway는 서브넷에서 외부로 나갈수는 있어도, 거꾸로 외부에서 private 서브넷으로 접속은 못한다.

만일 ssh로 외부에서 인스턴스에 접속해 조정할 일이 있다면, private 서브넷은 어떻게 접속해서 해야할까?

아예 외부에서 private 서브넷으로는 영영 접속을 못하는 것일까?

가능하게 해줄 수 있다.

바로 이러한 역할을 해주는게 Bastion Host이다

Bastion-Host
Bastion Host란 Public Subnet에 위치하며, Private Subnet과의 통신을 도와주는 대리인이라고 할 수 있다.

좀 더 전문적으로 표현하면 내부와 외부 네트워크 사이에서 일종의 게이트 역할을 수행하는 호스트이다.

관리자가 Bastion Host으로 SSH 연결을 한 후 Bastion Host에서 Private Subnet의 Host에 SSH 연결을 하는 형태로 Private Subnet에 접근할 수 있게 된다.

여기서 흔히들 착각하는게 있는데 Bastion Host는 인터넷 게이트웨이나 NAT 게이트웨이 같이 서비스를 만들어 등록하는 게 아니라, 그냥 private 서브넷에 연결되어 접속할수있는 public 서브넷을 그냥 Bastion Host라고 일컫는 것이다.

profile
코딩

0개의 댓글