ทั้งหมดที่คุณต้องรู้เกี่ยวกับ AWS CloudFormation

เผยแพร่แล้ว: 2021-12-28

Encap - บล็อก (ต่อ)


AWS CloudFormation เป็นบริการเฉพาะของ Amazon เพื่อช่วยเหลือผู้ใช้ในการตั้งค่าและสร้างแบบจำลองทรัพยากร AWS ช่วยให้คุณใช้เวลามากขึ้นกับสิ่งที่สำคัญ เช่น การมุ่งเน้นที่การจัดการทรัพยากร AWS และชี้นำการโฟกัสของคุณไปที่แอปพลิเคชันที่ทำงานภายใน AWS

คุณสามารถสร้างเทมเพลตที่ให้คำอธิบายเกี่ยวกับทรัพยากรภายใน AWS ที่คุณต้องการ เช่น อินสแตนซ์ Amazon RDS DB และอินสแตนซ์ Amazon EC2 CloudFormation ตั้งใจที่จะดูแลการกำหนดค่าและการจัดเตรียมทรัพยากร AWS เหล่านั้นให้กับผู้ใช้อย่างเหมาะสมที่สุด ไม่จำเป็นต้องสร้างหรือกำหนดค่าทรัพยากรเหล่านี้ทีละรายการอีกต่อไป เนื่องจาก AWS CloudFormation จะดูแลอย่างเต็มที่

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

การทำงานของ AWS CloudFormation


AWS CloudFormation เป็นแนวคิดที่ทำงานบนแนวคิดสแต็ก ช่วยให้คุณมีศักยภาพในการสร้างและลบทรัพยากร AWS โดยรวมในส่วนที่เกี่ยวกับหน่วย ผู้ใช้สามารถกำหนดคุณสมบัติที่เกี่ยวข้องกับการแมป พารามิเตอร์สแต็ก ค่าเอาต์พุต และคุณสมบัติของทรัพยากร ทำได้โดยใช้เทมเพลตซึ่งเป็นไฟล์ที่สอดคล้องกับ JSON

คุณสามารถเขียนและสร้างเทมเพลตได้ตั้งแต่เริ่มต้น หรือคุณสามารถใช้เทมเพลตตัวอย่างที่ AWS เสนอให้ล่วงหน้าก็ได้ นอกจากนี้ ผู้ใช้ยังสามารถใช้ประโยชน์สูงสุดจากผลิตภัณฑ์ AWS จำนวนมากภายใน CloudFormation เช่น Amazon EC2, Amazon RDS, Amazon Elastic Beanstalk

ขณะสร้างสแต็ก AWS CloudFormation จะเรียกใช้บริการเฉพาะบน AWS ซึ่งจะช่วยในการกำหนดค่าและจัดเตรียมทรัพยากร AWS CloudFormation ดำเนินการเฉพาะการกระทำที่คุณได้รับอนุญาตให้ทำ ตัวอย่างเช่น หากคุณต้องการสร้าง Amazon EC2 ด้วย AWS CloudFormation คุณจะต้องมีสิทธิ์พิเศษสำหรับมัน นอกจากนี้ ยังมีความจำเป็นในการลบสแต็คและยุติอินสแตนซ์

ในการจัดการสิทธิ์ บุคคลสามารถใช้ AWS Identity and Access Management ได้ ต่อจากนี้ การเรียกที่กระบวนการของ AWS CloudFormation ได้รับการประกาศโดยเทมเพลต เพื่อให้แน่ใจว่าคุณสร้างและแก้ไขเทมเพลต CloudFormation ภายใน YAML หรือ JSON จำเป็นต้องใช้ AWS CloudFormation Designer คุณสามารถสร้างบัญชีและเริ่มออกแบบได้ทันที

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

หลังจากที่คุณสร้างเทมเพลตแล้ว คุณจะบันทึกในบัคเก็ต S3 หรือในเครื่อง นอกจากนี้ คุณต้องแน่ใจว่าได้บันทึกด้วยนามสกุล เช่น .yaml, .txt หรือ .json สร้างสแต็ก CloudFormation โดยระบุ URL ของ Amazon S3 หรือตำแหน่งไฟล์เทมเพลตบนเครื่องคอมพิวเตอร์ ในกรณีที่คุณคิดว่าเทมเพลตมีพารามิเตอร์บางอย่าง คุณสามารถให้ค่าอินพุตสำหรับค่าเดียวกันหลังจากนั้น คุณสามารถดำเนินการตามทิศทางของการสร้างสแต็กได้ พารามิเตอร์ช่วยให้คุณป้อนค่าสำหรับเทมเพลต CloudFormation และด้วยค่าดังกล่าว คุณสามารถปรับแต่งทรัพยากรในแต่ละครั้งที่คุณต้องการสร้างสแต็ก

