'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를
블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.
이미지를 클릭하고, 아래 쿠폰번호를 입력해 주세요!
16861-259843d6c2d7
VPC (Virtual Private Cloud)
- 가상 사설 네트워크 공간
- AWS의 서비스를 배치
- 배치할 서비스(EC2, RDS 등)에 IP주소를 부여해서 관리
- 외부 인터넷과 통신할 수 있는 공간과 외부로부터 단절된 공간으로 나눠서 관리
- 이런 특징들과 여러가지 VPC의 구성요소들을 활용해서 보안 강화
VPC 주요 구성요소
- 서브넷
- 인터넷 게이트웨이
- NAT 게이트웨이
- 라우팅 테이블
- 보안그룹
- 네트워크 ACL
해당 서비스들은 VPC의 주요 구성요소이고, 이외에 더 많은 서비스들이 존재한다.
Region
Region은 VPC에 속하는 구성요소는 아니지만, AWS의 네트워크를 이해하기 위해 꼭 이해해야하는 요소이다.
- 물리적으로 분리된 AWS 데이터센터의 집합
- 버지니아, 도쿄, 시드니 등 세계 여러 지역에 위치
- 각 지역의 리전은 문자와 숫자로된 이름을 부여
- 서울 리전은 ap-northeast-2
여러 지역에 Region이 위치한 이유는 사용자가 서비스할 지역에 최대한 가깝게 서버를 배치할 수 있도록 하기 위해서이다.
가용영역(Available Zone)
가용영역도 VPC의 구성요소에 포함시키지 않았지만, 마찬가지로 꼭 알아야할 요소이다.
- 하나의 리전을 물리적으로 나눠놓은 데이터 센터
- 전력 공급이나 네트워크 연결같이 물리적인 부분을 모두 독립적으로 사용
- 서비스 중인 가용영역에서 문제가 발생하면 다른 가용영역에서 서비스가 가능 (고가용성)
- 서울리전에는 총 4개의 가용영역이 존재
- ex) ap-northeast-2a ~ ap-northeast-2d
서브넷(Subnet)
- VPC의 IP주소 범위를 논리적으로 더 작게 나누는 단위
- 무조건 하나의 가용영역에 포함되어야 한다.
- 퍼블릭 서브넷, 프라이빗 서브넷 중 한가지로 만들 수 있다.
- 퍼블릭 서브넷은 VPC 외부에서 접근이 가능한 서브넷
- 프라이빗 서브넷은 VPC 외부에서 접근이 불가능한 서브넷
- 보안과 가용성을 위해 이런 특징들로 여러 가용영역 퍼블릭과 프라이빗 서브넷들을 배치해서 사용
인터넷 게이트웨이 (Internat Gateway)
- VPC 내부에서 외부 인터넷과 통신할 수 있게 해주는 서비스
- VPC 내부의 리소스가 외부 인터넷으로 나갈 수 있고, 외부 인터넷에서 VPC 내부 리소스로 접근할 수도 있다.
- VPC 단위로 배치한다.
NAT 게이트웨이
- VPC 내부의 리소스가 외부 인터넷으로 나갈 수 있게 해주는 서비스
- 인터넷 게이트웨이와 다르게 외부 인터넷에서 내부로 접근할 수는 없다.
- 주로 보안 강화를 위해 외부에서 내부 접근을 제한해야할 때 사용
NAT 게이트웨이의 통신
NAT 게이트웨이의 통신하는 방법을 이해하면, 보안을 어떻게 강화할 수 있는지 이해할 수 있다.
- 먼저 VPC 내부에 있는 서버에서 외부로 요청을 보낸다. 예) OS업데이트, 프로그램 다운로드
이때 소스 IP는 리소스의 프라이빗 IP가 되고, NAT 게이트웨이로 트래픽을 전달 - NAT 게이트웨이는 전달받은 트래픽의 소스 IP를 NAT 게이트웨이의 퍼블릭IP로 변경하고, 다시 목적지로 전송
이때 NAT 게이트웨이도 인터넷 게이트웨이를 통과 - 전달 받은 목적지에서 소스IP가 NAT 게이트웨이의 IP로 되어있어, 전달하려는 대상에 NAT 게이트웨이의 IP로 전달
- 전달 받은 NAT 게이트웨이는 다시 대상IP를 처음에 보낸 리소스의 IP로 수정하고 서버로 전달
이런 과정에서 리소스는 외부와 통신 과정에서 노출되지 않게 되어 보안을 강화할 수 있다.
라우팅 테이블(Route Table)
- 서브넷의 트래픽을 어떻게 어디로 전달할지 정의하는 요소
- 하나의 서브넷과 연결
- 퍼블릭 서브넷에 연결된 라우팅 테이블은 인터넷 게이트웨이에 라우팅 되도록 정의
- 프라이빗 서브넷에 연결된 라우팅 테이블은 NAT 게이트웨이에 라우팅 되도록 정의
라우팅 테이블은 서브넷에 배치된 리소스들이 트래픽을 어떻게 어디로 전달할지 정의가 되어있는 테이블
'AWS' 카테고리의 다른 글
[AWS] Cloudformation Git Sync 를 통한 쉬운 인프라 배포 (+실습) (0) | 2024.07.04 |
---|---|
[AWS] CloudFormation 정리 (0) | 2024.07.04 |
[AWS] CodePipeline으로 CI/CD 구현하기 (2) | 2023.05.30 |
[AWS] CodeDeploy를 이용한 Docker 이미지 EC2 배포 (0) | 2023.05.26 |
[AWS] CodeBuild를 이용한 Docker 이미지 빌드 및 ECR에 저장 (1) | 2023.05.26 |