AWS CloudShell คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2023

2023.01.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

อะไรคือ AWS CloudShell

อ้างอิงจากข้อมูลอย่างเป็นทางการ ของสรุปของ AWS CloudShell

AWS CloudShell คือเซอร์วิสเกี่ยวกับอะไร ?

AWS CloudShell คือเซอร์วิสที่ทำให้เราดำเนินการ Shell ต่างๆได้ง่ายขึ้นจาก web browser (AWS Management Console) ตั้งแต่ shells (Bash, PowerShell, Z Shell) และ AWS CLI นั้นจะทำการติดตั้งไว้ล่วงหน้าแล้วทำให้แต่ละคำสั่งที่เรารันไปสามารถใช้งานได้ทันที ตั้งแต่วันที่ 2023/01/15 เซอร์วิส AWS CloudShell ก็สามารถใช้งานได้ตาม Regions ต่างๆดังนี้
ณ ปัจจุบันยังไม่รองรับการใช้งานใน Singapore Region

region name region
US East (Ohio) us-east-2
US East (N. Virginia) us-east-1
US West (Oregon) us-west-2
Asia Pacific (Mumbai) ap-south-1
Asia Pacific (Sydney) ap-southeast-2
Asia Pacific (Tokyo) ap-northeast-1
Canada (Central) ca-central-1
Europe (Frankfurt) eu-central-1
Europe (Ireland) eu-west-1
Europe (London) eu-west-2
South America (São Paulo) sa-east-1


และในส่วนของ web brosers นั้นก็ซัพพอร์ทตั้งแต่ 2023/01/15 ตามตารางด้านล่างนี้

browser version
Google Chrome Latest 3 major versions
Mozilla Firefox Latest 3 major versions
Microsoft Edge Latest 3 major versions
Apple Safari for macOS Latest two major versions

ราคา

AWS CloudShell นั้นไม่มีค่าใช้จ่ายในการใช้งาน นอกจากนี้ยังมีพื้นที่เก็บข้อมูลถาวร 1GB ให้ใช้สำหรับแต่ละภูมิภาคอีกด้วย

การใช้งาน

ในการเริ่ม CloudShell ให้ใช้หนึ่งในสองวิธีต่อไปนี้จากแถบคอนโซลด้านบนของหน้าคอนโซลการจัดการโดยอาจใช้เวลาหลายสิบวินาทีในการเริ่มต้น แต่สามารถใช้งานได้ทันที

  • คลิ้กที่ AWS CloudShell ไอค่อน
  • เข้าไปที่ "CloudShell" ในกล่องค้นหาและคลิ้กที่เซอร์วิส "CloudShell"

ตัวอย่างการใช้งาน

  • ถ้าคุณต้องการที่รันคำสั่ง AWS CLI
  • ถ้าคุณต้องการจะดำเนินการผ่าน Shell commands
  • ถ้าคุณต้องการจะเข้าถึง AWS services อย่างปลอดภัยด้วย CLI โดยไม่ใช้ access key

ความสามารถ

Tabs Layout

  • New Tab
    • สร้าง tab ใหม่ในการใช้งาน
    • สามารถสร้างได้มากถึง 20 tab
  • Split into rows
    • การแบ่งหน้าจอในแนวตั้ง และ สร้าง tab ใหม่ด้านล่าง
  • Split into columns
    • การแบ่งหน้าจอจากซ้ายและขวา พร้อมสร้าง tab ใหม่ที่มุมขวา

Files

  • Download file
    • ไฟล์ต่างๆที่อยู่ใน AWS CloudShell จะสามารถดาวน์โหลดมาเก็บไว้ที่คอมพิวเตอร์ของเราได้
  • Upload file
    • คุณสามารถ Upload ไฟล์อะไรก็ได้ที่อยู่ใยขนาด 1 GB จากบนคอมพิวเตอร์ของคุณมาเก็บไว้ที่ AWS CloudShell ได้

การรีสาร์ท AWS CloudShell

การจบ session ปัจจุบันและเริ่มต้น session ใหม่ ให้เราคำนึงถึงเสมอเมื่อเราทำการจบ session ข้อมูลทั้งหมดที่อยู่ในนั้นจะถูกลบอย่างถาวร

การลบ AWS CloudShell จาก home directory

