0Pricing
DevOps Bootcamp · บทเรียน

การตั้งค่า VPC และเครือข่าย

จัดเตรียม AWS Virtual Private Cloud ซับเน็ต และกลุ่มความปลอดภัยด้วย Terraform เพื่อมอบพื้นฐานเครือข่ายที่ปลอดภัยและแยกเป็นอิสระให้โครงสร้างพื้นฐาน

การตั้งค่า VPC และเครือข่าย เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน 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 ออกเป็นบล็อกขนาดเล็กลงที่ผูกกับ Availability Zone

  • ซับเน็ตสาธารณะ — กำหนดเส้นทางไปยังเกตเวย์อินเทอร์เน็ต ใช้สำหรับตัวกระจายโหลดและโฮสต์แบบ bastion
  • ซับเน็ตส่วนตัว — ไม่มีเส้นทางไปอินเทอร์เน็ตโดยตรง เหมาะสำหรับฐานข้อมูลและเซิร์ฟเวอร์แอป

การสร้างซับเน็ตสาธารณะ

ซับเน็ตแต่ละรายการต้องมี CIDR ของตนเอง (ส่วนหนึ่งของช่วง VPC) และ Availability Zone การตั้งค่า 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"]
  }
}

การเชื่อมต่ออินสแตนซ์เข้ากับเครือข่าย

แนบซับเน็ตและกลุ่มความปลอดภัยเข้ากับอินสแตนซ์ EC2 ผ่าน subnet_id และ vpc_security_group_ids การทำเช่นนี้จะวางเซิร์ฟเวอร์ไว้ภายในเครือข่ายแบบกำหนดเองของคุณ

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]
}

การแสดงรหัสเครือข่าย

เปิดเผยรหัสสำคัญเป็นค่าผลลัพธ์ เพื่อให้โมดูลอื่นหรือทีมของคุณใช้อ้างอิงได้หลังจากดำเนินการใช้การตั้งค่าแล้ว

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

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับการกำหนดเส้นทางของ VPC

ทบทวน: รากฐานเครือข่ายของคุณ

คุณสร้างเครือข่ายที่สมบูรณ์ด้วย Terraform แล้ว:

  • aws_vpc พร้อมช่วง CIDR
  • เครือข่ายย่อย ใน Availability Zone ต่าง ๆ ซึ่งอาจเป็นเครือข่ายสาธารณะหรือส่วนตัว
  • เกตเวย์อินเทอร์เน็ต พร้อมตารางเส้นทางสำหรับการเข้าถึงจากเครือข่ายสาธารณะ
  • กลุ่มความปลอดภัย ที่ทำหน้าที่เป็นไฟร์วอลล์แบบติดตามสถานะ

เครือข่ายนี้เป็นโครงสร้างหลักที่ทรัพยากร AWS อื่น ๆ ทั้งหมดเชื่อมต่อเข้ามา

คำถามที่พบบ่อย

บทเรียน “การตั้งค่า VPC และเครือข่าย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การตั้งค่า VPC และเครือข่าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การตั้งค่า VPC และเครือข่าย”

จัดเตรียม AWS Virtual Private Cloud ซับเน็ต และกลุ่มความปลอดภัยด้วย Terraform เพื่อมอบพื้นฐานเครือข่ายที่ปลอดภัยและแยกเป็นอิสระให้โครงสร้างพื้นฐาน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การตั้งค่า VPC และเครือข่าย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่าผู้ให้บริการ AWS
  2. การจัดเตรียมอินสแตนซ์ EC2
  3. การจัดการบักเก็ต S3 และ IAM
  4. การตั้งค่า VPC และเครือข่าย
← กลับไปที่ DevOps Bootcamp