จะเริ่มต้นใช้งาน AWS CloudFormation ได้อย่างไร

Ca Reim Tn Chi Ngan Aws Cloudformation Di Xyangri



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

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

โครงร่างด่วน







บทความนี้ครอบคลุมแง่มุมต่อไปนี้ของ CloudFormation:



การก่อตัวของเมฆคืออะไร?

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



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





เหตุใดจึงควรใช้ CloudFormation

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

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



AWS CloudFormation ทำงานอย่างไร

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

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

แนวคิดหลักของ AWS CloudFormation คืออะไร

AWS CloudFormation มีองค์ประกอบหลักสองส่วน ได้แก่ เทมเพลตและสแต็ก:

แม่แบบ

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

  • เวอร์ชัน: สิ่งนี้จะระบุและกำหนดความสามารถของเทมเพลตโดยขึ้นอยู่กับเวอร์ชันของเทมเพลต
  • คำอธิบาย: รวมถึงความคิดเห็นเกี่ยวกับเทมเพลต เช่น วัตถุประสงค์หรือเหตุผลในการสร้างเทมเพลต เป็นต้น
  • ข้อมูลเมตา: ข้อมูลเมตาประกอบด้วยการกำหนดค่าโดยละเอียดของเทมเพลต
  • พารามิเตอร์: “พารามิเตอร์” คือส่วนเสริมที่ใช้เมื่อใดก็ตามที่มีการสร้างหรืออัปเดตสแต็ก ส่วนพารามิเตอร์ใช้เพื่อปรับแต่งเทมเพลตโดยใช้ค่าอินพุตแบบกำหนดเอง
  • การแมป: ใช้เพื่อจับคู่คู่คีย์-ค่า คีย์จะจับคู่กับค่าที่เกี่ยวข้องที่ให้ไว้
  • เงื่อนไข: ส่วนนี้ใช้เพื่อระบุคำสั่งที่ต้องปฏิบัติตามเมื่อสร้างสแต็ก
  • ทรัพยากร: เป็นส่วนที่จำเป็นซึ่งใช้ในการประกาศทรัพยากร AWS สำหรับสแต็ก
  • เอาท์พุท: ส่วนนี้เกี่ยวข้องกับเอาต์พุตที่จะแสดงบน CloudFormation Console

ซ้อนกัน

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

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

หมายเหตุ: เปลี่ยนชุด

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

จะเริ่มต้นใช้งาน AWS CloudFormation ได้อย่างไร

หากต้องการเริ่มต้นใช้งาน AWS CloudFormation ให้ทำตามขั้นตอนที่กล่าวถึงด้านล่างอย่างระมัดระวัง:

ขั้นตอนที่ 1: คอนโซลการจัดการ AWS

ค้นหา “คลาวด์ฟอร์เมชั่น” บริการจากแถบค้นหาของ AWS Management Console หลังจากเข้าสู่ระบบบัญชีของคุณ คลิกที่ชื่อบริการจากผลลัพธ์ที่แสดง:

ขั้นตอนที่ 2: สร้างสแต็ก

แตะที่ “สร้างสแต็ค” ปุ่มจากคอนโซลของ AWS CloudFormation:

ขั้นตอนที่ 3: เตรียมเทมเพลต

ในอินเทอร์เฟซถัดไป มีสามตัวเลือกที่แสดงอยู่ใต้ “เตรียมแม่แบบ” ส่วน:

  • เทมเพลตพร้อมแล้ว: ผู้ใช้สามารถเลือก S3 Bucket URL ที่จะอัปโหลดเทมเพลตแบบกำหนดเองได้
  • ใช้เทมเพลตตัวอย่าง: เทมเพลตเหล่านี้จัดทำโดย AWS
  • สร้างเทมเพลตใน Designer : ผู้ใช้ยังสามารถสร้างเทมเพลตได้โดยใช้เครื่องมือ CloudFormation Designer

สำหรับการสาธิตนี้ ให้เลือก “ใช้เทมเพลตตัวอย่าง” ตัวเลือก:

ขั้นตอนที่ 4: เลือกเทมเพลต

ใน “เลือกเทมเพลตตัวอย่าง” ส่วน ให้เลือกก 'โคมไฟ' เทมเพลต (Linux, Apache, MySQL, PHP) ที่อยู่ในหมวดหมู่ของ 'เรียบง่าย' เทมเพลตจากรายการแบบเลื่อนลง:

หากต้องการดูเทมเพลตใน CloudFormation Designer ให้คลิก “ดูในตัวออกแบบ” ปุ่ม:

ซึ่งจะเป็นการเปิดเทมเพลตในมุมมองของนักออกแบบ ผู้ใช้สามารถเลือกภาษาของเทมเพลต ซูมเข้าหรือออกเทมเพลต เลือกประเภททรัพยากร ฯลฯ

ขั้นตอนที่ 5: แตะปุ่ม 'ถัดไป'