โปรดจำไว้ว่า ในกรณีที่คุณเพิ่งระบุหรือเรียกเทมเพลตที่จัดเก็บไว้ในเครื่อง CloudFormation จะอัปโหลดไปยังบัคเก็ต S3 ในบัญชี AWS โดยอัตโนมัติ AWS CloudFormation มีไว้สำหรับสร้างบัคเก็ตสำหรับทุกภูมิภาคที่คุณสามารถอัปโหลดไฟล์เทมเพลตได้ บัคเก็ตภายใน CloudFormation สามารถเข้าถึงได้โดยทุกคนที่เปิดใช้งานสิทธิ์ Amazon S3 ในบัญชี

แนวคิด AWS CloudFormation


ทุกครั้งที่คุณใช้ AWS CloudFormation คุณจะทำงานกับเทมเพลตและสแต็คได้ คุณต้องสร้างเทมเพลตเพื่ออธิบายทรัพยากร AWS และคุณสมบัติของทรัพยากร ทุกครั้งที่คุณสร้างสแต็ก CloudFormation จะจัดเตรียมทรัพยากรที่อธิบายไว้ในเทมเพลต

1. เทมเพลต


เทมเพลต AWS CloudFormation คือไฟล์ข้อความที่มีรูปแบบ JSON หรือ YAML ง่ายต่อการบันทึกไฟล์เหล่านี้ด้วยนามสกุล เช่น .yaml, .template, .txt หรือ .json AWS CloudFormation ใช้เทมเพลตเหล่านี้เป็นพิมพ์เขียวสำหรับสร้างทรัพยากร AWS

ตัวอย่างเช่น คุณสามารถอธิบายอินสแตนซ์ Amazon EC2 ในเทมเพลตเป็นประเภทอินสแตนซ์, AMI ID, การแมปอุปกรณ์บล็อก และชื่อคู่คีย์ Amazon EC2 เมื่อใดก็ตามที่คุณสร้างสแต็ก คุณยังสามารถพูดถึงเทมเพลตที่ CloudFormation ใช้เพื่อสร้างสิ่งที่คุณอธิบายในเทมเพลตได้

2. กอง

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

สมมติว่าคุณสร้างเทมเพลตที่มีกลุ่ม Auto Scaling, อินสแตนซ์ฐานข้อมูล Amazon Relational Database Service และตัวโหลดบาลานซ์ Elastic Load Balancing สำหรับการสร้างทรัพยากรเหล่านี้ คุณสามารถสร้างสแต็กได้โดยส่งเทมเพลตที่คุณสร้างขึ้น และ CloudFormation จะจัดเตรียมทรัพยากรเหล่านี้ทั้งหมดให้คุณ คุณสามารถทำงานกับสแต็กได้โดยใช้คอนโซล CloudFormation, AWS CLI และ API

3. เปลี่ยนชุด

หากคุณคิดว่าควรเปลี่ยนเป็นทรัพยากรที่ทำงานอยู่ในสแต็ก คุณสามารถอัปเดตสแตกได้ ก่อนที่คุณจะทำการเปลี่ยนแปลงใดๆ กับทรัพยากร คุณสามารถสร้างชุดการเปลี่ยนแปลงได้ ซึ่งโดยพื้นฐานแล้วจะเป็นบทสรุปของการเปลี่ยนแปลงที่เสนอทั้งหมด ชุดการเปลี่ยนแปลงช่วยให้คุณเห็นว่าการเปลี่ยนแปลงส่งผลกระทบต่อทรัพยากรที่ทำงานอยู่อย่างไร โดยเฉพาะอย่างยิ่งสำหรับทรัพยากรที่สำคัญก่อนที่จะนำไปใช้

ตัวอย่างเช่น ในกรณีที่คุณเปลี่ยนชื่อของอินสแตนซ์ฐานข้อมูล Amazon RDS AWS CloudFormation จะสร้างฐานข้อมูลใหม่และลบฐานข้อมูลเก่า คุณไม่สามารถเสี่ยงที่จะสูญเสียข้อมูลในฐานข้อมูลเก่า เว้นแต่คุณจะสำรองข้อมูลไว้แล้ว ในกรณีที่คุณสร้างเซ็ตการแก้ไข คุณจะเห็นว่าการเปลี่ยนแปลงจะทำให้ฐานข้อมูลถูกแทนที่ และคุณจะรู้สึกว่าคุณวางแผนตามนั้นก่อนที่จะอัปเดตสแต็ก

เหตุใดจึงต้องมี AWS CloudFormation

ในการสร้างสถาปัตยกรรมที่รองรับสภาพแวดล้อมการยอมรับ การผลิต และการทดสอบ จำเป็นต้องมี AWS CloudFormation ที่สามารถช่วยในการทำกิจกรรมบางอย่างในลักษณะเดียวกันได้ กิจกรรมทั่วไปที่ดำเนินการโดย CloudFormation สำหรับการสร้างสถาปัตยกรรมนี้คือการเปิดตัวอินสแตนซ์ การสร้างตัวโหลดบาลานซ์ การติดตั้งที่จำเป็น การแนบอินสแตนซ์เข้ากับตัวโหลดบาลานซ์ การสร้าง RDS และการกำหนดค่ากลุ่มความปลอดภัย EC2 การสร้างและการกำหนดค่ากลุ่มความปลอดภัย และการสร้างอัตโนมัติ - กลุ่มสเกล

