AWS IoT Greengrass คืออะไร? การแนะนำฟังก์ชันของ AWS IoT ในปี 2023

แนะนำ Service IoT ที่จะช่วยให้คุณจัดการ Edge device หรือคอมพิวเตอร์ที่ควบคุมอุปกณ์หน้างาน ได้ง่ายขึ้น
2023.08.15

สวัสดีครับ ต้า ครับ

ในบทความนี้เราจะมาทำความรู้จักเกี่ยวกับ AWS IoT Greengrass กันครับ โดยในบทความนี้จะเน้นไปที่ AWS IoT Greengrass V2 กันครับ แต่ใครที่อยากใช้งาน V1 ก็สามารถนำเนื้อหาในบทความนี้ไปอ้างอิงได้บางส่วน และสามารถตรวจสอบความแตกต่างระหว่าง V1 และ V2 ได้ในหัวข้อ "ความแตกต่างระหว่าง V1 กับ V2" ครับ

ภาพรวม

AWS IoT Greengrass คือ open source IoT Edge Runtime(เครื่องมือที่ช่วยในการพัฒนาหรือทดสอบ Application ที่ทำงานที่สภาพแวดล้อมหน้างาน ที่ใช้ Web standard API) และ cloud service ที่จะช่วยคุณในการ build, deploy หรือ manage IoT applications บน Device ของคุณ หรือจะสรุปง่ายๆ ก็คือ "ช่วยประมวลผลข้อมูลให้กับ Device หรือ Server ของ local device ที่อยู่หน้างานด้วย Cloud service" นั่นเองครับ

อ้างอิง: What is AWS IoT Greengrass? - AWS IoT Greengrass

ข้อดีและ Use case ของ Greengrass

Greengrass จะมีฟังก์ชันต่างๆที่ช่วยเพิ่มความเร็วในการ Edge Computing โดยเราจะทำการเปรียบในหัวข้อต่างๆในกรณีที่ใช้ Greengrass และไม่ใช้ Greengrass ว่าจะมีความแตกต่างอะไร Greengrass จะช่วยเราจัดการอะไรบ้างครับ

หัวข้อเปรียบเทียบ Greengrass no Greengrass
การพัฒนา Application บน Device ・ในกรณีของ Lambda สามารถใช้วิธีการพัฒนาปกติที่ใช้กับ Lambda ได้เลย
・ใช้ Greengrass API ในการ Deploy Application
จำเป็นต้องคิด เตรียมวิธีการพัฒนาล่วงหน้า และเตรียมหลังบ้านสำหรับ Deploy เอง
การสื่อสารระหว่าง Egde Device Greengrass Core สามารถใช้ MQTT broker ได้ จำเป็นต้องเตรียมระบบล่วงหน้าเอง
ความสามารถในการเชื่อมต่อ AWS Service มีฟังก์ชั่น Connector สำหรับใช้ในการเชื่อมต่อไปยังหลากหลาย Service ไม่จำเป็นต้องจัดการติดตั้งด้วยตนเอง จำเป็นต้องจัดการติดตั้งด้วยตัวเอง
การใช้งาน industrial protocol มีฟังก์ชั่น Connector ทำให้สามารถใช้งานได้ จำเป็นต้องจัดการติดตั้งด้วยตัวเอง

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

นอกจากฟังก์ชันต่างๆที่ยกตัวอย่างไปแล้วนั้น ก็ยังมีฟังก์ชันอื่นๆอีกที่สามารถทำให้การ Edge computing หลายๆกรณีทำได้สะดวกมากขึ้น
แต่ที่พูดมานี้นั้นก็ต้องมาให้ท่านพูดอ่านลองไปปรับใช้กับสภาพแวดล้อมงานของตัวเองด้วยเพราะ อาจจะต้องใช้การเรียนรู้ใหม่(ปรับตัว)หรือค่าใช้จ่ายอาจจะไม่เหมาะกับงานที่ต้องใช้ ซึ่งต้องให้ไปพิจารณากันเองครับ

