Infracost มีความสำคัญสำหรับ DevOps, SRE และนักพัฒนาที่ต้องการประเมินต้นทุนระบบคลาวด์สำหรับโปรเจ็กต์โครงสร้างพื้นฐานแบบโค้ด เช่น Terraform ด้วย Infracost คุณสามารถดูรายละเอียดค่าใช้จ่ายได้อย่างรวดเร็วในขณะที่เปรียบเทียบตัวเลือกต่างๆ ซึ่งจะช่วยนำไปสู่ข้อมูลเชิงลึกที่ดีขึ้นก่อนการตัดสินใจครั้งใหญ่
Infracost ทำงานอย่างไร?
Infracost สามารถตรวจสอบราคาได้กว่า 3 ล้านราคาโดยการสแกนโค้ด Terraform ของคุณ และสร้างการประมาณค่าใช้จ่ายที่ง่ายและอ่านง่ายก่อนที่คุณจะเปิดตัวทรัพยากร
คุณยังสามารถใช้ Infracost เพื่อดูว่าโค้ดบรรทัดใดมีผลกระทบต่อต้นทุนมากที่สุด เนื่องจากจะจับคู่ต้นทุนกับทรัพยากรในคำขอดึงของคุณ ด้วยการรวม Infracost เข้ากับ CI/CD ของคุณ คุณสามารถทำงานร่วมกับทีมของคุณและเปิดการอภิปรายเกี่ยวกับผลกระทบของการเปลี่ยนแปลงในเวิร์กโฟลว์ที่มีอยู่ของคุณ
Infracost ทำงานผ่านบริการแบ็กเอนด์ Cloud Pricing API และด้วยเครื่องมือ CLI คุณสามารถแยกวิเคราะห์แผน Terraform ในรูปแบบ JSON API จะอ้างอิงต้นทุนแต่ละรายการของทรัพยากรระบบคลาวด์แต่ละรายการที่ใช้งาน ตลอดจนพารามิเตอร์ต้นทุนที่เกี่ยวข้องตามผู้ให้บริการระบบคลาวด์
โปรแกรมไม่ต้องการข้อมูลประจำตัวใดๆ เพื่อดำเนินการ และจะไม่ทำการเปลี่ยนแปลงใดๆ กับ Terraform หรือทรัพยากรระบบคลาวด์ที่วิเคราะห์ ด้วยการใช้จำนวนประเภททรัพยากร Terraform API ช่วยให้มั่นใจได้ว่าทรัพยากรใหม่ได้รับการพิจารณา
มีสองวิธีหลักที่ Infracost แสดงการแจกแจงต้นทุน:
A) รายละเอียดค่าใช้จ่ายทั้งหมด
B) ความแตกต่างของค่าใช้จ่ายรายเดือนระหว่างสถานะปัจจุบันและสถานะที่วางแผนไว้
เริ่มต้นใช้งาน Infracost (ทีละขั้นตอน)
ทำตามคำแนะนำทีละขั้นตอนเพื่อติดตั้งและเริ่มใช้งาน Infracost:
1. ติดตั้ง Infracost
ขั้นตอนแรกในการเริ่มต้นคือการติดตั้ง Infracost แต่ก่อนอื่นคุณต้องมี terraform การติดตั้ง
มาดู Infracost เวอร์ชันต่างๆ กัน:
macOS โฮมบรูว์:
ชงติดตั้ง infracost
infracost –version # ควรแสดง v0.9.7
คู่มือ macOS:
# ดาวน์โหลด CLI ตาม OS/arch ของคุณและใส่ไว้ใน /usr/local/bin
ขด -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ช
ลินุกซ์:
# ดาวน์โหลด CLI ตาม OS/arch ของคุณและใส่ไว้ใน /usr/local/bin
ขด -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | ช
เทียบท่า:
นักเทียบท่าดึง infracost/infracost
นักเทียบท่าวิ่ง –rm \
-e INFRACOST_API_KEY=see_following_step_on_how_to_get_this \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/infracost แยกย่อย –path /code/
# เพิ่มแฟล็ก/envs ที่จำเป็นสำหรับ Infracost หรือ Terraform
# ตัวอย่างเช่น อาจจำเป็นหากคุณใช้บทบาทสมมติของ AWS:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
ดาวน์โหลดและเปิดเครื่องรูดไฟล์ รุ่นล่าสุด. เรียกใช้จาก Command Prompt หรือ Powershell โดยใช้ .\infracost.exe --no-color
ควบคู่ไปกับคำสั่ง/แฟล็กที่จำเป็นอื่นๆ (เอาต์พุตสีมีจุดบกพร่องที่เราต้องแก้ไขบน Windows) คุณควรย้ายไฟล์ exe ไปยังโฟลเดอร์ที่อยู่ใน your PATH
ตัวแปรสภาพแวดล้อม, เช่น C:\Windows
.
2. รับคีย์ API
ขั้นตอนต่อไปคือการลงทะเบียนเพื่อรับคีย์ API ฟรี ซึ่ง CLI ใช้ในการสืบค้น Cloud Pricing API สำหรับงานต่างๆ เช่น การรับราคาสำหรับประเภทอินสแตนซ์
ระบบปฏิบัติการทั้งหมด:
อินฟราคอสลงทะเบียน
คีย์ถูกบันทึกไว้ใน ~/.config/infracost/credentials.yml
.
3. เรียกใช้ Infracost
ตอนนี้คุณพร้อมที่จะเรียกใช้ Infracost ซึ่งจะไม่ทำการเปลี่ยนแปลงใดๆ กับสถานะ Terraform หรือทรัพยากรระบบคลาวด์ของคุณ คุณสามารถรันด้วยโปรเจ็กต์ Terraform ที่ให้มาเพื่อทดสอบ
ระบบปฏิบัติการทั้งหมด:
โคลน git https://github.com/infracost/example-terraform.git
cd ตัวอย่าง-terraform/sample1
# เล่นกับ main.tf แล้วเรียกใช้ใหม่เพื่อเปรียบเทียบค่าใช้จ่าย
การแยกย่อย infracost –path
# แสดงส่วนต่างของค่าใช้จ่ายรายเดือน แก้ไขไฟล์ yml แล้วเรียกใช้อีกครั้งเพื่อเปรียบเทียบค่าใช้จ่าย
ความแตกต่างของโครงสร้างพื้นฐาน – เส้นทาง –sync-usage-file –usage-file infracost-usage.yml
4. เพิ่มใน CI/CD
คุณสามารถใช้ Infracost's . ได้แล้ว การรวม CI/CD เพื่อเพิ่มความคิดเห็นคำขอดึงโดยอัตโนมัติ ซึ่งจะแสดงความแตกต่างของการประมาณการค่าใช้จ่าย นอกจากนี้ยังให้เครือข่ายความปลอดภัยแก่คุณ ซึ่งช่วยให้ทีมสามารถพูดคุยเกี่ยวกับผลกระทบด้านต้นทุนของการเปลี่ยนแปลงซึ่งเป็นส่วนหนึ่งของเวิร์กโฟลว์ของพวกเขา
การใช้
พื้นที่ infracost
CLI มีคำสั่งหลักดังต่อไปนี้:
breakdown
: แสดงรายละเอียดค่าใช้จ่ายทั้งหมดdiff
: แสดงส่วนต่างของค่าใช้จ่ายรายเดือนระหว่างสถานะปัจจุบันและที่วางแผนไว้
ใช้ไฟล์กำหนดค่า Infracost หาก repo ของคุณมีหลายโครงการ Terraform หรือพื้นที่ทำงาน ผลลัพธ์ของพวกเขาจะถูกรวมเข้าในรายละเอียดเดียวกันหรือผลลัพธ์ที่แตกต่าง
การใช้งานขั้นสูง
Infracost ยังมีวิธีการใช้งานขั้นสูงต่างๆ ที่สามารถใช้ได้นอกเหนือจากวิธีการใช้งานปกติ สามารถใช้วิธีการขั้นสูงเหล่านี้ผ่านไฟล์กำหนดค่า Infracost ได้เช่นกัน
ไฟล์แผน Terraform
สามารถเรียกใช้ Infracost กับไฟล์แผน Terraform ได้ ซึ่งหมายความว่าคุณได้เรียกใช้ Terraform . แล้ว init.
Infracost เพิ่งเรียกใช้ Terraformshow
ในกรณีนี้ หมายความว่าไม่ต้องใช้ข้อมูลรับรองระบบคลาวด์หรือ --terraform-plan-flags
ที่จะตั้งค่า
เส้นทาง cd/to/code
ดินเริ่มต้น
แผนผังภูมิประเทศ -out tfplan.binary
รายละเอียด infracost –path tfplan.binary
ความแตกต่างของโครงสร้างพื้นฐาน – เส้นทาง tfplan.binary
รัฐ Terraform
หากคุณต้องการดูรายละเอียดต้นทุนของสถานะ Terraform ปัจจุบัน คุณควรรู้ infracost breakdown
คำสั่งมี --terraform-use-state
ธงซึ่งจะพิสูจน์ว่ามีประโยชน์ในกรณีนี้ คุณต้องเรียกใช้ Terraform . อยู่แล้ว apply
ดังนั้น Infracost ก็แค่รัน Terraform show
ซึ่งไม่ต้องการข้อมูลรับรองระบบคลาวด์หรือ --terraform-plan-flags
ที่จะตั้งค่า
รายละเอียด infracost –ตัวอย่างเส้นทาง/terraform –terraform-use-state
ไฟล์ JSON สถานะ Terraform
คุณสามารถเรียกใช้ infracost breakdown
เทียบกับไฟล์ JSON สถานะ Terraform นี่จะเป็น [รูปแบบเอาต์พุต JSON] ของสถานะแทนการแสดง JSON ภายใน มันจะต้องถูกสร้างขึ้นโดยการวิ่ง terraform show -json
ภายในโครงการ Terraform และมีประโยชน์อย่างยิ่งหากคุณต้องการดูรายละเอียดต้นทุนของสถานะ Terraform ปัจจุบัน ในกรณีนี้ แสดงว่าคุณใช้งาน Terraform . อยู่แล้ว apply
, หมายถึงไม่มีข้อมูลรับรองระบบคลาวด์หรือ --terraform-plan-flags
จะต้อง
รองรับคลาวด์และทรัพยากรใดบ้าง
Infracost รองรับมากกว่า 200 ทรัพยากร Terraform ใน AWS, Google และ Azure ในขณะที่เครื่องมือ IaC อื่นๆ เช่น ปูลูมิ และ การก่อตัวของเมฆ รวมอยู่ในแผนงาน มีการเพิ่มการสนับสนุนสำหรับทรัพยากรใหม่อย่างต่อเนื่อง ดังนั้นจึงควรตรวจสอบ repo สำหรับการเผยแพร่
สรุป
Infracost มีประโยชน์ เครื่องมือสำหรับนักพัฒนา, DevOps, SRE และคนอื่นๆ ที่ต้องการดูรายละเอียดค่าใช้จ่ายอย่างรวดเร็วและเปรียบเทียบตัวเลือกต่างๆ ล่วงหน้า นอกจากนี้ยังเป็นตัวเลือกที่ดีหากคุณต้องการผสานรวมกับ CI และ/หรือต้องการการสนับสนุนสำหรับ AWS และ Google Cloud หากคุณต้องการสร้างความร่วมมือที่ดีขึ้นระหว่างทีมของคุณ Infracost สามารถช่วยในเรื่องนั้นได้ คุณลักษณะทั้งหมดเหล่านี้ทำให้เป็นเครื่องมือที่คุณควรพิจารณาอย่างยิ่งในการปรับใช้สำหรับการประเมินต้นทุนระบบคลาวด์สำหรับ Terraform
เขียนความเห็น