Codding Gun

มารู้จักกับ Amazon Web Services(AWS)

Amazon Web Services(AWS) คือ ผู้ให้บริการ Cloud(Cloud Service Provider) ที่มีผู้ใช้บริการมากที่สุดในโลก โดยที่

  1. AWS จะจัดเตรียมและคอยดูแล Infrastructure ให้เรา
  2. ผู้ใช้งาน AWS สามารถ Scale application ได้ตามต้องการ
  3. ผู้ใช้งาน AWS จ่ายตามที่ใช้งานจริง
  4. ผู้ใช้งาน AWS สามารถเข้าถึง Resource ต่างๆได้ผ่านทาง internet

ซึ่ง ณ ปัจจุบัน AWS มี service ให้เราเลือกมากกว่า 200 services ไปแล้ว และนั่นก็เป็นปัญหาสำหรับผู้ใช่งานที่เพิ่งเริ่มหัดใช้งานด้วยเช่นกัน เพราะงานเดียวกันเราสามารถเลือกวิธีการ deploy application ได้หลายวิธี เช่น ถ้าเราอยากได้ Database server เราสามารถเลือกได้ 2 แนวทาง คือ

  1. สร้าง EC2 instance(Virtual machine) ขึ้นมาแล้วติดตั้ง database server ที่เราต้องการลงไปได้เลย
  2. ใช้บริการ 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 คือ

AWS จึงได้เตรียมเครื่องมือสำหรับค้นหา Resource เรียกว่า AWS Resource Explorer มาแก้ปัญหาของการใช้งาน AWS

ขั้นตอนของการทำงานกับ AWS Resource Explorer จะเป็นดังนี้

AWS Resource Explorer
ขั้นตอนการทำงานกับ AWS Resource Explorer

  1. เลือก Region โดยในขั้นตอนการ Setup จะมีให้เลือก 2 แบบคือ

    • Quick Setup จะทำ Indexed(ใช้สำหรับการค้นหา) ไว้ในทุกๆ Regions
    • Advance Setup เราสามารเลือกบาง Region มาทำ Indexed ได้
  2. สร้าง View และกำหนดสิทธิการเข้าใช้งานให้กับ User

  3. ค้นหาด้วยวิธีการค้นหาต่าง ดังนี้

    • keyword ค้นหาด้วยข้อความที่เราต้องการได้เลย เหมือนกับ Google
    • Service และ Region ค้นหาด้วยชื่อของ Service หรือชื่อของ Region
    • Tag ค้นหาตาม Tag ที่เรากำหนดไว้
  4. เราสามารถ Filter resource ที่ต้องการใส่เข้าไปใน AWS Resource Explorer ได้ในขั้นตอนนี้(ค่า default จะนำเข้าทุกๆ Resources)

  5. เลือกเข้าไปใช้งาน Resources ต่างๆได้เลย

AWS Console

เป็นการเข้าใช้งาน AWS แบบ Manual(ใช้คนจัดการ) ผ่านหน้า Web โดยเข้าไปที่ AWS Console หลังจากนั้นคุณสามารถ Login เข้าไปใช้งานได้เลย

หน้าแรก AWS Console
AWS Console หน้าแรก

การ Login เข้าใช้งาน AWS Console

ถ้าเราต้องการเข้าไปใช้งาน AWS เราจะมี User ที่สามารถ Login เข้าใช้งาน 2 แบบคือ

  1. Root User เป็น User ที่มีสิทธิสูงสุดควรจะ Login เข้าใช้งานเมื่อมีความจำเป็นเท่านั้น การ Login เข้าใช้งานเราต้องใส่

    • Username (ใช้ E-mail address ที่เราสมัครเข้าใช้งาน)
    • Password

    Login ด้วย Root User

  2. IAM User เป็น User ที่ถูกสร้างขึ้นมาด้วย Root user หรือ Admin การ Login ด้วย IAM User การ Login ด้วย IAM User เราต้องใส่

    • Account ID(เลข 12 หลัก)
    • Username
    • Password

    Login ด้วย IAM User

AWS CLI

เป็นอีกหยึ่งทางเลือกที่น่าสนใจมากๆ เพราะเราสามารถเปลี่ยนการทำงานแบบ Manual ด้วยมือกลายไปคำสั่งใน command line เราสามารถใช้คำสั่งต่างๆได้ แบบนี้

ดุวิธีการติดตั้งและใช้งาน 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

AWS Price Calculator
คำนวนค่าใช้จ่ายด้วย AWS Price Calculator

การใช้งาน Price Calculator เราต้องระบุ 2 อย่างคือ

  1. Region เพราะราคาในแต่ละ Region ไม่เท่ากัน
  2. 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

สุดท้ายเราจะได้ค่าใช้จ่ายออกมาดังรูป

Cost Estimation
ผลลัพธ์จากการประมาณค่าใช้จ่ายด้วย AWS Price Calculator

อ่านบทความอื่นๆเกี่ยวกับ AWS ต่อได้ที่นี่

Phanupong Permpimol
Follow me