Beanstalk Extensions
แนะนำ Elastic Beanstalk Extensions
เมื่อคุณสร้างไฟล์ zip สำหรับการ Deploy ไปยัง Elastic Beanstalk ไฟล์นั้นจะบรรจุโค้ดของแอปพลิเคชันคุณไว้ แต่คุณยังสามารถใส่ Elastic Beanstalk (EB) Extensions เข้าไปได้ด้วย ซึ่ง Extensions เหล่านี้ช่วยให้คุณสามารถตั้งค่าพารามิเตอร์ได้แบบโปรแกรม (programmatically) คล้ายกับการปรับแต่งค่าผ่าน Elastic Beanstalk Console
โครงสร้างโฟลเดอร์ EB Extensions และรูปแบบไฟล์
-
ไฟล์ตั้งค่าทั้งหมดของ EB Extensions ต้องถูกวางไว้ใน โฟลเดอร์ชื่อ
.ebextensions/ที่อยู่ root ของ source code -
ไฟล์ต้องอยู่ในรูปแบบ YAML หรือ JSON
-
แต่ไม่ว่ารูปแบบจะเป็นอะไร ไฟล์ต้องลงท้ายด้วยนามสกุล
.config- ตัวอย่างเช่น:
logging.config
- ตัวอย่างเช่น:
การแก้ไขค่าพื้นฐานและการเพิ่มทรัพยากร
-
คุณสามารถแก้ไข ค่า default ได้โดยใช้เอกสาร option_settings ภายใน EB Extensions
-
EB Extensions ยังสามารถใช้เพื่อเพิ่มทรัพยากร AWS อื่น ๆ ได้ เช่น:
- RDS
- ElastiCache
- DynamoDB
-
ซึ่งบางทรัพยากรอาจไม่สามารถตั้งค่าได้โดยตรงผ่าน Beanstalk Console
วงจรชีวิตของทรัพยากรที่ถูกจัดการโดย EB Extensions
- ทรัพยากรใด ๆ ที่ถูกสร้างขึ้นโดย EB Extensions จะถูกลบออกทันทีหาก Elastic Beanstalk Environment ถูก Terminate
- เช่น หากคุณสร้าง ElastiCache instance เป็นส่วนหนึ่งของ Environment และคุณลบ Environment นั้น → ElastiCache instance จะถูกลบไปด้วย
ตัวอย่างการใช้งานจริง: การตั้งค่า Environment Variables ด้วย EB Extensions
-
ในโฟลเดอร์โค้ด มีโฟลเดอร์ชื่อ
nodejs-v3-ebextensions -
ภายในมีโฟลเดอร์
.ebextensionsและไฟล์ชื่อenvironment-variables.config- ไฟล์นี้ใช้ YAML format แต่ลงท้ายด้วย .config
-
ในไฟล์มีการใช้ option_settings เพื่อกำหนด Environment Variables เช่น:
DB_URLDB_USER
-
ซึ่งค่าพวกนี้สามารถใช้สำหรับเชื่อมต่อกับทรัพยากรภายนอก เช่น RDS Postgres Database
การ Deploy แอปพลิเคชันที่มี EB Extensions
- แอปพลิเคชันพร้อมโฟลเดอร์
.ebextensions/และไฟล์ config ทั้งหมดจะถูกบีบอัดเป็นไฟล์nodejs-v3-ebextensions.zip - จากนั้นอัปโหลดไปยัง Elastic Beanstalk Environment เพื่อ Deploy
- การ Deploy จะทำบน Development Environment เพื่ออัปเดตได้เร็วขึ้น
- หลังจาก Deploy เสร็จสิ้น Environment จะถูกอัปเดตเป็นเวอร์ชันใหม่ที่รวม EB Extensions ด้วย
การตรวจสอบว่า EB Extensions ถูกนำไปใช้แล้วหรือยัง
- ไปที่ Configuration page ของ Elastic Beanstalk Environment
- เลื่อนลงไปที่ส่วน Environment Properties
- คุณจะพบ Environment Variables เช่น
DB_URLและDB_USERถูกตั้งค่าไว้ - ซึ่งค่าพวกนี้ไม่ได้ถูกตั้งไว้เองใน Console แต่ถูกนำเข้ามาจาก EB Extensions ที่ Deploy ไปแล้ว
สิ่งนี้แสดงให้เห็นถึง พลังและความยืดหยุ่นของ EB Extensions ในการจัดการการตั้งค่าและทรัพยากรต่าง ๆ
บทสรุป
เนื้อหานี้เป็นการแนะนำการใช้ Elastic Beanstalk Extensions สำหรับ:
- การตั้งค่า Environment Variables
- การจัดการทรัพยากร AWS แบบโปรแกรม (programmatically)
ถึงแม้จะเป็นเพียงระดับเบื้องต้น แต่ก็ครอบคลุมความรู้สำคัญสำหรับการจัดการ Elastic Beanstalk Environments อย่างมีประสิทธิภาพ
Key Takeaways (สรุปใจความสำคัญ)
- Elastic Beanstalk Extensions ช่วยให้ตั้งค่าพารามิเตอร์ได้ผ่านโค้ด โดยใช้ไฟล์
.config - ไฟล์ต้องอยู่ในโฟลเดอร์
.ebextensions/และใช้รูปแบบ YAML หรือ JSON - Extensions สามารถใช้ตั้งค่า Environment Variables และเพิ่มทรัพยากร AWS (เช่น RDS, ElastiCache) ได้
- ทรัพยากรที่ถูกสร้างโดย EB Extensions จะถูกลบออกเมื่อ Environment ถูก Terminate