devops

AWS 네트워크 구성 VPC, 서브넷 기본 및 연결 옵션 간단 정리 본문

DevOps/AWS

AWS 네트워크 구성 VPC, 서브넷 기본 및 연결 옵션 간단 정리

vata500 2022. 7. 1. 21:30
반응형

VPC

VPC 출시 전에는 AWS 고객들이 생성하는 인스턴스의 가상 네트워크는 제각기였다. 그러나 VPC 출시가 되어서야 고객이 직접 본인이 원하는 계정 별 네트워크인 VPC를 만들고 관리할 수 있게되었다고 한다. 

*이전에 VPC가 없던 환경을 EC2 Classic이라고 함.

서울 리전에 AZ가 2개가 있는데, 각 AZ에 subnet을 둘 수 있다.

서브넷은 IP가 중복되어선 안된다. 오버랩핑을 피해야하기 때문.

AWS에서 권하는 서브넷 설정

  • /16 VPC (64K addresses)
  • /24 subnets (251 addresses)
  • One subnet per Availability Zone

Routing in your VPC

  • 라우트 테이블(Route table)은 패킷이 이동하는 규칙을 포함한다.
  • VPC에 기본 Route table이 존재
  • 하지만 서브넷에 다른 Route table을 할당할 수 있다.

사용할 IP 주소, target이 local인 이유는 내 VPC로 라우팅하라는 의미다.
인터넷 게이트웨이는 외부 인터넷과 연결하는 역할을 한다.

  • 인터넷 게이트웨이는 VPC와 연결되어 외부 인터넷과 연결시켜주는 역할을 한다.
  • 그림 2의 아래 0.0.0.0/0의 목적지가 의미하는 것은 VPC로 향하지않는 모든 것은 인터넷으로 보내라는 의미

  • AWS 기본적으로 허용전에는 모두 불허하는 정책을 가지고 있다.
  • 방화벽 허용 설정없인 외부에서 접속할 수 없다.
  • AWS가 제공하는 방화벽 서비스는 크게 2가지로, 하나는 Netwrok ACL(서브넷 단위로 적용)
  • NACL은 Stateless로 동작한다.

좌 : 그림 1(웹서버) 우 : 그림 2(백엔드)

  • 보안그룹은 Statefull이다.
  • 웹서버는 모든 인터넷 접근을 허용하지만 백엔드는 다이렉트 접속을 제한한다면 보안그룹을 사용한다.
  • 백엔드의 접근은 웹서버만 허용하고 싶다면 위처럼 설정한다.
  • 그림 1은 0.0.0.0/0 설정으로 모든 인터넷 접근을 허용한다.
  • 백엔드는 TCP 2345 포트를 쓰며, source는 sg-82ba7ee6만 허용한다. 즉, 웹서버의 보안그룹만 설정한다.
  • 쉽게 말해서 일일이 IP를 설정하지않고도 그룹을 기준으로 접근 허용이 가능하다.
  • statefull 방화벽은 들어올 때의 채널을 기억하기 때문에, 패킷이 나가는 것도 허용한다. -> 보안그룹
  • stateless는 들어올 때 허용을 하더라도 나가는 것 또한 일일이 허용해야한다. -> Network ACL

보안그룹(Security) 체크 포인트

  • 최소 권한 원칙 준수
  • VPC는 egress/ingress에 대한 Security Group 생성 가능

VPC 연결 옵션

우측 위에 아이콘은 인터넷 게이트웨이다. 위 서브넷만 연결되어 인터넷과 통신이 된다.
NAT Gateway는 프라이빗 서브넷과 연결하여 통신하게 해준다.
Target을 Nat Gateway로 설정하면 된다.

VPC 간 연결: VPC Peering

  • 게임마다 개별 VPC로 운영하지만 인증, 모니터링, 로깅 등의 서비스는 한곳에서만 처리해야한다.
  • VPC 연결할 때는 신청과 승인 작업이 필요하다. (account가 다를 수 있다)
  • 피어링을 위해서 먼저 피어링 신청, 승인 마지막 경로생성(PCX)을 해야한다.
  • 영상이 나오는 시점에선 트랜지 VPC는 지원안함 (VPC C와 VPC A는 통신이 가능하지만 C와 D는 안됨)
  • 굳이 피어링하고 싶다면 C, D와 연결하면 된다. 그러나 모두 연결하기 위해선 피어링 게이트웨이가 아주 많아질 수 밖에 없다.

회사 네트워크에 연결: Virtual Private Network(VPN) & Direct Connect(DX)

  • 온프레미스 네트워크를 VPC로 확장하는 개념, 하이브리드라고도 함
  • VPN으로 연결하기 위해서 로컬 네트워크에 Customer Gateway를 설치하여 VPC의 Virtual Gateway와 연결한다.

  • VPC를 제대로 만들어야 원하는 네트워크 구성이 가능하다.
  • S3는 VPC안에 있지않다. S3는 인터넷이 연결된 곳이면 누구나 액세스할 수 있는 서비스다.

VPC 내부의 서비스가 S3와 통신하기 위해서는 중간에 게이트웨이(인터넷과 연결된)를 꼭 거쳐야한다.

S3는 인터넷을 통해서만 접근할 수 있기 때문.

S3는 IP가 고정되어 있지않다. 그러나 아래와 같이 VPC endpoint를 통해서 private하게 사용할 수 있다.

  • IAM과 버킷 정책을 통해서 특정 S3 Bucket 액세스만 허용할 수 있다.
  • S3 또한, 인터넷 요청을 차단하고 어플리케이션에서 오는 접근만 허용할 수 있다.

 

 

https://www.youtube.com/watch?time_continue=740&v=R1UWYQYTPKo&feature=emb_logo 

 

반응형

'DevOps > AWS' 카테고리의 다른 글

시스템을 고성능으로 만드는 방법 - DB  (0) 2022.07.20
AWS EC2, VSCODE로 접속하기  (0) 2022.07.04
IaC(Infrastructure as Code)  (0) 2022.06.24
AWS Lambda & API Gateway  (0) 2022.06.21
CQRS(Comman Query Responsibility Segregation)  (0) 2022.06.20
Comments