อะไรคือความแตกต่างระหว่างงานและบริการใน AWS ECS


114

ดูเหมือนว่าเราสามารถเรียกใช้งานหรือบริการตามข้อกำหนดงาน อะไรคือความแตกต่างและความคล้ายคลึงกันระหว่างงานและบริการ? มีเงื่อนงำในการระบุ "กลุ่มงาน" เมื่อสร้างงาน แต่ไม่ใช่บริการหรือไม่? งานและบริการมีความเท่าเทียมกันตามลำดับชั้นของการสร้างอินสแตนซ์ของ Task Definition หรือบริการประกอบด้วย Tasks หรือไม่

คำตอบ:


236

งานความหมายคือชุดของ 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 ของคอนเทนเนอร์โดยอัตโนมัติด้วยตัวจัดสรรภาระงาน ไม่สามารถกำหนดค่างานให้ใช้ตัวจัดสรรภาระงานได้มีเพียงบริการเท่านั้นที่ทำได้


1
ขอบคุณมาก @talentedmrjones! ถ้าอย่างนั้นมันง่ายเหมือน "ใช้งานสำหรับงานระยะสั้นและใช้บริการสำหรับบริการระยะยาว" หรือไม่? มีโอกาสใดที่คุณจะแสดงความคิดเห็นเกี่ยวกับ "งานและบริการมีความเท่าเทียมกันในการสร้างอินสแตนซ์ของ Task Definition ตามลำดับชั้นหรือบริการประกอบด้วย Tasks"
Bob Jones

สิ่งที่ฉันไม่เข้าใจ: ทำไมเมื่อสร้างงานฉันสามารถเปลี่ยนค่าของตัวแปรสภาพแวดล้อมได้ แต่ดูเหมือนว่าจะไม่สามารถให้บริการได้
Nikolay Klimchuk

1
@NikolayKlimchuk บริการจัดการเฉพาะงาน - เป็นงานที่กำหนดและใช้งานเอง
60

"กลุ่มงาน" คืออะไร
red888

@NikolayKlimchuk ขอโทษที่ตอบช้า บริการใช้เพื่อกำหนดเวลาคอนเทนเนอร์งานใช้เพื่อกำหนดคอนเทนเนอร์ นี่คือเหตุผลที่คุณใช้งานเพื่อควบคุม env vars
talentedmrjones

42

อธิบายเป็นคำพูดได้อย่างสวยงามโดย @talentedmrjones รูปภาพด้านล่างจะช่วยให้คุณเห็นภาพได้อย่างง่ายดาย :)

คลัสเตอร์บริการอินสแตนซ์ EC2 และงานในการดำเนินการ


การสร้างภาพที่ดี! :-)
sgsi

2
หากผู้ชมคำตอบใดต้องการที่จะใช้เวลาดำน้ำลึกลงไปใน Amazon ECS กรุณาเยี่ยมชมfreecodecamp.org/news/... สวยอธิบาย!
realPK

@realPK เพจที่เป็นประโยชน์มากขอบคุณสำหรับคำแนะนำ!
Christophe

2

นิยามงาน:

นี่คือพิมพ์เขียวที่อธิบายว่าคอนเทนเนอร์ Docker ใดที่จะรันและแสดงถึงแอปพลิเคชันของคุณ รวมถึงงานต่างๆ

นิยามงาน

บริการ:

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

อินสแตนซ์คอนเทนเนอร์ ECS:

นี่คืออินสแตนซ์ EC2 ที่มี Docker และ ECS Container Agent ทำงานอยู่ Agent จะดูแลการสื่อสารระหว่าง ECS และอินสแตนซ์โดยให้สถานะของการรันคอนเทนเนอร์และจัดการการรันคอนเทนเนอร์ใหม่

ความสัมพันธ์:

ใส่คำอธิบายภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.