ในโพสต์นี้เราสาธิต Kubeflow บน AWS (การกระจาย Kubeflow เฉพาะสำหรับ AWS) และคุณค่าที่เพิ่มเหนือ Kubeflow โอเพ่นซอร์สผ่านการผสานรวมบริการของ AWS ที่ปรับให้เหมาะสมที่สุดบนระบบคลาวด์และพร้อมสำหรับองค์กร
Kubeflow เป็นแพลตฟอร์มการเรียนรู้ของเครื่องโอเพนซอร์ส (ML) ที่ทุ่มเทให้กับการทำให้เวิร์กโฟลว์ ML ใช้งานได้บน Kubernetes ที่เรียบง่าย พกพาสะดวก และปรับขนาดได้ Kubeflow มีส่วนประกอบมากมาย รวมถึงแดชบอร์ดส่วนกลาง โน้ตบุ๊ก Jupyter สำหรับผู้ใช้หลายคน Kubeflow Pipelines, KFServing และ Katib รวมถึงผู้ดำเนินการฝึกอบรมแบบกระจายสำหรับ TensorFlow, PyTorch, MXNet และ XGBoost เพื่อสร้างเวิร์กโฟลว์ ML ที่เรียบง่าย ปรับขนาดได้ และพกพาได้ .
AWS เพิ่งเปิดตัว Kubeflow v1.4 โดยเป็นส่วนหนึ่งของการแจกจ่าย Kubeflow ของตัวเอง (เรียกว่า Kubeflow บน AWS) ซึ่งปรับปรุงงานด้านวิทยาศาสตร์ข้อมูลและช่วยสร้างระบบ ML ที่น่าเชื่อถือ ปลอดภัย พกพาได้ และปรับขนาดได้สูง พร้อมโอเวอร์เฮดในการดำเนินงานที่ลดลงผ่านการผสานรวมกับบริการที่มีการจัดการของ AWS . คุณสามารถใช้การแจกจ่าย Kubeflow นี้เพื่อสร้างระบบ ML ที่ด้านบนของ บริการ Amazon Elastic Kubernetes (Amazon EKS) เพื่อสร้าง ฝึกฝน ปรับแต่ง และปรับใช้โมเดล ML สำหรับกรณีการใช้งานที่หลากหลาย รวมถึงการมองเห็นด้วยคอมพิวเตอร์ การประมวลผลภาษาธรรมชาติ การแปลคำพูด และการสร้างแบบจำลองทางการเงิน
ความท้าทายกับโอเพ่นซอร์ส Kubeflow
เมื่อคุณใช้โปรเจ็กต์โอเพนซอร์ส Kubeflow โปรเจ็กต์ดังกล่าวจะปรับใช้ระนาบควบคุม Kubeflow และส่วนประกอบระนาบข้อมูลทั้งหมดบนโหนดของผู้ปฏิบัติงาน Kubernetes บริการคอมโพเนนต์ Kubeflow ถูกปรับใช้เป็นส่วนหนึ่งของระนาบการควบคุม Kubeflow และการปรับใช้ทรัพยากรทั้งหมดที่เกี่ยวข้องกับ Jupyter การฝึกโมเดล การปรับแต่ง และการโฮสต์จะถูกปรับใช้บนระนาบข้อมูล Kubeflow เครื่องบินควบคุม Kubeflow และระนาบข้อมูลสามารถทำงานบนโหนดของผู้ปฏิบัติงาน Kubernetes เดียวกันหรือต่างกันได้ โพสต์นี้เน้นที่ส่วนประกอบระนาบควบคุม Kubeflow ดังแสดงในแผนภาพต่อไปนี้
โมเดลการปรับใช้นี้อาจไม่ได้ให้ประสบการณ์ที่พร้อมสำหรับองค์กรเนื่องจากสาเหตุต่อไปนี้:
- ส่วนประกอบโครงสร้างพื้นฐานการยกของหนักของเครื่องบินควบคุม Kubeflow ทั้งหมด รวมถึงฐานข้อมูล ที่เก็บข้อมูล และการตรวจสอบสิทธิ์ ถูกปรับใช้ในโหนดของผู้ปฏิบัติงานคลัสเตอร์ Kubernetes เอง ซึ่งทำให้ยากต่อการนำสถาปัตยกรรมการออกแบบเครื่องบินควบคุม Kubeflow ที่มีความพร้อมใช้งานสูงมาใช้ด้วยสถานะถาวรในกรณีที่โหนดของผู้ปฏิบัติงานล้มเหลว
- ส่วนควบคุมของ Kubeflow ได้สร้างสิ่งประดิษฐ์ (เช่น อินสแตนซ์ MySQL, บันทึกพ็อด หรือพื้นที่จัดเก็บ MinIO) เพิ่มขึ้นเมื่อเวลาผ่านไปและต้องการปริมาณพื้นที่จัดเก็บที่ปรับขนาดได้พร้อมความสามารถในการตรวจสอบอย่างต่อเนื่องเพื่อตอบสนองความต้องการพื้นที่จัดเก็บที่เพิ่มขึ้น เนื่องจากระนาบควบคุม Kubeflow แชร์ทรัพยากรกับปริมาณงานของระนาบข้อมูล Kubeflow (เช่น สำหรับงานฝึกอบรม ไปป์ไลน์ และการปรับใช้) การปรับขนาดที่เหมาะสมและการปรับขนาดคลัสเตอร์ Kubernetes และปริมาณการจัดเก็บข้อมูลอาจกลายเป็นสิ่งท้าทายและส่งผลให้ต้นทุนการดำเนินงานเพิ่มขึ้น
- Kubernetes จำกัดขนาดไฟล์บันทึก โดยการติดตั้งส่วนใหญ่จะจำกัดไว้ที่ 10 MB ล่าสุด โดยค่าเริ่มต้น บันทึกพ็อดจะเข้าถึงไม่ได้หลังจากบันทึกถึงขีดจำกัดสูงสุดนี้ บันทึกอาจไม่สามารถเข้าถึงได้หากพ็อดถูกขับออก ขัดข้อง ถูกลบ หรือกำหนดเวลาไว้บนโหนดอื่น ซึ่งอาจส่งผลต่อความพร้อมใช้งานของบันทึกของแอปพลิเคชันและความสามารถในการตรวจสอบ
Kubeflow บน AWS
Kubeflow บน AWS ให้เส้นทางที่ชัดเจนในการใช้ Kubeflow ด้วยบริการของ AWS ต่อไปนี้:
- แอปพลิเคชัน Load Balancer สำหรับการจัดการการรับส่งข้อมูลภายนอกที่ปลอดภัยผ่าน HTTPS
- อเมซอน คลาวด์วอตช์ สำหรับการจัดการบันทึกถาวร
- AWS Cognito สำหรับการตรวจสอบผู้ใช้ด้วย Transport Layer Security (TLS)
- คอนเทนเนอร์การเรียนรู้เชิงลึกของ AWS สำหรับอิมเมจเซิร์ฟเวอร์โน้ตบุ๊ก Jupyter ที่ปรับให้เหมาะสมที่สุด
- ระบบไฟล์ Amazon Elastic (Amazon EFS) หรือ Amazon FSx สำหรับความมันวาว สำหรับโซลูชันการจัดเก็บไฟล์ที่เรียบง่าย ปรับขนาดได้ และไม่มีเซิร์ฟเวอร์เพื่อเพิ่มประสิทธิภาพการฝึกอบรม
- Amazon EKS สำหรับคลัสเตอร์ Kubernetes ที่มีการจัดการ
- บริการฐานข้อมูลเชิงสัมพันธ์ของ Amazon (Amazon RDS) สำหรับไปป์ไลน์ที่ปรับขนาดได้สูงและที่เก็บข้อมูลเมตา
- ผู้จัดการความลับของ AWS เพื่อปกป้องความลับที่จำเป็นในการเข้าถึงแอปพลิเคชันของคุณ
- บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) สำหรับที่เก็บสิ่งประดิษฐ์ไปป์ไลน์ที่ใช้งานง่าย
การผสานรวมบริการของ AWS กับ Kubeflow (ดังแสดงในแผนภาพต่อไปนี้) ทำให้เราสามารถแยกส่วนสำคัญของส่วนควบคุม Kubeflow ออกจาก Kubernetes ได้ โดยมอบการออกแบบที่ปลอดภัย ปรับขนาดได้ ยืดหยุ่นได้ และคุ้มต้นทุน
มาพูดคุยถึงประโยชน์ของการผนวกรวมบริการแต่ละรายการและโซลูชันเกี่ยวกับการรักษาความปลอดภัย การเรียกใช้ ML ไปป์ไลน์ และพื้นที่จัดเก็บ
การตรวจสอบสิทธิ์ผู้ใช้ Kubeflow อย่างปลอดภัยด้วย Amazon Cognito
การรักษาความปลอดภัยบนคลาวด์ที่ AWS มีความสำคัญสูงสุด และเรากำลังลงทุนในการบูรณาการการรักษาความปลอดภัย Kubeflow เข้ากับบริการรักษาความปลอดภัยความรับผิดชอบร่วมกันของ AWS โดยตรง เช่น:
- Application Load Balancer (ALB) สำหรับการจัดการจราจรภายนอก
- ตัวจัดการใบรับรอง AWS (ACM) เพื่อรองรับ TLS
- บทบาท IAM สำหรับบัญชีบริการ (IRSA) สำหรับการควบคุมการเข้าถึงแบบละเอียดที่ระดับ Kubernetes Pod
- บริการจัดการคีย์ AWS (AWS KMS) สำหรับการจัดการคีย์การเข้ารหัสข้อมูล
- AWS โล่ สำหรับการป้องกัน DDoS
ในส่วนนี้ เราเน้นที่การรวมระนาบการควบคุม AWS Kubeflow กับ Amazon Cognito Amazon Cognito ขจัดความจำเป็นในการจัดการและดูแลรักษาผู้ให้บริการ Dex (โอเพ่นซอร์ส OpenID Connect (OIDC) แบบโอเพนซอร์สซึ่งได้รับการสนับสนุนจากโซลูชัน LDAP ในเครื่อง) สำหรับการตรวจสอบสิทธิ์ผู้ใช้และทำให้การจัดการความลับง่ายขึ้น
คุณยังสามารถใช้ Amazon Cognito เพื่อเพิ่มการลงชื่อสมัครใช้ ลงชื่อเข้าใช้ และการควบคุมการเข้าถึง Kubeflow UI ของผู้ใช้ได้อย่างรวดเร็วและง่ายดาย Amazon Cognito ปรับขนาดเป็นผู้ใช้หลายล้านคนและรองรับการลงชื่อเข้าใช้ด้วยผู้ให้บริการข้อมูลประจำตัวทางสังคม (IdP) เช่น Facebook, Google และ Amazon และ IdP ขององค์กรผ่าน SAML 2.0 ซึ่งช่วยลดความซับซ้อนในการตั้งค่า Kubeflow ของคุณ ทำให้ใช้งานได้น้อยลงและดำเนินการได้ง่ายขึ้นเพื่อให้เกิดการแยกผู้ใช้หลายคน
มาดูขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้หลายคนด้วยการผสานรวม Amazon Cognito, ALB และ ACM กับ Kubeflow บน AWS มีองค์ประกอบหลักหลายประการที่เป็นส่วนหนึ่งของการผสานรวมนี้ Amazon Cognito ได้รับการกำหนดค่าเป็น IdP โดยมีการเรียกกลับการตรวจสอบสิทธิ์ที่กำหนดค่าเพื่อกำหนดเส้นทางคำขอไปยัง Kubeflow หลังจากตรวจสอบสิทธิ์ผู้ใช้ เป็นส่วนหนึ่งของการตั้งค่า Kubeflow ทรัพยากรขาเข้าของ Kubernetes จะถูกสร้างขึ้นเพื่อจัดการการรับส่งข้อมูลภายนอกไปยังบริการ Istio Gateway AWS ALB Ingress Controller จัดเตรียมโหลดบาลานเซอร์สำหรับขาเข้านั้น เราใช้ Amazon เส้นทาง 53 เพื่อกำหนดค่า DNS สาธารณะสำหรับโดเมนที่ลงทะเบียนและสร้างใบรับรองโดยใช้ ACM เพื่อเปิดใช้งานการตรวจสอบสิทธิ์ TLS ที่ตัวโหลดบาลานซ์
ไดอะแกรมต่อไปนี้แสดงเวิร์กโฟลว์ผู้ใช้ทั่วไปของการลงชื่อเข้าใช้ Amazon Cognito และการเปลี่ยนเส้นทางไปยัง Kubeflow ในเนมสเปซที่เกี่ยวข้อง
เวิร์กโฟลว์ประกอบด้วยขั้นตอนต่อไปนี้:
- ผู้ใช้ส่งคำขอ HTTPS ไปยังแดชบอร์ดส่วนกลางของ Kubeflow ซึ่งโฮสต์อยู่เบื้องหลังตัวโหลดบาลานซ์ เส้นทาง 53 แก้ไข FQDN เป็นเรกคอร์ด ALB alias
- หากไม่มีคุกกี้ ตัวโหลดบาลานซ์จะเปลี่ยนเส้นทางผู้ใช้ไปยังจุดสิ้นสุดการอนุญาต Amazon Cognito เพื่อให้ Amazon Cognito ตรวจสอบสิทธิ์ผู้ใช้ได้
- หลังจากที่ตรวจสอบสิทธิ์ผู้ใช้แล้ว Amazon Cognito จะส่งผู้ใช้กลับไปที่ตัวโหลดบาลานซ์พร้อมรหัสการให้สิทธิ์
- ตัวโหลดบาลานซ์แสดงรหัสการให้สิทธิ์แก่ตำแหน่งข้อมูลโทเค็น Amazon Cognito
- เมื่อได้รับรหัสการให้สิทธิ์ที่ถูกต้อง Amazon Cognito จะจัดเตรียมโทเค็น ID และโทเค็นการเข้าถึงเพื่อโหลดบาลานเซอร์
- หลังจากที่ตัวโหลดบาลานซ์ตรวจสอบสิทธิ์ผู้ใช้สำเร็จแล้ว จะส่งโทเค็นการเข้าถึงไปยังจุดปลายข้อมูลผู้ใช้ Amazon Cognito และรับการอ้างสิทธิ์จากผู้ใช้ ตัวโหลดบาลานซ์ลงนามและเพิ่มการอ้างสิทธิ์ของผู้ใช้ในส่วนหัว HTTP
x-amzn-oidc-*
ในรูปแบบคำขอโทเค็นเว็บ JSON (JWT) - คำขอจากตัวโหลดบาลานซ์จะถูกส่งไปยังพ็อดของ Istio Ingress Gateway
- การใช้ตัวกรองของทูต Istio Gateway จะถอดรหัส
x-amzn-oidc-data
ค่า ดึงฟิลด์อีเมล และเพิ่มส่วนหัว HTTP ที่กำหนดเองkubeflow-userid
ซึ่งใช้โดยเลเยอร์การให้สิทธิ์ Kubeflow - นโยบายการควบคุมการเข้าถึงตามทรัพยากรของ Istio ใช้กับคำขอขาเข้าเพื่อตรวจสอบการเข้าถึง Kubeflow Dashboard หากผู้ใช้ไม่สามารถเข้าถึงสิ่งเหล่านั้นได้ การตอบกลับข้อผิดพลาดจะถูกส่งกลับ หากคำขอได้รับการตรวจสอบแล้ว คำขอจะถูกส่งต่อไปยังบริการ Kubeflow ที่เหมาะสมและให้การเข้าถึง Kubeflow Dashboard
ข้อมูลเมตาของคอมโพเนนต์ Kubeflow ที่คงอยู่และพื้นที่จัดเก็บอาร์ติแฟกต์ด้วย Amazon RDS และ Amazon S3
Kubeflow บน AWS ให้การผสานรวมกับ บริการฐานข้อมูลเชิงสัมพันธ์ของ Amazon (Amazon RDS) ใน Kubeflow Pipelines และ AutoML (กะทิบ) สำหรับพื้นที่จัดเก็บข้อมูลเมตาถาวร และ Amazon S3 ใน Kubeflow Pipelines สำหรับพื้นที่จัดเก็บอาร์ติแฟกต์ถาวร มาพูดถึง Kubeflow Pipelines ต่อในรายละเอียดเพิ่มเติมกัน
Kubeflow Pipelines เป็นแพลตฟอร์มสำหรับการสร้างและปรับใช้เวิร์กโฟลว์ ML แบบพกพาที่ปรับขนาดได้ เวิร์กโฟลว์เหล่านี้สามารถช่วยทำให้ไปป์ไลน์ ML ที่ซับซ้อนเป็นแบบอัตโนมัติโดยใช้ส่วนประกอบ Kubeflow ในตัวและแบบกำหนดเอง Kubeflow Pipelines ประกอบด้วย Python SDK, คอมไพเลอร์ DSL เพื่อแปลงโค้ด Python เป็นการกำหนดค่าแบบคงที่, บริการไปป์ไลน์ที่เรียกใช้ไปป์ไลน์จากการกำหนดค่าแบบคงที่ และชุดของตัวควบคุมเพื่อเรียกใช้คอนเทนเนอร์ภายใน Kubernetes Pods ที่จำเป็นในการดำเนินการไปป์ไลน์ให้เสร็จสมบูรณ์
ข้อมูลเมตาของ Kubeflow Pipelines สำหรับการทดลองและการรันไปป์ไลน์จะถูกเก็บไว้ใน MySQL และอาร์ติแฟกต์รวมถึงแพ็คเกจไปป์ไลน์และตัววัดจะถูกเก็บไว้ใน MinIO
ตามที่แสดงในแผนภาพต่อไปนี้ Kubeflow บน AWS ให้คุณจัดเก็บส่วนประกอบต่อไปนี้ด้วยบริการที่มีการจัดการของ AWS:
- ข้อมูลเมตาของไปป์ไลน์ใน Amazon RDS – Amazon RDS มอบสถาปัตยกรรมการปรับใช้ Multi-AZ ที่ปรับขนาดได้ พร้อมใช้งานสูงและเชื่อถือได้ พร้อมกลไกการเฟลโอเวอร์อัตโนมัติในตัวและความจุที่ปรับขนาดได้สำหรับฐานข้อมูลเชิงสัมพันธ์ที่เป็นมาตรฐานอุตสาหกรรม เช่น MySQL มันจัดการงานการดูแลฐานข้อมูลทั่วไปโดยไม่จำเป็นต้องจัดเตรียมโครงสร้างพื้นฐานหรือบำรุงรักษาซอฟต์แวร์
- สิ่งประดิษฐ์ไปป์ไลน์ใน Amazon S3 – Amazon S3 นำเสนอความสามารถในการปรับขนาด ความพร้อมใช้งานของข้อมูล ความปลอดภัย และประสิทธิภาพระดับแนวหน้าของอุตสาหกรรม และสามารถนำมาใช้เพื่อตอบสนองความต้องการของคุณ การปฏิบัติตามข้อกำหนด.
การผสานรวมเหล่านี้ช่วยลดภาระการจัดการและบำรุงรักษาพื้นที่จัดเก็บข้อมูลเมตาดาต้าและอาร์ติแฟกต์จาก Kubeflow ที่จัดการด้วยตนเองไปยังบริการที่มีการจัดการของ AWS ซึ่งตั้งค่า ดำเนินการ และปรับขนาดได้ง่ายขึ้น
รองรับระบบไฟล์แบบกระจายด้วย Amazon EFS และ Amazon FSx
Kubeflow สร้างขึ้นจาก Kubernetes ซึ่งจัดเตรียมโครงสร้างพื้นฐานสำหรับการประมวลผลข้อมูลแบบกระจายขนาดใหญ่ รวมถึงการฝึกอบรมและการปรับแต่งโมเดลขนาดใหญ่ด้วยเครือข่ายที่ลึกซึ่งมีพารามิเตอร์นับล้านหรือหลายพันล้านตัว เพื่อรองรับระบบ ML การประมวลผลข้อมูลแบบกระจายดังกล่าว Kubeflow บน AWS ให้การผสานรวมกับบริการจัดเก็บข้อมูลต่อไปนี้:
- อเมซอน EFS – ระบบไฟล์แบบกระจายที่มีประสิทธิภาพสูง ใช้งานบนคลาวด์ ซึ่งคุณสามารถจัดการได้ผ่าน ไดรเวอร์ Amazon EFS CSI. Amazon EFS ให้บริการ
ReadWriteMany
โหมดการเข้าถึง และตอนนี้คุณสามารถใช้เพื่อต่อเชื่อมเข้ากับพ็อด (Jupyter, การฝึกโมเดล, การปรับโมเดล) ที่ทำงานในระนาบข้อมูล Kubeflow เพื่อให้พื้นที่ทำงานที่ต่อเนื่อง ปรับขนาดได้ และแชร์ได้ ซึ่งจะขยายและย่อขนาดโดยอัตโนมัติเมื่อคุณเพิ่มและลบไฟล์ด้วย ไม่จำเป็นต้องมีการจัดการ - Amazon FSx สำหรับความมันวาว – ระบบไฟล์ที่ปรับให้เหมาะสมสำหรับปริมาณงานที่เน้นการประมวลผล เช่น การประมวลผลประสิทธิภาพสูงและ ML ที่คุณสามารถจัดการได้ผ่าน ไดรเวอร์ Amazon FSx CSI. FSx for Luster ให้บริการ
ReadWriteMany
โหมดการเข้าถึงเช่นกัน และคุณสามารถใช้เพื่อแคชข้อมูลการฝึกที่มีการเชื่อมต่อโดยตรงกับ Amazon S3 เป็นร้านสำรอง ซึ่งคุณสามารถใช้เพื่อรองรับเซิร์ฟเวอร์โน้ตบุ๊ก Jupyter หรือการฝึกอบรมแบบกระจายที่ทำงานในระนาบข้อมูล Kubeflow ด้วยการกำหนดค่านี้ คุณไม่จำเป็นต้องถ่ายโอนข้อมูลไปยังระบบไฟล์ก่อนที่จะใช้โวลุ่ม FSx for Luster ให้เวลาแฝงที่สม่ำเสมอในระดับมิลลิวินาทีและการทำงานพร้อมกันสูง และสามารถปรับขนาดเป็น TB/s ของปริมาณงานและ IOPS หลายล้านรายการ
ตัวเลือกการปรับใช้ Kubeflow
AWS มีตัวเลือกการปรับใช้ Kubeflow ที่หลากหลาย:
- การปรับใช้กับ Amazon Cognito
- การปรับใช้กับ Amazon RDS และ Amazon S3
- การปรับใช้กับ Amazon Cognito, Amazon RDS และ Amazon S3
- การปรับใช้วานิลลา
สำหรับรายละเอียดเกี่ยวกับการรวมบริการและส่วนเสริมที่พร้อมใช้งานสำหรับแต่ละตัวเลือกเหล่านี้ โปรดดูที่ ตัวเลือกการปรับใช้. คุณสามารถใส่ตัวเลือกที่เหมาะสมกับกรณีการใช้งานของคุณได้มากที่สุด
ในส่วนต่อไปนี้ เราจะอธิบายขั้นตอนในการติดตั้งการแจกจ่าย AWS Kubeflow v1.4 บน Amazon EKS จากนั้น เราใช้ตัวอย่างไปป์ไลน์ XGBoost ที่มีอยู่บนแดชบอร์ด UI ส่วนกลางของ Kubeflow เพื่อสาธิตการผสานรวมและการใช้งาน AWS Kubeflow กับ Amazon Cognito, Amazon RDS และ Amazon S3 โดยมี Secrets Manager เป็นส่วนเสริม
เบื้องต้น
สำหรับคำแนะนำนี้ คุณควรมีข้อกำหนดเบื้องต้นต่อไปนี้:
- An บัญชี AWS.
- คลัสเตอร์ Amazon EKS ที่มีอยู่ ควรเป็น Kubernetes เวอร์ชัน 1.19 ขึ้นไป สำหรับการสร้างคลัสเตอร์อัตโนมัติโดยใช้ เอกสิทธ์โปรดดูที่ สร้างคลัสเตอร์ Amazon EKS และใช้ตัวเลือก eksctl
ติดตั้งเครื่องมือต่อไปนี้บนเครื่องไคลเอ็นต์ที่ใช้ในการเข้าถึงคลัสเตอร์ Kubernetes ของคุณ คุณสามารถใช้ได้ AWS Cloud9ซึ่งเป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการบนคลาวด์ (IDE) สำหรับการตั้งค่าคลัสเตอร์ Kubernetes
- อินเทอร์เฟซบรรทัดคำสั่ง AWS AWS (AWS CLI) – เครื่องมือบรรทัดคำสั่งสำหรับการโต้ตอบกับบริการของ AWS สำหรับคำแนะนำในการติดตั้ง โปรดดูที่ การติดตั้ง อัปเดต และถอนการติดตั้ง AWS CLI.
- เอกสิทธ์ > 0.56 – เครื่องมือบรรทัดคำสั่งสำหรับการทำงานกับคลัสเตอร์ Amazon EKS ที่ทำให้งานแต่ละอย่างเป็นไปโดยอัตโนมัติ
- Kubectl – เครื่องมือบรรทัดคำสั่งสำหรับการทำงานกับคลัสเตอร์ Kubernetes
- คอมไพล์ – ซอฟต์แวร์ควบคุมเวอร์ชันแบบกระจาย
- หลาม 3.8+ – สภาพแวดล้อมการเขียนโปรแกรม Python
- จุดเล็ก ๆ – ตัวจัดการแพ็คเกจสำหรับ Python
- ปรับแต่งเวอร์ชัน 3.2.0 – เครื่องมือบรรทัดคำสั่งเพื่อปรับแต่งวัตถุ Kubernetes ผ่านไฟล์ kustomization
ติดตั้ง Kubeflow บน AWS
กำหนดค่า kubectl เพื่อให้คุณสามารถเชื่อมต่อกับคลัสเตอร์ Amazon EKS ได้:
ตัวควบคุมต่างๆ ในการปรับใช้ Kubeflow ใช้ บทบาท IAM สำหรับบัญชีบริการ (ไออาร์เอสเอ). ต้องมีผู้ให้บริการ OIDC เพื่อให้คลัสเตอร์ของคุณใช้ IRSA สร้างผู้ให้บริการ OIDC และเชื่อมโยงกับคลัสเตอร์ Amazon EKS ของคุณโดยเรียกใช้คำสั่งต่อไปนี้ หากคลัสเตอร์ของคุณยังไม่มี:
โคลน AWS manifests repo และ Kubeflow manifests repo และชำระเงินสาขารีลีสที่เกี่ยวข้อง:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันเหล่านี้ โปรดดูที่ การเผยแพร่และการกำหนดเวอร์ชัน.
ตั้งค่า Amazon RDS, Amazon S3 และ Secrets Manager
คุณสร้างทรัพยากร Amazon RDS และ Amazon S3 ก่อนที่คุณจะปรับใช้รายการ Kubeflow เราใช้สคริปต์ Python อัตโนมัติที่ดูแลการสร้างบัคเก็ต S3, ฐานข้อมูล RDS และความลับที่จำเป็นในตัวจัดการความลับ นอกจากนี้ยังแก้ไขไฟล์การกำหนดค่าที่จำเป็นสำหรับไปป์ไลน์ Kubeflow และ AutoML เพื่อให้กำหนดค่าอย่างเหมาะสมสำหรับฐานข้อมูล RDS และบัคเก็ต S3 ระหว่างการติดตั้ง Kubeflow
สร้างผู้ใช้ IAM มีสิทธิ์อนุญาต GetBucketLocation
และสิทธิ์การอ่านและเขียนออบเจ็กต์ในบัคเก็ต S3 ที่คุณต้องการจัดเก็บอาร์ติแฟกต์ของ Kubeflow ใช้ AWS_ACCESS_KEY_ID
และ AWS_SECRET_ACCESS_KEY
ของผู้ใช้ IAM ในรหัสต่อไปนี้:
ตั้งค่า Amazon Cognito เป็นผู้ให้บริการตรวจสอบสิทธิ์
ในส่วนนี้ เราสร้างโดเมนที่กำหนดเองใน Route 53 และ ALB เพื่อกำหนดเส้นทางการรับส่งข้อมูลภายนอกไปยัง Kubeflow Istio Gateway เราใช้ ACM เพื่อสร้างใบรับรองเพื่อเปิดใช้งานการตรวจสอบสิทธิ์ TLS ที่ ALB และ Amazon Cognito เพื่อรักษากลุ่มผู้ใช้และจัดการการตรวจสอบสิทธิ์ผู้ใช้
แทนค่าต่อไปนี้ใน
- เส้นทาง53.rootDomain.name – โดเมนที่ลงทะเบียน สมมติโดเมนนี้คือ
example.com
. - เส้นทาง53.rootDomain.hostedZoneId – หากโดเมนของคุณได้รับการจัดการใน Route53 ให้ป้อน ID โซนโฮสต์ที่อยู่ใต้รายละเอียดโซนที่โฮสต์ ข้ามขั้นตอนนี้หากโดเมนของคุณได้รับการจัดการโดยผู้ให้บริการโดเมนรายอื่น
- เส้นทาง53.subDomain.name – ชื่อของโดเมนย่อยที่คุณต้องการโฮสต์ Kubeflow (เช่น
platform.example.com
). สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโดเมนย่อย โปรดดูที่ การปรับใช้ Kubeflow ด้วย AWS Cognito เป็น IdP. - คลัสเตอร์.name – ชื่อคลัสเตอร์และตำแหน่งที่ปรับใช้ Kubeflow
- คลัสเตอร์ภูมิภาค – ภูมิภาคคลัสเตอร์ที่มีการปรับใช้ Kubeflow (ตัวอย่างเช่น
us-west-2
). - cognitoUserpool.name – ชื่อของพูลผู้ใช้ Amazon Cognito (เช่น
kubeflow-users
).
ไฟล์ปรับแต่งดูเหมือนโค้ดต่อไปนี้:
เรียกใช้สคริปต์เพื่อสร้างทรัพยากร:
สคริปต์อัปเดต config.yaml
ไฟล์ที่มีชื่อทรัพยากร ID และ ARN ที่สร้างขึ้น ดูเหมือนว่ารหัสต่อไปนี้:
สร้างรายการและปรับใช้ Kubeflow
ปรับใช้ Kubeflow โดยใช้คำสั่งต่อไปนี้:
อัปเดตโดเมนด้วยที่อยู่ ALB
การปรับใช้จะสร้างโหลดบาลานเซอร์ของแอปพลิเคชัน AWS ที่มีการจัดการขาเข้า เราอัปเดตรายการ DNS สำหรับโดเมนย่อยในเส้นทาง 53 ด้วย DNS ของตัวโหลดบาลานซ์ รันคำสั่งต่อไปนี้เพื่อตรวจสอบว่าโหลดบาลานเซอร์ถูกจัดเตรียมไว้หรือไม่ (ใช้เวลาประมาณ 3-5 นาที):
ถ้า ADDRESS
ฟิลด์จะว่างเปล่าหลังจากไม่กี่นาที ตรวจสอบบันทึกของ alb-ingress-controller
. สำหรับคำแนะนำ โปรดดูที่ ALB ไม่สามารถจัดเตรียม.
เมื่อมีการจัดเตรียมตัวโหลดบาลานซ์ ให้คัดลอกชื่อ DNS ของตัวโหลดบาลานซ์และแทนที่ที่อยู่สำหรับ kubeflow.alb.dns
in ${kubeflow_manifest_dir}/tests/e2e/utils/cognito_bootstrap/config.yaml
. ส่วน Kubeflow ของไฟล์ปรับแต่งดูเหมือนโค้ดต่อไปนี้:
เรียกใช้สคริปต์ต่อไปนี้เพื่ออัปเดตรายการ DNS สำหรับโดเมนย่อยในเส้นทาง 53 ด้วย DNS ของตัวโหลดบาลานซ์ที่จัดเตรียมไว้:
การแก้ไขปัญหา
หากคุณประสบปัญหาใดๆ ระหว่างการติดตั้ง โปรดดูที่ คู่มือการแก้ไขปัญหา หรือเริ่มต้นใหม่โดยทำตามส่วน "ล้างข้อมูล" ในบล็อกนี้
คำแนะนำกรณีการใช้งาน
ตอนนี้เราได้ติดตั้งส่วนประกอบ Kubeflow ที่จำเป็นเรียบร้อยแล้ว มาดูการใช้งานจริงโดยใช้หนึ่งในตัวอย่างที่มีอยู่ซึ่งจัดทำโดย Kubeflow Pipelines บนแดชบอร์ด
เข้าถึง Kubeflow Dashboard โดยใช้ Amazon Cognito
ในการเริ่มต้น ให้เข้าถึง Kubeflow Dashboard เนื่องจากเราใช้ Amazon Cognito เป็น IdP ให้ใช้ข้อมูลที่ให้ไว้ใน ไฟล์ README อย่างเป็นทางการ. ขั้นแรก เราสร้างผู้ใช้บางคนบนคอนโซล Amazon Cognito เหล่านี้คือผู้ใช้ที่จะเข้าสู่แดชบอร์ดส่วนกลาง ถัดไป, สร้างโปรไฟล์ สำหรับผู้ใช้ที่คุณสร้างขึ้น จากนั้นคุณควรจะสามารถเข้าถึงแดชบอร์ดผ่านหน้าเข้าสู่ระบบได้ที่ https://kubeflow.platform.example.com.
ภาพหน้าจอต่อไปนี้แสดง Kubeflow Dashboard ของเรา
เรียกใช้ไปป์ไลน์
บนแดชบอร์ด Kubeflow ให้เลือก ท่อ ในชื่อการนำทาง คุณควรดูตัวอย่างสี่ตัวอย่างจาก Kubeflow Pipelines ที่คุณสามารถเรียกใช้โดยตรงเพื่อสำรวจคุณสมบัติต่างๆ ของไปป์ไลน์
สำหรับโพสต์นี้ เราใช้ตัวอย่าง XGBoost ชื่อ [สาธิต] XGBoost – การฝึกอบรมแบบจำลองซ้ำ คุณสามารถค้นหาซอร์สโค้ดได้ที่ GitHub. นี่คือไพพ์ไลน์อย่างง่ายที่ใช้ที่มีอยู่ XGBoost/Train
และ XGBoost/Predict
คอมโพเนนต์ไปป์ไลน์ Kubeflow เพื่อฝึกโมเดลซ้ำๆ จนกว่าเมตริกจะถือว่าดีตามเมตริกที่ระบุ
ในการรันไปป์ไลน์ ให้ทำตามขั้นตอนต่อไปนี้:
- เลือกไปป์ไลน์และเลือก สร้างการทดลอง.
- ภายใต้ รายละเอียดการทดลอง, ป้อนชื่อ (สำหรับโพสต์นี้
demo-blog
) และคำอธิบายเพิ่มเติม - Choose ถัดไป.
- ภายใต้ รายละเอียดการวิ่ง¸ เลือกไปป์ไลน์และเวอร์ชันไปป์ไลน์ของคุณ
- สำหรับ ชื่อเรียก, ป้อนชื่อ
- สำหรับ การทดลองเลือกการทดสอบที่คุณสร้างขึ้น
- สำหรับ เรียกใช้ประเภทให้เลือก one-off.
- Choose เริ่มต้น.
หลังจากที่ไปป์ไลน์เริ่มทำงาน คุณควรเห็นส่วนประกอบเสร็จสิ้น (ภายในไม่กี่วินาที) ในขั้นตอนนี้ คุณสามารถเลือกส่วนประกอบที่เสร็จสมบูรณ์เพื่อดูรายละเอียดเพิ่มเติมได้
เข้าถึงสิ่งประดิษฐ์ใน Amazon S3
ขณะปรับใช้ Kubeflow เราระบุ Kubeflow Pipelines ควรใช้ Amazon S3 เพื่อจัดเก็บสิ่งประดิษฐ์ ซึ่งรวมถึงอาร์ติแฟกต์เอาต์พุตไปป์ไลน์ รันแคช และกราฟไปป์ไลน์ทั้งหมด จากนั้นใช้เพื่อสร้างภาพข้อมูลที่สมบูรณ์และการประเมินประสิทธิภาพ
เมื่อการรันไปป์ไลน์เสร็จสิ้น คุณควรจะสามารถเห็นสิ่งประดิษฐ์ในบัคเก็ต S3 ที่คุณสร้างขึ้นระหว่างการติดตั้ง เพื่อยืนยันสิ่งนี้ เลือกส่วนประกอบที่เสร็จสมบูรณ์ของไปป์ไลน์แล้วตรวจสอบ Input / Output ส่วนค่าเริ่มต้น กราฟ แท็บ URL ของสิ่งประดิษฐ์ควรชี้ไปที่บัคเก็ต S3 ที่คุณระบุในระหว่างการปรับใช้
เพื่อยืนยันว่ามีการเพิ่มทรัพยากรใน Amazon S3 เรายังสามารถตรวจสอบบัคเก็ต S3 ในบัญชี AWS ของเราผ่านคอนโซล Amazon S3 ได้อีกด้วย
ภาพหน้าจอต่อไปนี้แสดงไฟล์ของเรา
ตรวจสอบข้อมูลเมตา ML ใน Amazon RDS
เรายังผสานรวม Kubeflow Pipelines กับ Amazon RDS ในระหว่างการปรับใช้ ซึ่งหมายความว่าควรจัดเก็บข้อมูลเมตาของไปป์ไลน์ใน Amazon RDS ซึ่งรวมถึงข้อมูลรันไทม์ใดๆ เช่น สถานะของงาน ความพร้อมใช้งานของสิ่งประดิษฐ์ คุณสมบัติที่กำหนดเองที่เกี่ยวข้องกับการรันหรือสิ่งประดิษฐ์ และอื่นๆ
หากต้องการตรวจสอบการผสานการทำงานกับ Amazon RDS ให้ทำตามขั้นตอนที่ให้ไว้ใน ไฟล์ README อย่างเป็นทางการ. โดยเฉพาะ ให้ทำตามขั้นตอนต่อไปนี้:
- รับชื่อผู้ใช้และรหัสผ่าน Amazon RDS จากข้อมูลลับที่สร้างขึ้นระหว่างการติดตั้ง:
- ใช้ข้อมูลประจำตัวเหล่านี้เพื่อเชื่อมต่อกับ Amazon RDS จากภายในคลัสเตอร์:
- เมื่อพรอมต์ MySQL เปิดขึ้น เราสามารถตรวจสอบ
mlpipelines
ฐานข้อมูลดังนี้ - ตอนนี้ เราสามารถอ่านเนื้อหาของตารางเฉพาะ เพื่อให้แน่ใจว่าเราสามารถดูข้อมูลเมตาดาต้าเกี่ยวกับการทดลองที่รันไปป์ไลน์ได้:
ทำความสะอาด
หากต้องการถอนการติดตั้ง Kubeflow และลบทรัพยากร AWS ที่คุณสร้างขึ้น ให้ทำตามขั้นตอนต่อไปนี้:
- ลบตัวโหลดบาลานซ์ที่จัดการขาเข้าและขาเข้าโดยเรียกใช้คำสั่งต่อไปนี้:
- ลบส่วนประกอบ Kubeflow ที่เหลือ:
- ลบทรัพยากร AWS ที่สร้างโดยสคริปต์:
- ทรัพยากรที่สร้างขึ้นสำหรับการรวม Amazon RDS และ Amazon S3 ตรวจสอบให้แน่ใจว่าคุณมีไฟล์การกำหนดค่าที่สร้างโดยสคริปต์ใน
${kubeflow_manifest_dir}/tests/e2e/utils/rds-s3/metadata.yaml
: - ทรัพยากรที่สร้างขึ้นสำหรับการผสานรวม Amazon Cognito ตรวจสอบให้แน่ใจว่าคุณมีไฟล์การกำหนดค่าที่สร้างโดยสคริปต์ใน
${kubeflow_manifest_dir}/tests/e2e/utils/cognito_bootstrap/config.yaml
:
- ทรัพยากรที่สร้างขึ้นสำหรับการรวม Amazon RDS และ Amazon S3 ตรวจสอบให้แน่ใจว่าคุณมีไฟล์การกำหนดค่าที่สร้างโดยสคริปต์ใน
- หากคุณสร้างคลัสเตอร์ Amazon EKS เฉพาะสำหรับ Kubeflow โดยใช้ eksctl คุณสามารถลบออกได้ด้วยคำสั่งต่อไปนี้:
สรุป
ในโพสต์นี้ เราเน้นย้ำถึงคุณค่าที่ Kubeflow บน AWS มอบให้ผ่านการผสานรวมบริการที่จัดการโดย AWS ดั้งเดิมสำหรับปริมาณงาน AI และ ML ที่ปลอดภัย ปรับขนาดได้ และพร้อมสำหรับองค์กร คุณสามารถเลือกจากตัวเลือกการปรับใช้ที่หลากหลายเพื่อติดตั้ง Kubeflow บน AWS ด้วยการผสานรวมบริการต่างๆ กรณีการใช้งานในโพสต์นี้แสดงให้เห็นถึงการรวม Kubeflow กับ Amazon Cognito, Secrets Manager, Amazon RDS และ Amazon S3 ในการเริ่มต้นใช้งาน Kubeflow บน AWS โปรดดูตัวเลือกการปรับใช้ที่ผสานรวมกับ AWS ใน Kubeflow บน AWS.
เริ่มต้นด้วย v1.3 คุณสามารถปฏิบัติตาม ที่เก็บ AWS Labs เพื่อติดตามการมีส่วนร่วมของ AWS ทั้งหมดกับ Kubeflow นอกจากนี้คุณยังสามารถพบเราบน Kubeflow #AWS ช่องหย่อน; ความคิดเห็นของคุณจะช่วยให้เราจัดลำดับความสำคัญของฟีเจอร์ถัดไปเพื่อสนับสนุนโครงการ Kubeflow
เกี่ยวกับผู้เขียน
กันวัลจิต คุรมี เป็นสถาปนิกโซลูชันผู้เชี่ยวชาญ AI/ML ที่ Amazon Web Services เขาทำงานร่วมกับผลิตภัณฑ์ AWS วิศวกรรม และลูกค้าเพื่อให้คำแนะนำและความช่วยเหลือด้านเทคนิค ซึ่งช่วยให้พวกเขาปรับปรุงคุณค่าของโซลูชัน ML แบบไฮบริดเมื่อใช้ AWS Kanwaljit เชี่ยวชาญในการช่วยเหลือลูกค้าด้วยแอพพลิเคชั่นการเรียนรู้แบบคอนเทนเนอร์และแมชชีนเลิร์นนิง
เมกนา ไบจาล เป็นวิศวกรซอฟต์แวร์ที่มี AWS AI ทำให้ผู้ใช้สามารถออนบอร์ดปริมาณงานการเรียนรู้ของเครื่องบน AWS ได้ง่ายขึ้นโดยการสร้างผลิตภัณฑ์และแพลตฟอร์ม ML เช่น Deep Learning Containers, Deep Learning AMI, AWS Controllers for Kubernetes (ACK) และ Kubeflow บน AWS . นอกเวลางาน เธอชอบอ่านหนังสือ ท่องเที่ยว และชอบวาดรูป
สุรัช โกตา เป็นวิศวกรซอฟต์แวร์ที่เชี่ยวชาญด้านโครงสร้างพื้นฐานการเรียนรู้ของเครื่อง เขาสร้างเครื่องมือเพื่อเริ่มต้นอย่างง่ายดายและปรับขนาดปริมาณงานแมชชีนเลิร์นนิงบน AWS เขาทำงานเกี่ยวกับ AWS Deep Learning Containers, Deep Learning AMI, SageMaker Operators for Kubernetes และการรวมระบบโอเพนซอร์สอื่นๆ เช่น Kubeflow
- คอยน์สมาร์ท การแลกเปลี่ยน Bitcoin และ Crypto ที่ดีที่สุดในยุโรป
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าฟรี
- คริปโตฮอว์ก เรดาร์ Altcoin ทดลองฟรี.
- ที่มา: https://aws.amazon.com/blogs/machine-learning/build-and-deploy-a-scalable-machine-learning-system-on-kubernetes-with-kubeflow-on-aws/
- "
- 10
- 100
- 420
- 7
- เกี่ยวกับเรา
- เข้า
- ลงชื่อเข้าใช้
- การกระทำ
- Add-on
- ที่อยู่
- ผู้ดูแลระบบ
- การบริหาร
- บริษัท ในเครือ
- AI
- ทั้งหมด
- แล้ว
- อเมซอน
- Amazon Web Services
- อื่น
- การใช้งาน
- การใช้งาน
- เหมาะสม
- สถาปัตยกรรม
- รอบ
- ภาคี
- รับรองความถูกต้อง
- ตรวจสอบสิทธิ์
- การยืนยันตัวตน
- การอนุญาต
- โดยอัตโนมัติ
- อัตโนมัติ
- โดยอัตโนมัติ
- ความพร้อมใช้งาน
- ใช้ได้
- AWS
- กลายเป็น
- ประโยชน์ที่ได้รับ
- ที่ดีที่สุด
- พันล้าน
- บล็อก
- ชายแดน
- สร้าง
- การก่อสร้าง
- สร้าง
- built-in
- ความสามารถในการ
- ความจุ
- ซึ่ง
- กรณี
- CD
- ใบรับรอง
- ใบรับรอง
- ท้าทาย
- Checkout
- Choose
- การเรียกร้อง
- ชั้น
- รหัส
- ร่วมกัน
- เสร็จสิ้น
- ซับซ้อน
- ส่วนประกอบ
- คอมพิวเตอร์
- การคำนวณ
- องค์ประกอบ
- เชื่อมต่อ
- การเชื่อมต่อ
- ปลอบใจ
- ภาชนะบรรจุ
- มี
- เนื้อหา
- ต่อ
- สนับสนุน
- ควบคุม
- ตัวควบคุม
- ลิขสิทธิ์
- ได้
- สร้าง
- ที่สร้างขึ้น
- สร้าง
- การสร้าง
- การสร้าง
- หนังสือรับรอง
- วิกฤติ
- ประเพณี
- ลูกค้า
- หน้าปัด
- ข้อมูล
- การประมวลผล
- วิทยาศาสตร์ข้อมูล
- ฐานข้อมูล
- DDoS
- ทุ่มเท
- ความต้องการ
- สาธิต
- แสดงให้เห็นถึง
- ปรับใช้
- นำไปใช้
- ปรับใช้
- การใช้งาน
- การใช้งาน
- Deploys
- ออกแบบ
- รายละเอียด
- รายละเอียด
- พัฒนาการ
- Dex
- ต่าง
- โดยตรง
- โดยตรง
- สนทนา
- กระจาย
- การกระจาย
- DNS
- ไม่
- โดเมน
- อย่างง่ายดาย
- ง่ายต่อการใช้งาน
- เสียงสะท้อน
- อีเมล
- ทำให้สามารถ
- การเข้ารหัสลับ
- ปลายทาง
- วิศวกร
- ชั้นเยี่ยม
- เข้าสู่
- Enterprise
- สิ่งแวดล้อม
- การประเมินผล
- เหตุการณ์
- ตัวอย่าง
- ที่มีอยู่
- ประสบการณ์
- การทดลอง
- สำรวจ
- ความล้มเหลว
- คุณสมบัติ
- ข้อเสนอแนะ
- ทางการเงิน
- ชื่อจริง
- พอดี
- ไหล
- โฟกัส
- มุ่งเน้นไปที่
- ปฏิบัติตาม
- ดังต่อไปนี้
- รูป
- พบ
- สด
- ได้รับ
- ไป
- GitHub
- ดี
- ขึ้น
- การเจริญเติบโต
- ช่วย
- การช่วยเหลือ
- จะช่วยให้
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- จุดสูง
- สูงกว่า
- ไฮไลต์
- อย่างสูง
- โฮสติ้ง
- HTTPS
- เป็นลูกผสม
- เอกลักษณ์
- ส่งผลกระทบ
- การดำเนินการ
- ปรับปรุง
- อิงค์
- รวมถึง
- รวมทั้ง
- เพิ่มขึ้น
- เป็นรายบุคคล
- ชั้นนำของอุตสาหกรรม
- ข้อมูล
- ข้อมูล
- โครงสร้างพื้นฐาน
- ติดตั้ง
- แบบบูรณาการ
- บูรณาการ
- การผสานรวม
- การลงทุน
- ความเหงา
- ปัญหา
- IT
- ตัวเอง
- งาน
- การเก็บรักษา
- คีย์
- ห้องปฏิบัติการ
- ภาษา
- ใหญ่
- เปิดตัว
- การเรียนรู้
- facelift
- Line
- โหลด
- ในประเทศ
- เครื่อง
- เรียนรู้เครื่อง
- เก็บรักษา
- ทำให้
- การทำ
- จัดการ
- การจัดการ
- การจัดการ
- ผู้จัดการ
- ตัวชี้วัด
- ล้าน
- ML
- แบบ
- โมเดล
- การตรวจสอบ
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ชื่อ
- โดยธรรมชาติ
- การเดินเรือ
- สุทธิ
- เครือข่าย
- โหนด
- สมุดบันทึก
- จำนวน
- เสนอ
- เปิด
- โอเพนซอร์ส
- เปิด
- ผู้ประกอบการ
- การปรับให้เหมาะสม
- ตัวเลือกเสริม (Option)
- Options
- อื่นๆ
- ของตนเอง
- รหัสผ่าน
- การปฏิบัติ
- เวที
- แพลตฟอร์ม
- จุด
- นโยบาย
- สระ
- นำเสนอ
- ลำดับความสำคัญ
- การประมวลผล
- ผลิตภัณฑ์
- ผลิตภัณฑ์
- การเขียนโปรแกรม
- โครงการ
- ป้องกัน
- ให้
- ให้
- การให้
- สาธารณะ
- อย่างรวดเร็ว
- มาถึง
- การอ่าน
- เหตุผล
- ระเบียน
- ลงทะเบียน
- ปล่อย
- ขอ
- จำเป็นต้องใช้
- ความต้องการ
- ทรัพยากร
- แหล่งข้อมูล
- คำตอบ
- REST
- เส้นทาง
- วิ่ง
- วิ่ง
- scalability
- ที่ปรับขนาดได้
- ขนาด
- ปรับ
- วิทยาศาสตร์
- SDK
- สำนักงานคณะกรรมการ ก.ล.ต.
- วินาที
- ปลอดภัย
- ความปลอดภัย
- serverless
- บริการ
- บริการ
- ชุด
- การติดตั้ง
- หุ้น
- สัญญาณ
- ง่าย
- ขนาด
- หย่อน
- นอนหลับ
- So
- สังคม
- ซอฟต์แวร์
- วิศวกรซอฟต์แวร์
- ของแข็ง
- ทางออก
- โซลูชัน
- บาง
- บางสิ่งบางอย่าง
- รหัสแหล่งที่มา
- ผู้เชี่ยวชาญ
- เฉพาะ
- ความเชี่ยวชาญ
- เฉพาะ
- ระยะ
- เริ่มต้น
- ข้อความที่เริ่ม
- เริ่มต้น
- สถานะ
- Status
- การเก็บรักษา
- จัดเก็บ
- ประสบความสำเร็จ
- สนับสนุน
- รองรับ
- ระบบ
- ระบบ
- งาน
- วิชาการ
- ที่มา
- ตลอด
- เวลา
- โทเค็น
- เครื่องมือ
- เครื่องมือ
- ด้านบน
- ลู่
- การจราจร
- การฝึกอบรม
- โอน
- การแปลภาษา
- การขนส่ง
- การเดินทาง
- ui
- บันทึก
- การปรับปรุง
- us
- ใช้
- ผู้ใช้
- การตรวจสอบ
- ความคุ้มค่า
- ความหลากหลาย
- ต่างๆ
- ตรวจสอบ
- วิสัยทัศน์
- ปริมาณ
- เว็บ
- บริการเว็บ
- WHO
- ภายใน
- ไม่มี
- งาน
- ทำงาน
- การทำงาน
- โรงงาน