0Pricing
DevOps Bootcamp · 강의

VPC 및 네트워킹 구성

Terraform으로 AWS Virtual Private Cloud, 서브넷 및 보안 그룹을 프로비저닝해 인프라에 안전하고 격리된 네트워크 기반을 제공합니다.

VPC 및 네트워킹 구성은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

사용자 지정 VPC가 필요한 이유

모든 AWS 계정에는 기본 VPC가 제공되지만, 운영 환경의 인프라에는 직접 설계한 네트워크가 필요합니다. VPC(Virtual Private Cloud)는 AWS 클라우드에서 격리된 영역으로, IP 범위, 서브넷, 라우팅, 방화벽을 직접 제어할 수 있습니다.

Terraform을 사용하면 전체 네트워크를 코드로 설명할 수 있으므로 리전과 계정 간에 동일하게 재현할 수 있습니다.

VPC 리소스 선언

aws_vpc 리소스는 네트워크의 기반입니다. CIDR 블록은 사설 IP 범위를 정의합니다. /16 블록을 사용하면 약 65,000개의 주소를 서브넷으로 나누어 사용할 수 있습니다.

resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    Name = "main-vpc"
  }
}

퍼블릭 서브넷과 프라이빗 서브넷

서브넷은 VPC 범위를 가용 영역에 연결된 더 작은 블록으로 나눕니다.

  • 퍼블릭 서브넷 — 인터넷 게이트웨이로 라우팅되며 로드 밸런서와 배스천 호스트에 사용됩니다.
  • 프라이빗 서브넷 — 인터넷으로 직접 연결되는 경로가 없으며 데이터베이스와 애플리케이션 서버에 적합합니다.

퍼블릭 서브넷 생성

각 서브넷에는 VPC 범위의 일부인 자체 CIDR과 가용 영역이 필요합니다. map_public_ip_on_launch를 true로 설정하면 이곳에서 시작하는 인스턴스에 퍼블릭 IP가 자동으로 할당됩니다.

resource "aws_subnet" "public" {
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.1.0/24"
  availability_zone       = "us-east-1a"
  map_public_ip_on_launch = true

  tags = {
    Name = "public-subnet"
  }
}

인터넷 게이트웨이

인터넷 게이트웨이(IGW)는 퍼블릭 서브넷의 리소스가 인터넷에 연결되도록 합니다. 인터넷 게이트웨이는 VPC에 직접 연결합니다.

resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.main.id

  tags = {
    Name = "main-igw"
  }
}

라우팅 테이블

라우팅 테이블이 0.0.0.0/0 트래픽을 인터넷 게이트웨이로 보내야 서브넷이 실제 퍼블릭 서브넷이 됩니다. 라우팅 테이블은 대상 CIDR을 대상으로 매핑합니다.

resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.gw.id
  }
}

서브넷에 경로 연결

라우팅 테이블은 서브넷에 연결하기 전에는 아무 작업도 하지 않습니다. aws_route_table_association 리소스가 둘을 연결합니다.

resource "aws_route_table_association" "public" {
  subnet_id      = aws_subnet.public.id
  route_table_id = aws_route_table.public.id
}

방화벽으로서의 보안 그룹

보안 그룹은 인스턴스 주위에 배치되는 상태 저장 가상 방화벽입니다. 상태 저장이란 허용된 인바운드 요청에 대한 반환 트래픽이 자동으로 허용된다는 뜻이므로, 일반적으로 필요한 인바운드 규칙만 지정하면 됩니다.

웹 보안 그룹 정의

아래 구성에서는 어디서든 들어오는 HTTP를 허용하고 모든 아웃바운드 트래픽을 허용합니다. 실제 배포에서는 원본 CIDR을 가능한 한 좁게 설정하세요.

resource "aws_security_group" "web" {
  name   = "web-sg"
  vpc_id = aws_vpc.main.id

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

인스턴스를 네트워크에 연결

subnet_id와 vpc_security_group_ids를 사용하여 서브넷과 보안 그룹을 EC2 인스턴스에 연결합니다. 이렇게 하면 서버가 사용자 지정 네트워크 내부에 배치됩니다.

resource "aws_instance" "app" {
  ami                    = "ami-0abcd1234"
  instance_type          = "t3.micro"
  subnet_id              = aws_subnet.public.id
  vpc_security_group_ids = [aws_security_group.web.id]
}

네트워크 ID 출력

핵심 ID를 출력값으로 공개하면 적용이 끝난 후 다른 모듈이나 팀에서 이를 참조할 수 있습니다.

output "vpc_id" {
  value = aws_vpc.main.id
}

output "public_subnet_id" {
  value = aws_subnet.public.id
}

빠른 확인

VPC 라우팅에 대한 이해도를 확인해 보세요.

복습: 네트워크 기반 구축

Terraform으로 완전한 네트워크를 구축했습니다.

  • CIDR 범위를 지정한 aws_vpc
  • 가용 영역 전반에 배치된 퍼블릭 또는 프라이빗 서브넷
  • 퍼블릭 접근을 위한 인터넷 게이트웨이와 라우팅 테이블
  • 상태 저장 방화벽 역할을 하는 보안 그룹

이 네트워크는 다른 모든 AWS 리소스가 연결되는 기반입니다.

자주 묻는 질문

“VPC 및 네트워킹 구성” 강의는 무료인가요?

네 — “VPC 및 네트워킹 구성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“VPC 및 네트워킹 구성”에서 뭘 배우나요?

Terraform으로 AWS Virtual Private Cloud, 서브넷 및 보안 그룹을 프로비저닝해 인프라에 안전하고 격리된 네트워크 기반을 제공합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“VPC 및 네트워킹 구성” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. AWS 공급자 설정
  2. EC2 인스턴스 프로비저닝
  3. S3 버킷 및 IAM 관리
  4. VPC 및 네트워킹 구성
← DevOps Bootcamp(으)로 돌아가기