0Pricing
Azure Fundamentals · บทเรียน

การระบุและกำจัดทรัพยากรสูญเปล่า

ใช้คำแนะนำจาก Azure Cost Management และ Advisor เพื่อค้นหา VM ที่ไม่ได้ใช้งาน ดิสก์ที่ไม่ได้เชื่อมต่อ บริการที่จัดสรรเกินจำเป็น และทรัพยากรซอมบี้ แล้วเลิกใช้งานทรัพยากรเหล่านั้น

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

การสูญเปล่าบนคลาวด์: ปัจจัยต้นทุนที่ซ่อนอยู่

ผลการศึกษาพบอย่างสม่ำเสมอว่า องค์กรต่าง ๆ สูญเสีย ค่าใช้จ่ายคลาวด์ 25–35% ไปกับ Resource ที่ไม่ได้ใช้งาน การจัดสรรเกินความจำเป็น หรือ Resource ที่ถูกลืม ใน Azure แหล่งการสูญเปล่าที่พบบ่อย ได้แก่ VM ที่ทำงานตลอดเวลาแต่ใช้ CPU เกือบเป็นศูนย์, ดิสก์ที่มีการจัดการและไม่ได้เชื่อมต่อ ซึ่งเหลืออยู่หลังการลบ VM, ที่อยู่ IP สาธารณะที่ไม่มีเจ้าของ และ แผน App Service ที่ไม่ได้ใช้งาน การค้นหาและกำจัดความสูญเปล่านี้เป็นขั้นตอนแรกและให้ผลตอบแทนจากการลงทุนสูงสุดในแนวปฏิบัติ FinOps

คำแนะนำด้านต้นทุนจาก Azure Advisor

Azure Advisor จะวิเคราะห์การใช้ Resource ของคุณอย่างต่อเนื่อง และสร้างคำแนะนำด้าน Cost โดยอัตโนมัติ คำแนะนำที่พบบ่อย ได้แก่ ปรับขนาดให้เหมาะสมหรือปิด VM ที่ใช้งานต่ำ (ใช้ CPU ต่ำกว่า 5% หรือหน่วยความจำต่ำกว่า 2% เป็นเวลา 7 วัน), ซื้ออินสแตนซ์แบบสงวนไว้สำหรับ VM ที่ทำงานอย่างสม่ำเสมอ, ลบที่อยู่ IP สาธารณะที่ไม่ได้เชื่อมต่อ และนำอินสแตนซ์ Application Gateway ที่ไม่ได้ใช้งานออก คำแนะนำแต่ละรายการจะแสดง เงินออมรายเดือนโดยประมาณ เพื่อให้คุณจัดลำดับความสำคัญตามผลกระทบได้

# List Advisor cost recommendations via CLI
az advisor recommendation list \
  --category Cost \
  --query '[].{Resource:resourceName, Impact:impact, Savings:extendedProperties.annualSavingsAmount}' \
  --output table

การค้นหา VM ที่ไม่ได้ใช้งานและใช้งานต่ำกว่าความเหมาะสม

Azure Monitor รวบรวมตัวชี้วัด เปอร์เซ็นต์ CPU และ เครือข่ายขาเข้า/ขาออก สำหรับ VM ทุกเครื่อง VM ที่ใช้ CPU ต่ำกว่า 5% อย่างต่อเนื่องเป็นตัวเลือกที่เหมาะสมอย่างยิ่งสำหรับการปรับขนาดหรือปิดใช้งาน ใช้ฟีเจอร์ ข้อมูลเชิงลึกของ Virtual Machine ใน Azure Monitor เพื่อดูภาพรวมการใช้ CPU และหน่วยความจำของ VM ทั้งหมดในช่วง 24 ชั่วโมง 7 วัน หรือ 30 วัน คำแนะนำของ Advisor สำหรับ VM ที่ใช้งานต่ำจะเชื่อมโยงโดยตรงไปยังแผนภูมิประสิทธิภาพ เพื่อให้คุณยืนยันรูปแบบดังกล่าวก่อนดำเนินการ

