0Pricing
Terraform Infrastructure as Code · บทเรียน

แบ็กเอนด์สถานะระยะไกล

กำหนดค่าแบ็กเอนด์สถานะระยะไกล เช่น AWS S3, Azure Blob Storage หรือ Google Cloud Storage เพื่อจัดการสถานะอย่างปลอดภัย รองรับการทำงานร่วมกัน และคงอยู่ถาวร

แบ็กเอนด์สถานะระยะไกล เป็นบทเรียน Terraform Infrastructure as Code ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Terraform Infrastructure as Code และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องใช้สถานะระยะไกล

เมื่อคุณใช้ Terraform เป็นครั้งแรก ระบบจะจัดเก็บไฟล์สถานะไว้ในเครื่องของคุณ โดยปกติจะมีชื่อว่า terraform.tfstate

สถานะภายในเครื่องนี้ใช้งานได้ดีสำหรับโครงการเดี่ยว แต่จะกลายเป็นปัญหาอย่างรวดเร็วเมื่อทำงานเป็นทีมหรือจัดการโครงสร้างพื้นฐานที่ซับซ้อน

ทำความเข้าใจสถานะของ Terraform

ไฟล์สถานะของ Terraform เป็นองค์ประกอบสำคัญ โดยเป็นไฟล์ JSON ที่จับคู่ทรัพยากรโครงสร้างพื้นฐานในโลกจริงกับการกำหนดค่า Terraform

  • ติดตามรหัสทรัพยากร
  • จัดเก็บข้อมูลเมตาเกี่ยวกับโครงสร้างพื้นฐานของคุณ
  • ช่วยให้ Terraform ทราบว่ามีสิ่งใดอยู่แล้วและสิ่งใดจำเป็นต้องเปลี่ยนแปลง

ข้อจำกัดของสถานะภายในเครื่อง

ลองนึกภาพว่าสมาชิกหลายคนในทีมเรียกใช้ terraform apply แต่ละคนจะมีสถานะภายในเครื่องของตนเอง ซึ่งนำไปสู่ปัญหาต่อไปนี้:

  • ความขัดแย้ง: การเปลี่ยนแปลงที่คนหนึ่งทำจะไม่ปรากฏในสถานะของอีกคน
  • การสูญหายของข้อมูล: หากไฟล์ภายในเครื่องสูญหาย ก็จะสูญเสียการติดตามโครงสร้างพื้นฐาน
  • ไม่รองรับการทำงานร่วมกัน: การแบ่งปันการจัดการโครงสร้างพื้นฐานทำได้ยาก

แนะนำแบ็กเอนด์สถานะระยะไกล

เพื่อแก้ไขข้อจำกัดของสถานะภายในเครื่อง Terraform จึงรองรับแบ็กเอนด์สถานะระยะไกล ซึ่งเป็นตำแหน่งที่ปลอดภัยและใช้ร่วมกันสำหรับจัดเก็บไฟล์ .tfstate

แบ็กเอนด์ระยะไกลที่ใช้กันทั่วไป ได้แก่บริการพื้นที่จัดเก็บบนคลาวด์ เช่น AWS S3, Azure Blob Storage และ Google Cloud Storage

ประโยชน์ของสถานะระยะไกล

การใช้แบ็กเอนด์ระยะไกลมีข้อดีสำคัญหลายประการ:

  • การทำงานร่วมกัน: สมาชิกทีมทุกคนใช้สถานะเดียวที่เป็นแหล่งข้อมูลหลัก
  • ความทนทาน: สถานะถูกจัดเก็บในพื้นที่จัดเก็บบนคลาวด์ที่พร้อมใช้งานสูง จึงป้องกันการสูญหาย
  • ความปลอดภัย: พื้นที่จัดเก็บบนคลาวด์มีการควบคุมการเข้าถึงและการเข้ารหัสที่รัดกุมสำหรับสถานะของคุณ
  • การล็อกสถานะ: ป้องกันไม่ให้ผู้ใช้หลายคนเปลี่ยนแปลงพร้อมกัน (จะกล่าวถึงในบทเรียนถัดไป)

การกำหนดค่าแบ็กเอนด์ระยะไกล