การลบสภาพแวดล้อมปัจจุบันและสร้าง AWS CloudShell ขึ้นมาใหม่ด้วยการตั้งค่าพื้นฐานซึ่งการดำเนินการนี้จะไม่สามารถย้อนกลับได้ ดังนั้นโปรดใช้อย่างระมัดระวัง

การตั้งค่า


  • Font size
    • สามารถปรับได้ 5 ระดับ
  • Theme (AWS CloudShell theme)
    • Light (สีขาว)
    • Dark (สีดำ)
  • Enable Safe Paste
    • ฟังก์ชันที่แสดงข้อความยืนยัน เมื่อมีการวางข้อความหลายบรรทัด
    • ค่าเริ่มต้นจะเปิดใช้งาน แต่เราสามารถปิดการใช้งานได้

คำแนะนำการใช้งาน

  • ลิมิตการใช้งานแต่ละเดือน
    • แม้ว่าเอกสารอย่างเป็นทางการจะไม่ได้ระบุเวลาโดยละเอียด แต่ดูเหมือนว่า AWS CloudShell จะมีขีดจำกัดเวลาการใช้งานในแต่ละภูมิภาคในแต่ละเดือนอยู่เช่นกัน
  • เกี่ยวกับ sessions
    • session ของคุณจะจบลงถ้าหากไม่มีการใช้งานประมาณ 20 นาที (ถึงแม้ว่าจะมีการประมวลผลอยู่ก็ตาม แต่ถ้าไม่มีการกดคีบอร์ดหรือเลื่อนเมาส์ใดๆ จะถูกมองว่าไม่มีการใช้งาน)
    • session ที่มีการทำงานอยู่ตลอด 12 ขั่วโมงจะถูกปิดให้สิ้นสุดการทำงานโดยอัตโนมัติ ถึงแม้ว่าตัวระบบจะยังทำงานอยู่ก็ตาม
  • จำนวนที่สามารถใช้งานพร้อมกันได้
    • จำนวนสูงสุดที่ Shells สามารถใช้งานพร้อมกันได้นั้นคือ 10 ต่อ 1 region

สิทธิ์ในการใช้งาน

ก่อนอื่น อย่างน้อยคุณต้องมี IAM policies เพื่อเริ่มต้นใช้ AWS CloudShell แม้ว่าจะมี policies ที่ไม่เกี่ยวข้องกับการเปิดใช้งานก็ตาม เราก็ต้องทำการเชื่อม policy ที่เกี่ยวกับการจัดการเซอร์วิสนี้คือ "AWS CloudShellFullAccess" ไปที่ผู้ใช้ที่ทำการเปิดใช้งานเพื่อที่จะสามารถใช้งานฟังก์ชันต่างๆบน AWS CloudShell ได้

นอกจากนี้ เมื่อใช้บริการ AWS จาก AWS CloudShell โดยใช้ AWS CLI ฯลฯ ผู้ใที่ช้ AWS CloudShell เริ่มต้นจะได้รับสิทธิ์ในการจัดการบริการที่เกี่ยวข้องได้

นอกจากนี้ ผู้ใช้ AWS CloudShell ยังมีสิทธิ์ใช้งาน sudo อีกด้วยกรณีที่มีซอฟต์แวร์ที่จำเป็นที่ต้องใช้งานเพิ่มเติม คุณสามารถติดตั้งได้โดยการยกระดับสิทธิ์ด้วยคำสั่ง sudo ได้

ความปลอดภัย

ตัวอย่างการทำงาน

นี้คือตัวอย่างการทำงานที่ดีที่สุดของ AWS CloudShell

  • การสิทธิ์ใช้งานที่น้อยที่สุด
    • ตั้งนโยบาย IAM เพื่อให้ผู้ใช้ที่เรียกใช้ AWS CloudShell สามารถดำเนินการที่จำเป็นเท่านั้น (เช่น ดาวน์โหลดและอัปโหลดไฟล์)
  • การเปิดใช้งาน Safe Paste Feature
    • เป็นการเปิดเพื่อตรวจจับความเสี่ยงด้านความปลอดภัยในการใช้งานที่เกิดขึ้นในเรื่องการคัดลอกเนื้อหามาจากแหล่งภายนอก (ซึ่งเปิดใช้งานโดยค่าเริ่มต้น)
  • กลไกการย้อนกลับ กรณ๊ที่แก้ไข Shell สคริปต์โดยไม่ตั้งใจ
    • หากคุณแก้ไข Shell สคริปต์ที่เรียกใช้สภาพแวดล้อมเชลล์โดยไม่ตั้งใจและไม่สามารถเข้าถึงได้ ให้ดำเนินการ "ลบ Home Directory AWS CloudShell" ในการดำเนินการ
  • จัดการรหัสด้วยระบบควบคุมเวอร์ชัน
    • จัดเก็บโค้ดของคุณอย่างปลอดภัยด้วยเครื่องมือควบคุมเวอร์ชัน เช่น AWS CodeCommit

