คำถามที่พบบ่อยเกี่ยวกับ AWS Cloud Development Kit

ข้อมูลทั่วไป

AWS Cloud Development Kit (AWS CDK) เป็นเฟรมเวิร์กการพัฒนาซอฟต์แวร์แบบโอเพนซอร์สสำหรับการกำหนดโครงสร้างพื้นฐานระบบคลาวด์เป็นรหัสด้วยภาษาเขียนโปรแกรมที่ทันสมัยและปรับใช้ผ่าน AWS CloudFormation

คุณสามารถใช้ AWS CDK Command Line Interface (CLI) เพื่อโต้ตอบกับแอปพลิเคชัน CDK ของคุณได้ CDK CLI ช่วยให้คุณสามารถแสดงรายการสแตกที่กำหนดไว้ในแอป CDK ของคุณ, สังเคราะห์สแตกเป็นเทมเพลต CloudFormation, กำหนดความแตกต่างระหว่างการเรียกใช้อินสแตนซ์สแตกและสแตกที่กำหนดไว้ในรหัส CDK ของคุณ และปรับใช้สแตกกับทุกรีเจี้ยน AWS ที่เป็นสาธารณะได้

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

วิธีที่ดีที่สุดในการเริ่มต้นใช้งาน AWS CDK คือการทำงานผ่านส่วนเริ่มต้นใช้งานของคู่มือนักพัฒนา AWS CDK ภายในไม่กี่นาที คุณก็สามารถกำหนดและปรับใช้แอปพลิเคชัน AWS CDK แรกของคุณได้ สำหรับบทแนะนำสอนการใช้งานที่มีเนื้อหาเชิงลึกเพิ่มเติม โปรดดูที่ https://CDKworkshop.com

มี คุณสามารถค้นหาตัวอย่าง AWS CDK มากมายในภาษาการเขียนโปรแกรมหลายภาษาได้ที่ https://github.com/aws-samples/aws-cdk-examples คู่มือนักพัฒนา AWS ยังมีตัวอย่างมากมายที่ https://docs.thinkwithwp.com/cdk/latest/guide/examples.html

AWS สร้างตรรกะทางธุรกิจของแพคเกจ AWS Construct Library ใน TypeScript และให้การแมปในภาษาการเขียนโปรแกรมที่รองรับแต่ละภาษา ซึ่งรับรองว่าพฤติกรรมโครงสร้างของ AWS CDK นั้นจะเป็นภาษาที่สอดคล้องกับภาษานั้นๆ ซึ่งช่วยให้มีชุดแพคเกจโครงสร้างที่ครอบคลุมพร้อมให้บริการในทุกภาษา รหัสที่คุณเขียนในโปรเจกต์ AWS CDK ของคุณนั้นล้วนแล้วแต่เป็นเนทีฟในภาษาการเขียนโปรแกรมที่คุณต้องการ และรันไทม์ JavaScript ก็เป็นรายละเอียดการใช้งานอย่างหนึ่งเพื่อประสบการณ์การเขียนโปรแกรมของคุณ คุณสามารถอ้างอิงโปรเจกต์ jsii ได้ที่ https://github.com/aws/jsii

โค้ด AWS CDK เป็นแบบโอเพนซอร์สและพร้อมให้บริการผ่าน GitHub ที่ https://github.com/awslabs/aws-cdk

หากต้องการโยกย้ายแอปของคุณไปยัง AWS CDK v2 ก่อนอื่นให้อัปเดตการตั้งค่าสถานะคุณสมบัติใน cdk.json จากนั้นจึงอัปเดตการขึ้นต่อกันและการนำเข้าแอปของคุณตามความจำเป็นสำหรับภาษาการเขียนโปรแกรม คุณสามารถเรียนรู้เพิ่มเติมได้ที่: https://docs.thinkwithwp.com/cdk/latest/guide/work-with-cdk-v2.html

เรากำลังพัฒนา AWS CDK อย่างเปิดเผย และเรายินดีต้อนรับทุกคนที่ต้องการมีส่วนร่วมในฐานโค้ดของเรา คุณสามารถเรียนรู้เพิ่มเติมได้ที่ https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md

โดยทั่วไปแล้ว AWS CDK สามารถใช้งานได้ใน JavaScript, TypeScript, Python, Java, C# และ Go (ในตัวอย่างสำหรับนักพัฒนา) เรากำลังวางแผนที่จะผูก AWS CDK กับภาษาอื่นๆ ในอนาคต ดังนั้นโปรดลงคะแนนเสียงให้กับภาษาโปรดของคุณใน GitHub

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