กลับไปที่คอนโซลเริ่มต้นของ CloudFormation คลิก 'ต่อไป' ปุ่มที่อยู่ด้านล่างของอินเทอร์เฟซ:

ขั้นตอนที่ 6: รายละเอียดการกำหนดค่า

ระบุชื่อสำหรับสแต็กใน “ชื่อกอง” ช่องข้อความ:

ถัดมาเป็น “พารามิเตอร์” ส่วน. ที่ “ดีบีเนม” มีให้เป็น ค่าเริ่มต้น โดย AWS อย่างไรก็ตาม ผู้ใช้ยังสามารถระบุชื่อที่กำหนดเองสำหรับฐานข้อมูลของตนได้ ระบุรหัสผ่านใน “DBPassword” และ “DBRootPassword” ช่องข้อความ ในทำนองเดียวกัน ให้ระบุชื่อผู้ใช้ใน “ดีบียูเซอร์” ช่องข้อความ:

เลือกประเภทของอินสแตนซ์จากรายการแบบเลื่อนลงของช่องข้อความประเภทอินสแตนซ์ ระบุชื่อคู่คีย์ใน “ชื่อคีย์” . ผู้ใช้ยังสามารถเลือกรายการใดก็ได้ คีย์ที่มีอยู่ สำหรับอินสแตนซ์ EC2 หลังจากการกำหนดค่านี้ ให้แตะ 'ต่อไป' ปุ่มเพื่อดำเนินการต่อ:

ขั้นตอนที่ 7: การกำหนดค่าตัวเลือกสแต็ก

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

คงการตั้งค่าไว้เป็นค่าเริ่มต้นสำหรับการสาธิตนี้ คลิก 'ต่อไป' ปุ่มที่ด้านล่างของอินเทอร์เฟซ:

ขั้นตอนที่ 8: ตรวจสอบข้อมูล

บนอินเทอร์เฟซถัดไป การกำหนดค่าของสแต็ก จะแสดงให้ผู้ใช้ตรวจสอบ:

หลังจากตรวจสอบข้อมูลสแต็กอย่างละเอียดแล้ว ให้เลื่อนไปที่ด้านล่างของอินเทอร์เฟซแล้วคลิก 'ส่ง' ปุ่มเพื่อสร้างสแต็ก:

ขั้นตอนที่ 9: ความคืบหน้า

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

แตะที่ 'เหตุการณ์' แท็บและข้อมูลที่เกี่ยวข้องกับสแต็กจะปรากฏขึ้น ที่นี่ ขณะนี้ CloudFormation กำลังสร้างอินสแตนซ์เว็บเซิร์ฟเวอร์และกลุ่มความปลอดภัยที่แตกต่างกันสำหรับอินสแตนซ์ EC2 ข้อผิดพลาดใดๆ ที่เกิดขึ้นขณะสร้างสแต็กจะปรากฏที่นี่ด้วย:

สร้างสแต็กสำเร็จแล้ว:

แตะที่ 'ทรัพยากร' แท็บเพื่อดูทรัพยากรที่สร้างโดย CloudFormation ที่นี่ในแท็บทรัพยากร ข้อมูลเกี่ยวกับอินสแตนซ์เว็บเซิร์ฟเวอร์และกลุ่มความปลอดภัยของอินสแตนซ์ EC2 จะปรากฏขึ้น:

หากต้องการดูผลลัพธ์ของ CloudFormation ให้แตะ URL ที่กำหนดไว้ภายใต้ 'ค่า' ส่วนหลังจากคลิก “เอาท์พุท” แท็บ:

ต่อไปนี้เป็นผลลัพธ์ของสแต็กที่เราสร้างขึ้นโดยใช้เทมเพลต LAMP:

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

นั่นคือทั้งหมดจากส่วนนี้

เคล็ดลับโบนัส: จะลบ Stack ใน CloudFormation ได้อย่างไร

แทนที่จะลบทรัพยากรทั้งหมดด้วยตนเอง ผู้ใช้สามารถลบ Stack และทรัพยากรทั้งหมดจะถูกล้างข้อมูลในที่สุด เพื่อจุดประสงค์นี้ ให้ไปที่ CloudFormation Dashboard แล้วคลิก 'ลบ' ปุ่ม:

จากกล่องโต้ตอบที่แสดง คลิก 'ลบ' ปุ่ม:

ตอนนี้สถานะของ Stack เปลี่ยนเป็น “ DELETE_IN_PROGRESS” :

ที่นี่ สแต็กถูกลบเรียบร้อยแล้ว:

อินสแตนซ์ EC2 ได้รับแล้ว ลบแล้ว สำเร็จด้วย:

นั่นคือทั้งหมดจากคู่มือนี้

ประโยชน์ของการใช้ AWS CloudFormation คืออะไร

ต่อไปนี้คือประโยชน์ของการใช้ AWS CloudFormation:

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

ราคาสำหรับ AWS CloudFormation คืออะไร

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

บทสรุป

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