โครงสร้างของ AWS IoT Greengrass

AWS IoT Greengrass จะมี Client Software ที่เรียกว่า AWS IoT Greengrass Core โดยจะทำงานบน Windows หรือ Linux distributions(เช่น Ubuntu หรือ Raspberry Pi OS) ที่เป็น ARM หรือ x86 architectures เมื่อเราใช้ AWS IoT Greengrass คุณสามารถเขียนโปรแกรม ให้ข้อมูลที่ถูกสร้างขึ้นที่ local รันตามที่ machine learning model คาดการณ์ และรวบรวมหรือกรองข้อมูลของ Device ได้
AWS IoT Greengrass ช่วยให้สามารถ local execution ฟังก์ชัน AWS Lambda, คอนเทนเนอร์ Docker, native OS processes หรือรันไทม์แบบกำหนดเองที่คุณเลือกได้

AWS IoT Greengrass นำเสนอโมดูลซอฟต์แวร์ที่สร้างไว้ล่วงหน้าซึ่งเรียกว่า component ซึ่งจะช่วยทำให้คุณสามารถขยายฟังก์ชันของ Edge device ได้ง่ายขึ้น เมื่อเราใช้ component จะทำให้สามารถเชื่อมต่อไปยัง AWS Service หรือ 3rd Party Application ด้วย Edge ได้ และหลังจากสร้าง IoT Application เสร็จแล้ว AWS IoT Greengrass ก็สามารถใช้ remotely deploy, configure, และ manage ไปยัง Application ของ Device ที่อยู่ หน้างาน

ภาพด้านล่างนี้เป็นภาพที่แสดงให้เห็นว่า AWS IoT Greengrass Device ทำงานร่วมกับ AWS Cloud Service อย่างไรครับ


อ้างอิง: How AWS IoT Greengrass works - AWS IoT Greengrass

Concepts key ของ AWS IoT Greengrass

Greengrass core device
device ที่รัน AWS IoT Greengrass core software เราเรียกสิ่งนี้ด้วยว่า AWS IoT thing คุณสามารถรวมหลายๆ core devices เป็น AWS IoT thing groups เพื่อใช้จัดการเป็นกลุ่มได้
Greengrass client device
device ที่สามารถเชื่อมต่อ และ สื่อสาร กับ Greengrass core device ผ่าน MQTT ได้ เราเรียกสิ่งนี้ด้วยว่า AWS IoT thing
core device สามารถประมวลผล กรอง หรือ รวบรวมข้อมูลจาก client device ที่ทำการเชื่อมต่ออยู่กับ คุณสามารถปรับแต่งให้ core device ให้สามารถตอบกลับข้อความ MQTT ระหว่าง Client device โดยไม่ต้องผ่าน internet ได้
Greengrass component
นี่คือ Software module ที่ถูก Deploy ที่ core device ครับ Software ที่ถูก Deploy หรือ พัฒนาที่ AWS IoT Greengrass จะถูกเปลี่ยนเป็น component ครับ
โดย AWS IoT Greengrass มีการให้บริการ public component ที่สร้างเสร็จแล้ว หรือถ้าเราอยากสร้างเองก็สามารถสร้าง custom component ได้
Deployment
กระบวนการในการส่ง component และใช้การกำหนดค่า component ที่ต้องการกับอุปกรณ์เป้าหมายปลายทาง ซึ่งอาจเป็น Greengrass core device ตัวเดียวหรือ Greengrass core device เป็นกลุ่ม

MQTT broker