คุณกำหนดค่าแบ็กเอนด์ระยะไกลได้โดยเพิ่มบล็อก backend ภายในบล็อก terraform ระดับบนสุดในไฟล์การกำหนดค่าของคุณ (เช่น main.tf)

Terraform อนุญาตให้มีการกำหนดค่าแบ็กเอนด์ได้เพียง หนึ่ง รายการต่อโมดูลหลัก

terraform {
  # backend configuration goes here
}

ตัวอย่างแบ็กเอนด์ AWS S3

สำหรับ AWS นั้น S3 เป็นตัวเลือกยอดนิยมสำหรับสถานะระยะไกล คุณต้องมีบักเก็ต S3 และคีย์ที่ไม่ซ้ำกันสำหรับไฟล์สถานะ

ขอแนะนำเป็นอย่างยิ่งให้เปิดใช้การกำหนดเวอร์ชันในบักเก็ต S3 เพื่อเก็บประวัติการเปลี่ยนแปลงสถานะ

terraform {
  backend "s3" {
    bucket         = "my-tf-state-bucket-12345"
    key            = "dev/my-app/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "my-tf-state-lock" # For state locking
  }
}

แบ็กเอนด์ Azure Blob Storage

บน Azure คุณสามารถใช้ Blob Storage เพื่อจัดเก็บสถานะ Terraform ได้ คุณจะต้องมีบัญชีพื้นที่จัดเก็บและคอนเทนเนอร์

ตรวจสอบให้แน่ใจว่าตัวแทนบริการหรือผู้ใช้ที่เรียกใช้ Terraform มีสิทธิ์ที่เหมาะสมกับบัญชีพื้นที่จัดเก็บ

terraform {
  backend "azurerm" {
    resource_group_name  = "rg-terraform-state"
    storage_account_name = "tfstateblobacc001"
    container_name       = "tfstate"
    key                  = "dev/my-app/terraform.tfstate"
  }
}

การเริ่มต้นแบ็กเอนด์ระยะไกล

หลังจากเพิ่มบล็อก backend แล้ว คุณต้องเรียกใช้ terraform init คำสั่งนี้จะตรวจหาการกำหนดค่าแบ็กเอนด์และย้ายสถานะภายในเครื่อง (ถ้ามี) ไปยังตำแหน่งระยะไกล

Terraform จะแจ้งให้คุณยืนยันก่อนดำเนินการย้าย

terraform init

ตรวจสอบสถานะระยะไกล

ข้อใดต่อไปนี้คือประโยชน์สำคัญของการใช้แบ็กเอนด์สถานะระยะไกลใน Terraform

สรุปและขั้นตอนถัดไป

ทำได้ดีมาก! คุณได้เรียนรู้เกี่ยวกับบทบาทสำคัญของแบ็กเอนด์สถานะระยะไกลใน Terraform แล้ว

  • สถานะระยะไกลรวมไฟล์ .tfstate ไว้ที่ศูนย์กลาง
  • ช่วยให้ทีมทำงานร่วมกัน ให้ความทนทาน และเพิ่มความปลอดภัย
  • คุณกำหนดค่าได้โดยใช้บล็อก backend และเปิดใช้งานด้วย terraform init

ถัดไป เราจะเจาะลึกเรื่องการล็อกสถานะและความสอดคล้อง ซึ่งเป็นความสามารถสำคัญที่แบ็กเอนด์ระยะไกลเปิดใช้งานได้!

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

บทเรียน “แบ็กเอนด์สถานะระยะไกล” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แบ็กเอนด์สถานะระยะไกล”

กำหนดค่าแบ็กเอนด์สถานะระยะไกล เช่น AWS S3, Azure Blob Storage หรือ Google Cloud Storage เพื่อจัดการสถานะอย่างปลอดภัย รองรับการทำงานร่วมกัน และคงอยู่ถาวร คุณปฏิบัติ Terraform Infrastructure as Code ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “แบ็กเอนด์สถานะระยะไกล” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Terraform Infrastructure as Code นี้ได้ไหม

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

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

  1. แบ็กเอนด์สถานะระยะไกล
  2. การล็อกสถานะและความสอดคล้อง
  3. การนำเข้าทรัพยากรที่มีอยู่
  4. การปรับโครงสร้างสถานะด้วย moved และ removed
← กลับไปที่ Terraform Infrastructure as Code