พื้นที่ความรับผิดชอบ

นี้คือข้อมูลสรุปของผู้ใช้และความรับผิดชอบของ AWS ใน AWS CloudShell

  • ความรับผิดชอบของ User
    • ความปลอดภัยในระบบคลาวด์
    • การแก้ไขซอฟต์แวร์ของบุคคลที่สามที่ติดตั้งในสภาพแวดล้อม AWS CloudShell
  • ความรับผิดชอบของ AWS
    • ความปลอดภัยบนคลาวด์เป็นหลัก
    • การป้องกันโครงสร้างพื้นฐาน

การเข้ารหัสข้อมูล

การเข้ารหัส

AWS CloudShell มีการเข้ารหัสข้อมูลที่ถูกเก็บไว้ในส่วนของ home directory ($HOME) การใช้งานเข้ารหัสด้วยกุญแจที่ถูกออกโดย AWS KMS

การเข้ารหัสระหว่างการส่ง

การสื่อสารข้อมูลทั้งหมดระหว่างเว็บเบราว์เซอร์ของไคลเอ็นต์กับ AWS CloudShell จะทำผ่านการเชื่อมต่อ HTTPS/TLS ตามค่าเริ่มต้น

การทำ Logging และ monitoring

AWS CloudShell ผสานรวมกับ AWS CloudTrail คุณจึงสามารถบันทึกการเรียก API ที่ทำใน AWS CloudShell โดยการสร้างเส้นทาง คุณสามารถทิ้งบันทึกเหตุการณ์ไว้ในบัคเก็ต S3 แต่คุณสามารถตรวจสอบเหตุการณ์ล่าสุดได้จากประวัติเหตุการณ์ของคอนโซล CloudTrail โดยไม่ต้องสร้างเส้นทาง

Environment

สภาพแวดล้อมและทรัพยากรที่ใช้งาน

OS CPU memory storage
Amazon Linux2 1vCPU 2 Gib RAM 1GB permanent storage(*)
  • ส่วนของที่เก็บข้อมูลพิ้นฐานหรือ home directory ($HOME) นั้นจะเก็บข้อมูลนี้ไว้ถึงแม้ว่า session จะถูกตัดการเชื่อมต่อแล้วก็ตาม แต่มันก็จะถูกลบโดยอัตโนมัติถ้าหากไม่มีการเข้าถึง CloudShell เป็นระยะเวลา 120 วัน โดยพื้นที่จัดเก็บนี้ถูกแบ่งสำหรับแต่ละภูมิภาคที่เปิดตัว AWS CloudShell

รายชื่อ software ที่มีการติดตั้งตามการใช้งานพื้นฐาน

ผมได้เขียนรายชื่อ software ที่ได้มีการติดตั้งตามค่าใช้งานพื้นฐานใน AWS CloudShell พร้อมกับเวอร์ชันที่ติดตั้ง ณ วันที่ 2023/01/15

software name type version
Bash shell 4.2.46
PowerShell shell 7.1.4
Z Shell shell 5.7.1
AWS CLI CLI 2.4.15
EB CLI CLI 3.20.2
Amazon ECS CLI CLI 1.21.0
AWS SAM CLI CLI 1.33.0
Node.js (with npm) runtime 14.18.3
npm 6.14.15
SDK for JavaScript in Node.js runtime 2.1000.0
Python runtime − (below)
Python 2 2.7.18
Python 3 3.7.10
pip (pip3) 20.2.2
SDK for Python (Boto3) runtime 1.18.54
bash-completion others 2.1
CodeCommit Utilities for Git others 1.15.1
Git others 2.32.0
iputils others s20160308
jq others 1.5
make others 3.82
man others 2.6.3
procps others 3.3.10
SSH client others OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
sudo others 1.8.23
tar others 1.26
tmux others 1.8
vim others 8.2
wget others 1.14
zip others 3.0
unzip others 6.00

ทดสอบการใช้งาน

