Amazon Web Services(AWS) คือ ผู้ให้บริการ Cloud(Cloud Service Provider) ที่มีผู้ใช้บริการมากที่สุดในโลก โดยที่
- AWS จะจัดเตรียมและคอยดูแล Infrastructure ให้เรา
- ผู้ใช้งาน AWS สามารถ Scale application ได้ตามต้องการ
- ผู้ใช้งาน AWS จ่ายตามที่ใช้งานจริง
- ผู้ใช้งาน AWS สามารถเข้าถึง Resource ต่างๆได้ผ่านทาง internet
ซึ่ง ณ ปัจจุบัน AWS มี service ให้เราเลือกมากกว่า 200 services ไปแล้ว และนั่นก็เป็นปัญหาสำหรับผู้ใช่งานที่เพิ่งเริ่มหัดใช้งานด้วยเช่นกัน เพราะงานเดียวกันเราสามารถเลือกวิธีการ deploy application ได้หลายวิธี เช่น ถ้าเราอยากได้ Database server เราสามารถเลือกได้ 2 แนวทาง คือ
- สร้าง EC2 instance(Virtual machine) ขึ้นมาแล้วติดตั้ง database server ที่เราต้องการลงไปได้เลย
- ใช้บริการ Platform as a Service(PaaS) อย่าง Relational Database Service(RDS)
ซึ่งทั้ง 2 วิธีนี้จะต่างกันทั้งเรื่อง Availability และค่าใช้จ่าย(Cost) ถ้าเราจ่ายแพงกว่าเราก็จะได้ High Availability มากกว่า
การเข้าไปจัดการกับ Resource ต่างๆบน AWS
AWS Resource หมายถึง สิ่งที่เราสร้างขึ้นมาจากบริการของ AWS เหมือนเป็น Object ที่เราสร้างขึ้น เช่น เมื่อเราใช้บริการ EC2 เราจะสร้าง Instance ขึ้นมา ซึ่ง Instance ที่ถูกสร้างขึ้นมาจะเรียกว่า AWS Resource
ปัญกาของการทำงานกับ AWS คือเมื่อเวลาผ่านไป Resource ต่างๆจะถูกสร้างขึ้นมามากมาย โดยเฉพาะทีมไหนไม่ได้แยก Account ด้วยแล้วล่ะก็จะเจอปํญหาของการจัดการ Resource เยอะมากๆ
ซึ่งปัญหาของการใช้งาน Resource คือ
- ค้นหา Resource ไม่เจอ
- แยกไม่ออกว่า Resource นี้อยู่ใน Project ไหน
- Resource นี้อยุ่ตรงไหน ทำหน้าที่อะไรใน Project
AWS จึงได้เตรียมเครื่องมือสำหรับค้นหา Resource เรียกว่า AWS Resource Explorer มาแก้ปัญหาของการใช้งาน AWS
ขั้นตอนของการทำงานกับ AWS Resource Explorer จะเป็นดังนี้
-
เลือก Region โดยในขั้นตอนการ Setup จะมีให้เลือก 2 แบบคือ
- Quick Setup จะทำ Indexed(ใช้สำหรับการค้นหา) ไว้ในทุกๆ Regions
- Advance Setup เราสามารเลือกบาง Region มาทำ Indexed ได้
-
สร้าง View และกำหนดสิทธิการเข้าใช้งานให้กับ User
-
ค้นหาด้วยวิธีการค้นหาต่าง ดังนี้
- keyword ค้นหาด้วยข้อความที่เราต้องการได้เลย เหมือนกับ Google
- Service และ Region ค้นหาด้วยชื่อของ Service หรือชื่อของ Region
- Tag ค้นหาตาม Tag ที่เรากำหนดไว้
-
เราสามารถ Filter resource ที่ต้องการใส่เข้าไปใน AWS Resource Explorer ได้ในขั้นตอนนี้(ค่า default จะนำเข้าทุกๆ Resources)
-
เลือกเข้าไปใช้งาน Resources ต่างๆได้เลย
AWS Console
เป็นการเข้าใช้งาน AWS แบบ Manual(ใช้คนจัดการ) ผ่านหน้า Web โดยเข้าไปที่ AWS Console หลังจากนั้นคุณสามารถ Login เข้าไปใช้งานได้เลย
การ Login เข้าใช้งาน AWS Console
ถ้าเราต้องการเข้าไปใช้งาน AWS เราจะมี User ที่สามารถ Login เข้าใช้งาน 2 แบบคือ
-
Root User เป็น User ที่มีสิทธิสูงสุดควรจะ Login เข้าใช้งานเมื่อมีความจำเป็นเท่านั้น การ Login เข้าใช้งานเราต้องใส่
- Username (ใช้ E-mail address ที่เราสมัครเข้าใช้งาน)
- Password
-
IAM User เป็น User ที่ถูกสร้างขึ้นมาด้วย Root user หรือ Admin การ Login ด้วย IAM User การ Login ด้วย IAM User เราต้องใส่
- Account ID(เลข 12 หลัก)
- Username
- Password
AWS CLI
เป็นอีกหยึ่งทางเลือกที่น่าสนใจมากๆ เพราะเราสามารถเปลี่ยนการทำงานแบบ Manual ด้วยมือกลายไปคำสั่งใน command line เราสามารถใช้คำสั่งต่างๆได้ แบบนี้
- ถ้าเราต้องการ list รายชื่อ S3 bukcket ออกมาได้ด้วยคำสั่ง
$ aws s3 ls
- ถ้าเราอยากจะ upload ไฟล์ขึ้นไปบน S3 Bucket เราจะใช้คำสั่ง
$ aws s3 cp hello.txt s3://mybucket/hello.txt
- ถ้าอยากจะ Download ไฟล์ลงมาจาก S3 Bucket ด้วยการสลับที่ parameters ง่ายๆแบบนี้
$ aws s3 cp s3://mybucket/hello.txt hello.txt
- ถ้าเราต้องการ list รายชื่อของ EC2 instances ที่สร้างไว้บน AWS เราจะใชคำสั่ง
$ aws ec2 describe-instances
ดุวิธีการติดตั้งและใช้งาน AWS CLI เบื้องต้นได้ที่นี่
AWS SDK
การใช้งาน AWS SDK เป็นอีกวิธีนีึงที่จะจัดการ Resource ต่างๆบน AWS ซึ่งเราสามารถเลือกใช้ภาษาที่เราถนัดได้เลยเพราะ support เกือบทุกภาษา
เช่นถ้าเราต้องการสร้าง list รายชื่อ S3 Bucket ที่อยู่ใน Account ของเรา เราต้องเขียน Code แบบนี้
import {
S3Client,
ListBucketsCommand
} from "@aws-sdk/client-s3";
export async function main() {
const s3Client = new S3Client({});
const command = new ListBucketsCommand({});
const { Buckets } = await client.send(command);
console.log("Buckets: ");
console.log(Buckets.map((bucket) => bucket.Name).join("\n"));
return Buckets;
}
if (process.argv[1] === fileURLToPath(import.meta.url)) {
main();
}
ลองเข้าไปศึกษาวิธีการใช้งาน AWS SDK ต่อได้ที่นี่
ประมาณค่าใช้จ่ายด้วย AWS Price Calculator
การประมาณค่าใช้จ่ายเป็นสิ่งที่จพเป็น เพราะตอนจะสร้าง Project Plan เราต้องมีต้นทุน แล้วยิ่งเป็นต้นทุนที่ต้องจ่ายทุกเดือนด้วย(Operating Expenses: OpEx)
ซึ่งเราสามารถเข้าไปในคำนวนค่าใช้จ่ายด้วย Price Calculator
การใช้งาน Price Calculator เราต้องระบุ 2 อย่างคือ
- Region เพราะราคาในแต่ละ Region ไม่เท่ากัน
- Service ที่ต้องการคำนวนค่าใช้จ่าย เช่นถ้าเราจะประมาณค่าใช้จ่ายของ EC2 Instance เราจะต้องกำหนด
- เลือก Region เป็น ap-southeast-1
- เลือก Tenency เป็น Shared Instance
- เลือก Workload เป็น Constant Usage
- ระบุจำนวน Instances เป็น 3 Instances
- เลือก Instance Type เป็น t2.micro
- เลือกใช้ Compute Saving Plans เป็นระยะเวลา 3 ปี แต่ไม่จ่ายล่วงหน้า(No Upfront)
- เลือก Save and View Summary เมื่อต้องการดูราคา
- ถ้าจะเพิ่ม Service เข้ามาอีกให้เลือก Save and Add Service
สุดท้ายเราจะได้ค่าใช้จ่ายออกมาดังรูป