AWS Thai Blog

AWS CloudShell – Command-Line เพื่อเข้าถึง AWS Resource

ไม่ว่าคุณจะเคยสร้างระบบอัตโนมัติมามากแค่ไหน, ฝึกเรื่อง Infrastructure as Code (IAC) จนเก่ง หรือ ประสบความสำเร็จในการจัดการ server ทีละตัวให้กลายเป็นการจัดการจำนวนมากเป็นกลุ่มงานก็ตาม บางครั้ง เราก็จำเป็นต้อง Interact กับ AWS resources ที่ command line เพื่อการตรวจสอบหรือปรับเปลี่ยนการกำหนดค่าของไฟล์, แก้ไขการใช้งาน หรือแม้แต่ทดลองฟีเจอร์และบริการใหม่จาก AWS

ส่วนใหญ่แล้ว ผู้ใช้ของเรามักจะรู้สึกคุ้นชินกับการทำงานจากเว็บเบราว์เซอร์ในแบบที่ยังไม่ได้ตั้งค่าหรือปรับแต่ง command-line interface (CLI) โดยพวกเขาให้ความเห็นว่า พวกเขาไม่ต้องการเข้าไปยุ่งกับแอปพลิเคชันของลูกค้า, public keys, AWS credentials และเครื่องมืออื่น ๆ แม้ว่าขั้นตอนเหล่านี้จะไม่ยากหรือใช้เวลานาน แต่ก็ยังคงเพิ่มความซับซ้อนอยู่ดี ดังนั้น ทาง AWS จะเข้ามาช่วยหลีกเลี่ยงความยุ่งยากพวกนี้เอง

มารู้จัก AWS CloudShell กัน

AWS Cloudshell ได้เปิดตัวพร้อมกับมีเป้าหมายที่จะทำให้การทำงาน AWS-enabled shell prompt ได้ง่าย, ปลอดภัย และไร้ความหน่วงได้มากที่สุด ทุกๆ shell environment ที่คุณรันด้วย CloudShell จะมีการติดตั้งและกำหนดค่า AWS Command Line Interface (CLI) (v2) เพื่อให้คุณสามารถรัน aws commands ได้ทันที รวมถึงการทำงานของ Python และ Node ซึ่งจะเกิดขึ้นอีกมากมายในอนาคต

มาเริ่มต้นกันเลย คลิกไปที่ไอคอน CloudShell ใน AWS Management Console:

My shell จะตั้งค่าอัตโนมัติภายในไม่กี่วินาที เราสามารถใช้คำสั่ง aws ได้ทันที:

Shell environment อิงจาก Amazon Linux 2 คุณจะสามารถจัดเก็บไฟล์ใน My Home Directory ได้สูงสุด 1 GB/Region และมันจะพร้อมใช้งานทุกครั้งที่เราเปิด shell ใน region รวมถึงการกำหนดค่าไฟล์ เช่น .bashrc และไฟล์ประวัติ shell ด้วย

เราสามารถเข้าถึง shell ผ่าน SSO หรือ IAM ที่ล็อกอินเข้าสู่ AWS Management Console ได้ รวมถึง federated role ด้วย และเพื่อที่จะเข้าถึง CloudShell ได้ เลยมีความจำเป็นที่นโยบาย AWSCloudShellFullAccess จะต้องมีผลบังคับใช้ ตัว shell นั้นจะทำงานได้เช่นเดียวกับการใช้งานของผู้ใช้ทั่วไป แต่ว่าเรายังสามารถใช้คำสั่ง sudo และติดตั้งแพ็คเกจอื่นๆ ได้ตามต้องการ

นี่เป็นฟีเจอร์ที่คุณควรรู้:

ธีม และ ขนาดของฟอนท์ – คุณสามารถเลือกธีมได้ทั้งแบบ light หรือ dark และเลือกฟอนท์ได้ถึง 5 แบบ:

Tabs และ Sessions – คุณสามารถมีหลาย session ตอนเปิดใน region เดียวกันได้ และสามารถควบคุม tab ด้วยตัวเลือกในการแบ่งหน้าจอทั้งแบบแนวนอนและแนวตั้ง:

คุณยังสามารถดาวน์โหลดไฟล์จาก Shell environment มาที่ Desktop และอัปโหลดจาก Desktop ไปที่ Shell

สิ่งที่ควรรู้

สิ่งสำคัญที่จำเป็นต้องรู้เมื่อคุณกำลังประเมินผล CloudShell:

Timeouts และ Persistence – CloudShell เซสชั่นจะ timeout ใน 20 นาที หรือเมื่อผู้ใช้ไร้การเคลื่อนไหว แต่สามารถเรียกขึ้นมาใหม่ได้โดยการรีเฟรช window:

Regions – CloudShell สามารถใช้งานได้ที่ US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Ireland), and Asia Pacific (Tokyo) รวมถึง Region อื่น ๆ ในแผนงานใกล้ ๆ นี้ด้วย

Persistent Storage – ไฟล์ที่เก็บไว้ใน $HOME จะยังคงอยู่ระหว่างการเรียกใช้ของ Cloudshell ด้วยการจำกัดอยู่ที่ 1GB ต่อ Region และมีพื้นที่เก็บข้อมูลอื่นชั่วคราว ซึ่งหมายความว่า Software อื่น ๆ ที่ติดตั้งนอก $HOME จะไม่สามารถคงอยู่ตลอดไป และไม่ว่าคุณจะเปลี่ยน (หรือ พักการใช้งาน) คุณจะสามารถเริ่มต้นกับ CloudShell environment ได้ใหม่เสมอ

การเข้าถึง Network – Session สามารถเชื่อมต่อ outbound ไปยังอินเทอร์เน็ตได้ แต่ไม่สามารถเชื่อมต่อแบบ In Bound ได้ทุกประเภท และไม่สามารถเชื่อมต่อกับ Resource ภายในเครือข่ายย่อยของ Private VPC แต่นั่นก็เป็นสิ่งที่พวกเรากำลังจะทำให้เกิดขึ้นเร็ว ๆ นี้แล้ว

เวลาในการรัน – นอกเหนือจาก Python และ Node แล้ว Bash, PowerShell, jq, git, ECS CLI, SAM CLI, npm, และ pip ได้ติดตั้งและพร้อมใช้งานแล้ว

ราคา – คุณสามารถใช้พร้อมกันได้ถึง 10 Shells โดยไม่เสียค่าใช้จ่ายใดใด นอกจาก AWS resources ที่ใช้กับ CloudShell เพื่อสร้างและรัน Application

มาลองดูสิ

AWS CloudShell พร้อมใช้แล้วตั้งแต่วันนี้ มาลองใช้แล้วบอกพวกเราหน่อยว่ามันเป็นยังไง