AWS VPC Setup for EC2

Dongmin Lee·2023년 11월 9일
0

AWS

목록 보기
1/2
post-thumbnail

1. Introduction

AWS에서 EC2 인스턴스를 생성하여 SSH로 접속하고자할 때 VPC에 대한 필요한 리소스들을 정리해보자.

Terraform 기준으로 전체적으로 아래의 리소스들이 필요하다.

  1. aws_vpc: VPC 생성
  2. aws_subnet: VPC 내부의 서브넷 생성
  3. aws_internet_gateway: VPC를 인터넷에 연결하기 위한 인터넷 게이트웨이
  4. aws_route_table: VPC의 라우팅 테이블
  5. aws_route: 인터넷 게이트웨이의 라우팅 규칙 생성
  6. aws_route_table_association: 서브넷과 라우팅 테이블 연결
  7. aws_security_group: SSH를 허용하는 보안 그룹 생성
  8. aws_security_group_rule: 보안 그룹의 인바운드와 아웃바운드 규칙 생성

코드는 아래의 깃허브 링크에 있다.
dongminlee94/terraform-with-cloud/aws

한 가지씩 자세히 알아보자.

2. Resources of VPC

2.1 aws_vpc

  • AWS의 가상 네트워크 환경을 제공함
  • 이 환경 내에서만 리소스들이 상호작용을 하게됨

2.2 aws_subnet

  • VPC 내의 특정 IP 주소 범위를 가진 세그먼트
  • EC2, ECS, RDS 등 여러가지 리소스들이 서브넷 내에서 실행

2.3 aws_internet_gateway

  • VPC와 인터넷 간의 연결을 가능하게 하는 게이트웨이
  • EC2에 SSH 요청을 할 때 인터넷 게이트웨이를 통해 VPC 내부로 전달됨

2.4 aws_route_table & aws_route

  • 트래픽의 라우팅 방향을 결정
  • aws_route를 통해 라우트 테이블 내에 라우팅 규칙을 추가
  • SSH 요청이 VPC 내부로 들어오면, 라우트 테이블이 어디로 트래픽을 전달해야 하는지 결정함

2.5 aws_route_table_association

  • 특정 서브넷을 라우트 테이블에 연결
  • SSH 요청이 특정 서브넷 내의 EC2 인스턴스로 전달되기 전에 해당 서브넷이 어떤 라우트 테이블과 연결되어 있는지 확인

2.6 aws_security_group & aws_security_group_rule

  • EC2 인스턴스의 인바운드 및 아웃바운드 트래픽을 제어
  • SSH 접속 요청이 들어오면 보안 그룹의 규칙들이 허용할지 말지를 결정함

3. SSH Access Flow of EC2

  1. 외부 SSH 클라이언트에서 요청이 발생
  2. 요청은 인터넷을 통해 AWS의 VPC으로 전달됨
  3. 요청이 VPC의 경계에 도달하면, 먼저 인터넷 게이트웨이를 통해 AWS 네트워크로 진입
  4. 인터넷 게이트웨이를 통과한 후, 해당 VPC의 라우트 테이블이 요청을 어떤 서브넷으로 라우팅할지 결정
  5. 라우트 테이블에 따라 트래픽이 지정된 서브넷 내의 EC2 인스턴스로 전달됨
  6. 서브넷에 도착한 트래픽은 EC2 인스턴스와 연결된 보안 그룹의 인바운드 규칙에 의해 검사됨
  7. 보안 그룹이 인바운드 SSH 트래픽을 허용한다면, SSH 세션은 성립되며 접속이 완료됨

4. Inbound Traffic vs Outbound Traffic

4.1 Inbound Traffic

인터넷에서 VPC 내의 EC2 인스턴스로 들어오는 트래픽을 가정

  1. 인터넷 게이트웨이:

    • 외부 트래픽은 먼저 인터넷 게이트웨이를 통해 AWS VPC로 들어온다. 이는 VPC와 외부 인터넷 간의 주요 진입점 역할을 한다.
  2. 라우트 테이블

    • 들어오는 트래픽은 라우트 테이블의 규칙을 따른다.
    • 인바운드 트래픽에 대한 구체적인 라우팅 경로는 특정 서브넷의 라우팅 경로이다. (3번)
  3. 서브넷 연결:

    • 특정 서브넷은 라우트 테이블에 연결되어 있다.
    • 이 연결을 통해 해당 서브넷으로 들어오는 인바운드 트래픽이 처리된다.
    • SSH 요청이 해당 서브넷에 연결된 EC2 인스턴스로 전달된다.

4.2 Outbound Traffic

VPC 내의 EC2 인스턴스에서 인터넷으로 나가는 트래픽을 가정

  1. 출발지 (EC2 인스턴스):

    • 트래픽은 VPC 내의 EC2 인스턴스에서 시작한다.
  2. 서브넷 연결:

    • EC2 인스턴스가 위치한 서브넷은 특정 라우트 테이블에 연결되어 있다.
  3. 라우트 테이블 및 라우트 규칙:

    • 나가는 트래픽은 라우트 테이블의 규칙을 따른다.
    • 라우트는 0.0.0.0/0과 같은 목적지에 대한 트래픽을 특정 대상(e.g., 인터넷 게이트웨이)으로 라우팅하는 규칙을 정의한다.
  4. 인터넷 게이트웨이 (aws_internet_gateway):

    • 라우트 규칙에 따라 트래픽은 인터넷 게이트웨이를 통해 외부 인터넷으로 라우팅된다.

0개의 댓글