# Query average CPU for a VM over the last 7 days
az monitor metrics list \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM \
  --metric 'Percentage CPU' \
  --interval PT1H \
  --start-time 2024-06-01T00:00:00Z \
  --end-time 2024-06-08T00:00:00Z \
  --aggregation Average

ดิสก์และสแนปชอตที่ไม่ได้เชื่อมต่อ

เมื่อมีการลบ VM โดยไม่ได้เลือกให้ลบดิสก์ของ VM นั้น ดิสก์ที่มีการจัดการจะยังคงอยู่และมีค่าใช้จ่ายต่อเนื่อง ในพอร์ทัล Azure ให้กรอง Disks ตาม สถานะดิสก์: Unattached เพื่อค้นหาดิสก์ที่ไม่มีเจ้าของเหล่านี้ ในทำนองเดียวกัน สแนปชอตเก่าที่สร้างขึ้นเพื่อการสำรองข้อมูลหรือการย้ายข้อมูลมักถูกลืม พื้นที่จัดเก็บสแนปชอตมีราคาถูกกว่าพื้นที่จัดเก็บดิสก์ที่มีการจัดการ แต่สแนปชอตที่ถูกลืมเป็นเวลาหนึ่งปีใน subscription ขนาดใหญ่อาจรวมเป็นค่าใช้จ่ายหลายพันดอลลาร์ต่อปี

# Find all unattached managed disks in a subscription
az disk list \
  --query '[?diskState == `Unattached`].{Name:name, RG:resourceGroup, SizeGB:diskSizeGb}' \
  --output table

ที่อยู่ IP สาธารณะและ NIC ที่ไม่มีเจ้าของ

ที่อยู่ IP สาธารณะใน Azure มีการเรียกเก็บเงินแม้จะ ไม่ได้เชื่อมโยง กับ Resource ที่กำลังทำงานอยู่ เมื่อมีการลบ VM หรือโหลดบาลานเซอร์ IP สาธารณะและอินเทอร์เฟซเครือข่ายของรายการเหล่านั้นอาจยังคงอยู่ ในพอร์ทัล ให้กรอง Public IP Addresses ตาม เชื่อมโยงกับ: ไม่มี แล้วลบรายการที่ไม่ต้องการอีกต่อไป ในทำนองเดียวกัน อินเทอร์เฟซเครือข่ายที่ไม่มีเจ้าของ ซึ่งไม่ได้เชื่อมต่อกับ VM หรือบริการใด ๆ สามารถนำออกได้อย่างปลอดภัย ค่าใช้จ่ายแต่ละรายการอาจไม่มาก แต่จะรวมกันเป็นจำนวนมากเมื่อมี Resource หลายร้อยรายการ

# Find unassociated public IP addresses
az network public-ip list \
  --query '[?ipConfiguration == null].{Name:name, RG:resourceGroup, SKU:sku.name}' \
  --output table

Resource ซอมบี้: สภาพแวดล้อม Staging และ Dev

Resource ซอมบี้ คือสภาพแวดล้อมสำหรับ Staging การทดสอบ หรือการพิสูจน์แนวคิดที่มีอายุการใช้งานยาวนาน ซึ่งจัดเตรียมไว้แล้วถูกลืม ไม่เหมือนกับ VM ของระบบจริงที่ไม่ได้ใช้งาน Resource เหล่านี้อาจมีการใช้งานปานกลางในเวลาทำการ แต่ไม่ได้รองรับโครงการที่กำลังดำเนินอยู่ ใช้ นโยบายการติดแท็ก Resource ที่กำหนดให้ Resource ทุกรายการต้องมีแท็ก Environment และ Project จากนั้นกำหนดเวลาการแจ้งเตือนอัตโนมัติสำหรับ Resource ที่มี Environment=Dev หรือ Environment=Test และมีอายุมากกว่า 90 วัน