เทมเพลต AWS CloudFormation สำหรับ ระบบอัตโนมัติของโครงสร้างพื้นฐาน คือไฟล์ JSON ที่โดยพื้นฐานแล้วมีวัตถุประสงค์เพื่อเป็นเครื่องมือที่ทรงพลังที่สามารถจัดการทุกสิ่งที่สำคัญได้ โดยพื้นฐานแล้วจะช่วยในการระบุความจำเป็นของทรัพยากรในขณะที่ CloudFormation ให้อำนาจคุณด้วยการจัดหาทรัพยากรในรูปแบบที่คาดการณ์ได้

สถานการณ์ที่ AWS CloudFormation สามารถใช้ได้

AWS CloudFormation ช่วยในการปรับใช้หรืออัปเกรดเทมเพลตและการรวบรวมทรัพยากรด้วยการใช้ AWS Management Console, AWS Command Line Interface และ API กรณีการใช้งานจะไม่ถูกเรียกเก็บเงินเพิ่มเติม เนื่องจากคุณจะต้องชำระเงินสำหรับทรัพยากร AWS ที่มีความสำคัญสำหรับการเรียกใช้แอปพลิเคชันเฉพาะเท่านั้น

ดังนั้นจึงสรุปได้ว่า AWS CloudFormation เป็น โครงสร้างพื้นฐานเป็นโค้ด ซึ่งจริงๆ แล้วหมายความว่าสามารถใช้อ่าน ใช้ซ้ำ และตรวจสอบสิ่งต่างๆ ได้ ด้านล่างนี้ เราจะเห็นบางสถานการณ์ที่ใช้ AWS CloudFormation ซึ่งจะช่วยในการรับความชัดเจนที่ดีขึ้นมาก

AWS Cloud Formation ช่วยในการทำสิ่งต่อไปนี้:

1. การจัดการโครงสร้างพื้นฐานอย่างง่าย

ในการสร้างเว็บแอปพลิเคชันที่ปรับขนาดได้ซึ่งมีฐานข้อมูลแบ็กเอนด์ด้วย คุณอาจใช้กลุ่ม Auto Scaling, อินสแตนซ์ฐานข้อมูล Amazon Relational Database Service และโหลดบาลานเซอร์ Elastic Load Balancing

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

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

2. ทำซ้ำโครงสร้างพื้นฐานของคุณ

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

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

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

3. การควบคุมการเปลี่ยนแปลงที่เกิดขึ้นกับโครงสร้างพื้นฐาน

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

การควบคุมด้วยตนเอง การติดตามการเปลี่ยนแปลง และการอัปเกรดอาจเป็นความพยายามที่ซับซ้อน และสำหรับสิ่งเหล่านี้ จำเป็นต้องจดจำตำแหน่งของทรัพยากรที่เปลี่ยนแปลงไป การใช้ AWS CloudFormation ช่วยให้เทมเพลตสามารถอธิบายทรัพยากรที่จัดเตรียมไว้และอธิบายการตั้งค่าอย่างละเอียด การติดตามการเปลี่ยนแปลงโครงสร้างพื้นฐานระหว่างเทมเพลตไฟล์ข้อความกลายเป็นเรื่องง่าย

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

บทสรุป

รายละเอียดที่กล่าวข้างต้นมักเกี่ยวข้องกับ AWS CloudFormation นี่คือข้อมูลเชิงลึกที่เน้นไปที่ฟังก์ชันการทำงานของ CloudFormation และความสะดวกสบายสำหรับผู้ใช้ในการเรียกใช้แอปพลิเคชันของตน

AWS CloudFormation ทำให้แนวทางปฏิบัติที่ดีที่สุดเป็นไปโดยอัตโนมัติและปรับขนาดโครงสร้างพื้นฐานในระดับโลกด้วย สิ่งที่ดีที่สุดคือช่วยให้คุณสามารถผสานรวม CloudFormation กับบริการอื่นๆ ของ AWS คุณยังสามารถมีความสามารถเพียงพอที่จะจัดการทรัพยากรส่วนตัวและทรัพยากรบุคคลที่สาม

หากคุณต้องการใช้ AWS CloudFormation คุณต้องใช้ บริการที่ปรึกษาของ AWS ที่สามารถช่วยในการทำความเข้าใจรายละเอียดเพิ่มเติม มีความรู้เกี่ยวกับสิ่งที่คุณกำลังจะผสานรวม และใช้งานแอปพลิเคชันได้อย่างราบรื่น ติดต่อเพื่อทราบข้อมูลเพิ่มเติม