เนื่องจาก AWS CDK ใช้ประโยชน์จาก CloudFormation แอปพลิเคชัน AWS CDK จึงอยู่ภายใต้ข้อจำกัดเดียวกันกับที่กำหนดโดยบริการ CloudFormation

AWS Solutions Constructs เป็นส่วนขยายไลบรารีแบบโอเพนซอร์สของ AWS CDK AWS Solutions Constructs มอบชุดของรูปแบบสถาปัตยกรรมหลายบริการที่ได้รับการตรวจสอบแก่คุณโดยใช้แนวทางปฏิบัติที่ดีที่สุดที่กำหนดโดย AWS Well-Architected Framework AWS Solutions Constructs จำเป็นต้องมีการติดตั้ง AWS CDK เป็นข้อกำหนดเบื้องต้น สำหรับคำแนะนำเกี่ยวกับวิธีเพิ่ม AWS Solutions Constructs ในสภาพแวดล้อม AWS CDK โปรดดูคู่มือการพัฒนาของเรา

AWS Construct Library

โครงสร้าง AWS CDK ได้รับการส่งมอบผ่าน AWS Construct Library และแสดงให้เห็นถึงแนวความคิดของตรรกะโครงสร้างพื้นฐานระบบคลาวด์ที่จัดทำเป็นแพคเกจสำหรับการนำกลับมาใช้อีกครั้ง สามารถกำหนดโครงสร้างในระบบหรือเผยแพร่ให้กับตัวจัดการแพคเกจได้ เช่น npm, Maven, NuGet หรือ PyPI สำหรับการแบ่งปันข้ามองค์กร

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

เราคง AWS Construct Library ให้สอดคล้องกับข้อกำหนดด้านทรัพยากรของ CloudFormation โดยการเพิ่มคุณสมบัติ CloudFormation ใหม่ๆ ให้กับ AWS CDK เพียงไม่นานหลังจากการเผยแพร่

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

CloudFormation และ SAM

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

ทั้งโมเดลแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ของ AWS และ AWS CDK ต่างก็สกัดโครงสร้างพื้นฐาน AWS เป็นโค้ด ทำให้ง่ายต่อการกำหนดโครงสร้างพื้นฐานระบบคลาวด์ของคุณมากขึ้น AWS SAM มุ่งเน้นไปที่กรณีใช้งานแบบไร้เซิร์ฟเวอร์และสถาปัตยกรรมโดยเฉพาะ และช่วยให้คุณสามารถกำหนดโครงสร้างพื้นฐานของคุณในเทมเพลต JSON/YAML ที่มีขนาดพกพาและเปิดเผย AWS CDK เสนอการครอบคลุมที่กว้างทั่วทั้งบริการของ AWS และช่วยให้คุณสามารถกำหนดโครงสร้างพื้นฐานระบบคลาวด์ในภาษาโปรแกรมที่ทันสมัย เช่น TypeScript, Python, C# และ Java ทั้ง AWS SAM และ AWS CDK ใช้ประโยชน์จาก CloudFormation ในฐานะกลไกการจัดเตรียมสำหรับสแต็กโครงสร้างพื้นฐานของคุณ หากคุณต้องการกำหนดโครงสร้างพื้นฐานแบบไร้เซิร์ฟเวอร์ของคุณในเทมเพลตที่เปิดเผยและใช้งานง่าย SAM จะเหมาะสมกว่า หากคุณต้องการกำหนดโครงสร้างพื้นฐาน AWS ในภาษาโปรแกรมที่คุ้นเคย เราแนะนำให้คุณลองใช้ AWS CDK ไม่ว่ากรณีใด คุณสามารถพึ่งพาการติดตั้งใช้โครงสร้างพื้นฐานที่ปลอดภัยและทำซ้ำได้ผ่าน CloudFormation

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

ค่าใช้จ่าย

AWS CDK มีการแจกจ่ายภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 ดูข้อมูลเพิ่มเติมได้ที่ใบอนุญาตและประกาศ

ไม่มีค่าบริการเพิ่มเติมสำหรับ AWS CDK คุณชำระค่าบริการสำหรับทรัพยากร AWS (เช่น Amazon EC2 instance หรือโหลดบาลานเซอร์ Elastic Load Balancing) ที่สร้างโดยใช้ AWS CDK ในแบบเดียวกับที่คุณจ่ายสำหรับทรัพยากรที่สร้างขึ้นด้วยตนเอง คุณชำระค่าบริการเฉพาะส่วนที่คุณใช้เท่านั้น ตามที่คุณใช้จริง ไม่มีค่าธรรมเนียมขั้นต่ำและไม่มีภาระผูกพันล่วงหน้าที่จำเป็น