# Find resources tagged as Dev that are over 90 days old (approximate via createdTime)
az resource list \
  --tag Environment=Dev \
  --query '[].{Name:name, Type:type, RG:resourceGroup}' \
  --output table

การปิด VM ของ Dev และ Test โดยอัตโนมัติ

VM ของ Azure รองรับฟีเจอร์ การปิดเครื่องอัตโนมัติ ซึ่งจะหยุด VM ตามเวลาที่กำหนดในแต่ละวัน เปิดใช้งานฟีเจอร์นี้กับ VM ของ Dev และ Test ทั้งหมด เพื่อให้แน่ใจว่าจะไม่ทำงานข้ามคืนหรือในวันหยุดสุดสัปดาห์ ตัวอย่างเช่น VM ของ Dev ที่ทำงานตลอด 24 ชั่วโมงทุกวันจะมีค่าใช้จ่ายเท่ากับ 24 ชั่วโมง แต่ VM ที่กำหนดให้ปิดอัตโนมัติเวลา 18:00 น. และเริ่มทำงานเวลา 08:00 น. เฉพาะวันธรรมดา จะใช้งานเพียง 50 ชั่วโมงต่อสัปดาห์แทนที่จะเป็น 168 ชั่วโมง จึงประหยัดค่าใช้จ่ายด้านการประมวลผลได้ประมาณ 70%

# Enable auto-shutdown at 18:00 UTC on a dev VM
az vm auto-shutdown \
  --resource-group myRG \
  --name myDevVM \
  --time 1800 \
  --email admin@contoso.com

Azure Cost Management: การตรวจจับความผิดปกติ

Azure Cost Management มีฟีเจอร์ Anomaly Detection ที่ใช้แมชชีนเลิร์นนิงเพื่อค้นหาการพุ่งขึ้นของค่าใช้จ่ายที่ไม่คาดคิด เมื่อค่าใช้จ่ายของ subscription หรือกลุ่ม Resource เบี่ยงเบนอย่างมากจากรูปแบบที่คาดการณ์ไว้ เช่น มีผู้ปรับใช้ VM ที่ใช้ GPU โดยไม่ได้ตั้งใจ หรือลืมลบเกตเวย์ ExpressRoute ระบบ Cost Management จะส่ง การแจ้งเตือนความผิดปกติทางอีเมล การตั้งค่าการแจ้งเตือนความผิดปกติเป็นวิธีที่เห็นผลได้รวดเร็ว ช่วยตรวจจับค่าใช้จ่ายที่พุ่งสูงก่อนปรากฏในใบเรียกเก็บเงินรายเดือน

# Create a cost anomaly alert
az costmanagement alert create \
  --name 'AnomalyAlert' \
  --scope '/subscriptions/<subscriptionId>' \
  --type 'Anomaly' \
  --contact-emails 'finance@contoso.com'

การปรับระดับพื้นที่จัดเก็บและฐานข้อมูลให้เหมาะสม

ความสูญเปล่าไม่ได้เกิดจากการประมวลผลเพียงอย่างเดียว Azure SQL Databases ที่จัดสรรไว้ในระดับ Business Critical แต่ใช้การสืบค้นแบบอ่านเป็นหลักและเรียบง่าย อาจทำงานได้เหมือนเดิมบนระดับ General Purpose ด้วยค่าใช้จ่ายเพียงครึ่งหนึ่ง ข้อมูล Blob Storage ที่เข้าถึงไม่บ่อยควรย้ายจากระดับ Hot ไปยัง ระดับ Cool หรือ Archive โดยใช้นโยบายการจัดการวงจรชีวิต Azure Advisor จะแสดงคำแนะนำในการปรับขนาดฐานข้อมูลและพื้นที่จัดเก็บให้เหมาะสมควบคู่กับคำแนะนำด้านการประมวลผล