AWS CloudShell ได้มีการเผยแพร่การสอนเพื่อฝึกใช้งานจริงออกมา 3 การสอน โดยในครั้งนี้ผมจะขอแนะนำ blog ที่ผมได้ลองทำแบบการสอนเกี่ยวกับ "การเริ่มต้นใช้งาน AWS CloudShell"

ข้อกำหนดเบื้องต้น

การเริ่มต้นใช้ AWS CloudShell ด้วย IAM user นั้นจำเป็นที่จะตั้งมี IAM policy เหล่านี้ในการเชื่อมเพื่อใช้งาน AWS CloudShell - AWS CloudShell Full Access - s3: CreateVucket - s3: PutObject และการเตรียมไฟล์ชื่อ "add_prog.py" ที่มีการเขียนโค้ดในคอมพิวเตอร์ของคุณ โดยจะเป็นโปรแกรมง่ายๆที่กำหนดตัวแปลที่ใส่ 2 ตัวและนำมาบวกกันเพื่อแสดงผลลัพธ์

import sys
x=int(sys.argv[1])
y=int(sys.argv[2])
sum=x+y
print("The sum is",sum)


การทดสอบจริง

ให้ทำตอบขั้นตอนของ tutorial เรียงตามนี้

  1. ลงชื่อเข้าใช้งาน AWS Management Console
  2. เลือก region และเริ่มใช้งาน AWS CloudShell
  3. อัพโหลดไฟล์ไปที่ AWS CloudShell
  4. แก้ไขโค้ดที่อยู่ในไฟล์และทำการรันโค้ดผ่าน command line
  5. เพิ่มไฟล์ไปยัง Amazon S3 bucket ในรูปแบบ object โดยใช้งาน AWS CLI ถ้าพร้อมก็ลุยกันเลยยย....

  6. ลงชื่อเข้าใช้งาน AWS Management Console.

ลงชื่อเข้าใช้งาน AWS Management Console

  1. เลือก region และเริ่มใช้งาน AWS CloudShell

ในครั้งนี้ ผมจะเลือก Tokyo region และคลิ้กไอค่อน AWS CloudShell ในแบนเนอร์เพื่อเปิดใช้งาน AWS CloudShell ครับ

  1. อัพโหลดไฟล์ไปที่ AWS CloudShell อัพโหลด "add_prog.py" ในเครื่องของเราด้วยการกดเมนู Action ที่อยู่ใน AWS CloudShell



ใช้งานคำสั่ง ls เพื่อยินยันว่าไฟล์ได้ถูกอัพโหลดลงไปในเซอร์วิสเรียบร้อยแล้ว

  1. แก้ไขโค้ดที่อยู่ในไฟล์และทำการรันโค้ดผ่าน command line

แก้ไขโค้ดที่อยู่ในไฟล์ "add_prog.py" โดยใช้ vim

โดยพื้นฐานแล้วนี้คือโปรแกรมคำนวนโดยจะนำตัวแปร 2 ตัวมาคำนวนรวมกัน แต่ผมจะแก้ไขให้มีการคำนวนตัวแปรเพิ่มเป็น 3 ตัว และแสดงผลลัพธ์ออกมา หลังจากแก้ไข ให้รันโค้ดด้วยคำสั่ง python

มันสามารถทำงานได้ปกติใช่ไหม ?

  1. เพิ่มไฟล์ไปยัง Amazon S3 bucket ในรูปแบบ object โดยใช้งาน AWS CLI

ในขั้นตอนสุดท้ายนี้ เราจะใช้ AWS CLI เพื่อสร้าง bucket และเพิ่ม object ลงไป ถ้าข้อความดังรูปตัวอย่างแสดงผลออกมา ก็แสดงว่าเราทำสำเร็จแล้ว (ผมลืมถ่ายรูปช่วงนี้ไป แต่ผมสามารถยินยันได้ว่ามี bucket และ object นั้นจริงใน S3 console)

ตอนนี้คุณก็ได้เสร็จสิ้นการสอนเบื้องต้นแล้ว

สรุป

เนื้อหาทั้งหมดในบล็อกนี้แปลมาจากบล็อกต้นฉบับที่เขียนโดยคุณ べこみん ซึ่งเป็นบทความภาษาญี่ปุ่น สามารถเข้าไปชมบล้อกต้นฉบับได้ที่ลิ้งค์ด้านล่างนี้เลยครับ
- AWS Re-Introduction Blog Relay 2022 AWS CloudShell Edition