งานความหมายคือชุดของ 1 หรือมากกว่าภาชนะการกำหนดค่า งานบางอย่างอาจต้องการเพียงคอนเทนเนอร์เดียวในขณะที่งานอื่น ๆ อาจต้องใช้คอนเทนเนอร์ที่เชื่อมโยงกัน 2 หรือมากกว่าซึ่งทำงานพร้อมกัน นิยามงานช่วยให้คุณสามารถระบุว่าจะใช้อิมเมจ Docker ใดพอร์ตใดที่จะเปิดเผยจำนวน CPU และหน่วยความจำที่จะจัดสรรวิธีรวบรวมบันทึกและกำหนดตัวแปรสภาพแวดล้อม
งานจะถูกสร้างขึ้นเมื่อคุณเรียกใช้งานได้โดยตรงซึ่งการเปิดตัวตู้คอนเทนเนอร์ (s) (ที่กำหนดไว้ในคำนิยามของงาน) จนกว่าพวกเขาจะหยุดการทำงานหรือออกได้ด้วยตัวเองที่จุดที่พวกเขาจะไม่ได้ถูกแทนที่โดยอัตโนมัติ การเรียกใช้ Tasks โดยตรงเหมาะอย่างยิ่งสำหรับงานวิ่งระยะสั้นบางทีอาจเป็นตัวอย่างของสิ่งที่สำเร็จผ่าน CRON
บริการจะใช้ในการรับประกันว่าคุณมักจะมีจำนวนบางส่วนของงานที่ทำงานตลอดเวลา หากคอนเทนเนอร์ของงานออกเนื่องจากข้อผิดพลาดหรืออินสแตนซ์ EC2 ที่อยู่เบื้องหลังล้มเหลวและถูกแทนที่บริการ ECS จะแทนที่งานที่ล้มเหลว นี่คือเหตุผลที่เราสร้างคลัสเตอร์เพื่อให้บริการมีทรัพยากรมากมายในแง่ของพอร์ต CPU หน่วยความจำและเครือข่ายที่จะใช้ สำหรับเราแล้วมันไม่สำคัญว่า Tasks จะรันบนอินสแตนซ์ใดตราบเท่าที่รัน การกำหนดค่าบริการอ้างถึงข้อกำหนดงาน บริการเป็นผู้รับผิดชอบในการสร้างงาน
โดยทั่วไปแล้วบริการจะใช้สำหรับแอปพลิเคชันที่ทำงานเป็นเวลานานเช่นเว็บเซิร์ฟเวอร์ ตัวอย่างเช่นหากฉันปรับใช้เว็บไซต์ของฉันที่ขับเคลื่อนโดย Node.JS ในโอเรกอน (us-west-2) ฉันอยากจะบอกว่าอย่างน้อยสามงานที่ทำงานใน Availability Zone (AZ) ทั้งสามแห่งเพื่อประโยชน์ของ High-Availability หากล้มเหลวฉันมีอีกสองคนและคนที่ล้มเหลวจะถูกแทนที่ (อ่านว่าการรักษาตัวเอง !) การสร้างบริการเป็นวิธีการดำเนินการนี้ หากฉันมีอินสแตนซ์ EC2 6 รายการในคลัสเตอร์ 2 ต่อ AZ บริการจะปรับสมดุลของงานข้ามโซนโดยอัตโนมัติให้ดีที่สุดขณะเดียวกันก็พิจารณาทรัพยากรซีพียูหน่วยความจำและเครือข่ายด้วย
อัพเดท:
ฉันไม่แน่ใจว่าการคิดสิ่งเหล่านี้ตามลำดับชั้นจะช่วยได้หรือไม่
จุดสำคัญอีกประการหนึ่งคือบริการสามารถกำหนดค่าให้ใช้ตัวจัดสรรภาระงานได้เพื่อที่จะสร้างงานนั่นคือการเรียกใช้คอนเทนเนอร์ที่กำหนดไว้ในการกำหนดงานบริการจะลงทะเบียนอินสแตนซ์ EC2 ของคอนเทนเนอร์โดยอัตโนมัติด้วยตัวจัดสรรภาระงาน ไม่สามารถกำหนดค่างานให้ใช้ตัวจัดสรรภาระงานได้มีเพียงบริการเท่านั้นที่ทำได้