# Create a Blob lifecycle policy to move data to Cool tier after 30 days
az storage account management-policy create \
  --account-name mystorageacct \
  --resource-group myRG \
  --policy @- << 'POLICY'
{
  'rules': [{
    'name': 'MoveOldDataToCool',
    'type': 'Lifecycle',
    'definition': {
      'actions': { 'baseBlob': { 'tierToCool': { 'daysAfterModificationGreaterThan': 30 } } },
      'filters': { 'blobTypes': ['blockBlob'] }
    }
  }]
}
POLICY

การสร้างรายการงานค้างเพื่อกำจัดความสูญเปล่า

ให้มองการปรับต้นทุนให้เหมาะสมเป็นแนวปฏิบัติด้านวิศวกรรมที่ดำเนินต่อเนื่อง ไม่ใช่กิจกรรมที่ทำเพียงครั้งเดียว สร้าง รายการงานค้าง FinOps ใน Azure DevOps หรือ Jira โดยเพิ่มรายการที่สร้างขึ้นทุกสัปดาห์จากคำแนะนำของ Advisor และการแจ้งเตือนความผิดปกติด้านต้นทุน มอบหมายรายการความสูญเปล่าแต่ละรายการให้ทีมเจ้าของ และกำหนดวันที่เป้าหมายในการแก้ไข ติดตามเงินออมที่เกิดขึ้นจริงเทียบกับเงินออมที่ระบุไว้ เพื่อวัดระดับความ成熟ของ FinOps กำหนดการทบทวนต้นทุน รายเดือนร่วมกับหัวหน้าฝ่ายวิศวกรรมและฝ่ายการเงิน เพื่อให้ทั้งองค์กรให้ความสำคัญกับการกำจัดความสูญเปล่าอย่างต่อเนื่อง

การกำกับดูแลเพื่อป้องกันความสูญเปล่าในอนาคต

การป้องกันคุ้มค่ากว่าการแก้ไข ใช้ Azure Policy เพื่อปฏิเสธการสร้าง SKU ของ VM ที่มีค่าใช้จ่ายสูง (เช่น GPU หรือ M-series) หากไม่ได้รับอนุมัติ กำหนดให้ Resource ทั้งหมดต้องมีแท็ก Environment และ ExpiryDate และเปิดใช้การปิดเครื่องอัตโนมัติกับ VM ที่สร้างใหม่ใน subscription ของ Dev โดยอัตโนมัติ ใช้นโยบายเหล่านี้ร่วมกับ การแจ้งเตือนงบประมาณที่กำหนดไว้ที่ 80% และ 100% ของงบประมาณรายเดือน เพื่อให้ทีมได้รับแจ้งก่อนเกิดการใช้จ่ายเกินงบประมาณ

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

ทดสอบความเข้าใจแนวคิด Microsoft Azure Fundamentals (AZ-900) จากบทเรียนนี้

สรุปบทเรียน

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

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

บทเรียน “การระบุและกำจัดทรัพยากรสูญเปล่า” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การระบุและกำจัดทรัพยากรสูญเปล่า”

ใช้คำแนะนำจาก Azure Cost Management และ Advisor เพื่อค้นหา VM ที่ไม่ได้ใช้งาน ดิสก์ที่ไม่ได้เชื่อมต่อ บริการที่จัดสรรเกินจำเป็น และทรัพยากรซอมบี้ แล้วเลิกใช้งานทรัพยากรเหล่านั้น คุณปฏิบัติ Azure Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “การระบุและกำจัดทรัพยากรสูญเปล่า” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การระบุและกำจัดทรัพยากรสูญเปล่า
  2. การปรับขนาดให้เหมาะสมและการปรับขนาดอัตโนมัติ
  3. แผนการประหยัดและการจอง Azure
  4. FinOps และแบบจำลองการเรียกเก็บต้นทุน
← กลับไปที่ Azure Fundamentals