อย่างที่เขียนไปในหัวข้อที่แล้วๆว่า AWS IoT Greengrass ให้บริการ MQTT broker ซึ่งเจ้าตัวนี้นั้นจะช่วยให้ local device สามารถคุยกันได้ โดยไม่ต้องใช้อินเตอร์เน็ต โดยสามารถอ่านรายละเอียดเพิ่มเติมเกี่ยวกับ MQTT Broker ได้ที่ลิ้งค์ต่อไปนี้ MQTT คืออะไร - คำอธิบายเกี่ยวกับ MQTT Protocol - AWS

Device Shadow

Greengrass core devices สามารถทำงานกับ Device Shadow โดยใช้ component ได้ โดย shadow จะเก็บข้อมูลสถานะต่างๆ ณ ปัจจุบัน หรือ เก็บตามจุดประสงค์ที่เราต้องการในรูปแบบ JSON
โดยสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับ Device Shadow ได้ที่บทความด้านล่างนี้

เริ่มใช้งานอย่างไร

สำหรับ AWS IoT Greengrass V2 นั้นมี tutorial ที่เตรียมไว้สำหรับลองใช้งานแล้ว สามารถตรวจสอบได้ที่บทความต่อไปนี้ได้เลยครับ Tutorial: Getting started with AWS IoT Greengrass V2 - AWS IoT Greengrass (จำเป็นต้องมี Linux device เช่น Raspberry Pi หรือ Windows device ที่สามารติดตั้งและตั้งค่า AWS IoT Greengrass Core software ได้)

ความแตกต่างระหว่าง V1 และ V2

ปํจจุบัน AWS IoT Greengrass มีอยู่ 2 เวอร์ชั่นใหญ่ๆคือ V1 กับ V2
โดย V2 นั้น จะมีการปรับปรุงหลายอย่างจาก V1 เช่น modular applications, การ deploy ไปยังอุปกรณ์จำนวนมาก, และการ support สำหรับ platforms เพิ่มเติม โดยตั้งแต่ วันที่ 30 เดือน 6 ปี 2023 เป็นต้นมา AWS ได้ยกเลิกการอัพเดทฟีเจอร์ แก้บัค หรืออัพเดทเกี่ยวกับความปลอดภัยแล้ว(ตามข้อความด้านล้าง) ผมจึงแนะนำว่าหากใครที่สนใจใช้ AWS IoT Greengrass ให้หันไปพิจารณา V2 จะดีกว่าครับ

After June 30, 2023 AWS IoT Greengrass Version 1 no longer receives feature updates, enhancements, bug fixes, or security patches.
Migrate from AWS IoT Greengrass Version 1 - AWS IoT Greengrass

ส่วนละเอียดเกี่ยวกับความแตกต่างระหว่างทั้ง 2 เวอร์ชั่นนั้นสามารถเข้าไปอ่านในที่บทความต่อไปนี้ได้ครับ Differences between AWS IoT Greengrass V1 and AWS IoT Greengrass V2 - AWS IoT Greengrass

ค่าใช้จ่ายของ Greengrass

สำหรับค่าใช้จ่ายของ AWS IoT Greengrass รีเจี้ยน สิงค์โปร์นั้นจะมีค่าใช้จ่าย โดยสำหรับ 1 อุปกรณ์ที่เราใช้งานจะคิดเป็น 0.18 USD ต่อ เดือนแค่นั้นครับ ราคา AWS IoT Greengrass

ทิ้งท้าย

เป็นยังไงกันบ้างครับกับ Service IoT ที่จะช่วยให้คุณจัดการ Edge device หรือคอมพิวเตอร์ที่ควบคุมอุปกรณ์หน้างาน ได้ง่ายขึ้น
สำหรับใครที่อ่านมาถึงตรงนี้แล้วยังงงๆไม่ค่อยเข้าใจ รอบทความต่อที่ผมจะเขียนบทความปฎิบัติลงมือทำจริง ซึ่งอาจจะทำให้ท่านผู้เข้าใจเกี่ยวกับ Service นี้มากขึ้น
รอติดตามในบทความต่อไปได้เลยครับ

บทความอ้างอิง