AWS와의 연결
Virtual Private Cloud(VPC)
AWS 리소스에 경계를 설정하는 데 사용할 수 있는 네트워킹 서비스
- VPC를 사용해 AWS 클라우드의 격리된 섹션을 프로비저닝할 수 있음
- 한 VPC 내에서 여러 서브넷으로 리소스를 구성할 수 있음
- 서브넷: 리소스를 포함할 수 있는 VPC 섹션
인터넷 게이트웨이
- 인터넷의 퍼블릭 트래픽이 VPC에 액세스하도록 허용하려면 인터넷 게이트웨이를 VPC에 연결해야 함
- 인터넷 게이트웨이가 없으면 아무도 VPC내의 리소스에 접근 불가
가상 프라이빗 게이트웨이
- VPC내의 비공개 리소스에 액세스하려면 가상 프라이빗 게이트웨이를 사용
- 보호된 인터넷 트래픽이 VPC로 들어오도록 허용하는 구성 요소
- 다른 트래픽과 동일한 네트워크를 사용하기 때문에 체증 발생 가능
- VPC와 프라이빗 네트워크간에 가상 프라이빗 네트워크(VPN) 연결 설정 가능
- 승인된 네트워크에서 나오는 트래픽만 VPC로 들어가도록 허용
AWS Direct Connect
- 데이터 센터와 VPC간에 비공개 전용 연결을 설정하는 서비스
- 다른 트래픽과 네트워크를 공유하지 않고 바로(Direct) 연결
- 네트워크 비용을 절감하고 대역폭을 놀리는데 도움이 됨
서브넷 및 네트워크 액세스 제어 목록
서브넷
보안 또는 운영 요구 사항에 따라 리소스를 그룹화할 수 있는 VPC 내의 한 섹션
- 서브넷은 퍼블릭 또는 프라이빗일 수 있음
- 퍼블릭 서브넷: 누구나 액세스할 수 있어야 하는 리소스가 포함
- 프라이빗 서브넷: 데이터베이스와 같이 프라이빗 네트워크를 통해서만 액세스할 수 있는 리소스가 포함
- VPC내에서 서브넷은 서로 통신할 수 있음.
- 예: 퍼블릭 서브넷에 있는 EC2 인스턴스가 프라이빗 서브넷에 있는 데이터베이스와 통신 가능
VPC의 네트워크 트래픽
- AWS 클라우드에서 호스팅되는 애플리케이션에 데이터를 요청하면 이 요청은 패킷으로 전송됨
- 패킷: 인터넷이나 네트워크를 통해 전송되는 데이터의 단위
- 패킷은 인터넷 게이트웨이를 통해 VPC로 들어간다.
- 패킷이 서브넷으로 들어가거나 나오려면 먼저 권한을 확인해야 함
- 이를 확인하는 VPC 구성 요소는 네트워크 ACL(액세스 제어 목록)임
네트워크 ACL(액세스 제어 목록)
서브넷 수준에서 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽
- 각 AWS 계정에는 기본 네트워크 ACL이 포함
- VPC를 구성할 때 계정의 기본 기본 네트워크 ACL을 사용하거나 사용자 지정 네트워크 ACL을 생성 가능
- 계정의 기본 기본 네트워크 ACL: 기본적으로 모든 인바운드 및 아웃바운드 트래픽 허용
- 사용자 자체 규칙 추가 수정 가능
- 사용자 지정 네트워크 ACL: 사용자가 허용할 트래픽을 지정하는 규칙을 추가할 때까지 모든 인바운드 및 아웃바운드 트래픽 거부
- 모든 네트워크 ACL에는 명시적 거부 규칙 존재
- 패킷이 목록의 다른 모든 규칙과 일치하지 않으면 해당 패킷 거부
상태 비저장 패킷 필터링
- 네트워크 ACL은 상태 비저장 패킷 필터링을 수행
- 아무것도 기억하지 않음. 각 방향(인바운드, 아웃바운드)으로 서브넷 경계를 통과하는 패킷만 확인
- 해당 요청에 대한 패킷이 서브넷으로 반환될 때 네트워크 ACL은 이전 요청 기억하지 못함
- 네트워크 ACL은 규칙 목록에 따라 패킷 응답 확인 → 허용 또는 거부 결정
- 패킷이 서브넷에 들어간 후에는 서브넷 내 리소스(예:EC2 인스턴스)에 대한 권한이 평가되어야 함
보안 그룹
Amazon EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽
- 기본적으로 보안 그룹은 모든 인바운드 트래픽 거부, 아웃바운드 트래픽 허용
상태 저장 패킷 필터링
- 보안 그룹은 상태 저장 패킷 필터링을 수행
- 들어오는 패킷에 대한 이전 결정을 기억
- 해당 요청에 대한 패킷 응답이 인스턴스로 반환될 때 보안 그룹이 이전 요청을 기억
- 보안 그룹은 인바운드 보안 그룹 규칙에 관계 없이 응답이 진행하도록 허용
글로벌 네트워킹
Route 53
DNS 웹 서비스
- 개발자와 비즈니스가 최종 사용자를 AWS에서 호스팅되는 인터넷 어플리케이션으로 라우팅할 수 있는 안정적인 방법 제공
- 사용자 요청을 AWS에서 실행되는 인프라(예: EC2 or ELB)에 연결
- 사용자를 AWS 외부 인프라로 라우팅 가능
- 도메인 이름의 DNS 레코드 관리하는 기능도 존재
- 새 도메인 이름을 직접 등록 가능
- 다른 도메인 등록 대행자가 관리하는 기존 도메인 이름의 DNS 레코드 전송 가능
Route 53 및 CloudFront가 콘텐츠를 전송하는 방식
- 고객이 웹 사이트로 이동하여 애플리케이션에서 데이터 요청
- Route53은 DNS 확인을 사용해 IP를 식별, 이 정보는 고객에게 다시 전송
- 고객의 요청은 CloudFront를 통해 가장 가까운 엣지 로케이션으로 전송
- CloudFront는 수신 패킷을 EC2 인스턴스로 전송하는 Application Load Balancer(ALB)에 연결