Coding 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 ต่อได้ที่นี่

การใช้งาน S3 Bucket
Apr 12, 24

aws

การใช้งาน S3 Bucket
AWS S3 คือ ที่ให้บริการจัดเก็บไฟล์ ซึ่งสามารถรองรับการเข้าถึง(Read)ไฟล์ ในปริมาณมากๆ และยังสามารถ Scale ได้โดยอัตโนมัติ
ทำความรู้จักกับ AWS Lambda
Apr 8, 24

aws

ทำความรู้จักกับ AWS Lambda
AWS Lambda คือ Serverless Compute Service เป็นบริการที่ช่วยให้เราสามารถ Deploy Application หรือ Script สำหรับการทำ Automation ขึ้นไป run บน AWS โดยที่ไม่ต้องสนใจเรื่องของ Infrastructure ใดๆเลย
AWS Cloudfront คืออะไร
Apr 1, 24

aws

AWS Cloudfront คืออะไร
AWS Cloudfront คือ Content Delivery Network(CDN) ที่ทำหน้าที่เก็บ Static Content ทั้งหลายไว้ใน Memory ของ Server ที่ถูกกระจายอยู่ทั่วโลก
การย้าย Data ขึ้นไปบน AWS
Mar 30, 24

aws

การย้าย Data ขึ้นไปบน AWS
การย้ายข้อมูล(Data Migration)หรือ Sync ข้อมูลจาก On-Premise ขึ้นไปบน AWS มีทางเลือกอะไรบ้าง
Top 10 AWS Machine Learning services
Mar 27, 24

aws

Top 10 AWS Machine Learning services
AWS มี Machine Learning Service หรือ AI Service ให้เราใช้หลายตัวเช่น Rekognition และ Sagemaker ลองมาดูกันว่า Machine Learning ต่างๆจะมาช่วยงานเรายังไงบ้าง
มาทำความรู้จักกับ AWS Route53
Mar 26, 24

aws

มาทำความรู้จักกับ AWS Route53
AWS Route53 เป็น DNS Service ที่คอยจัดการ Web Traffic ข้อดีของ ชื่อ Route53 มาจาก DNS Server จะเปิดให้บริการที่ port 53
ขั้นตอนการสมัคร AWS Account
Mar 24, 24

aws

ขั้นตอนการสมัคร AWS Account
Amazon Web Services หรือ AWS เป็นระบบคลาวด์ที่มีผู้ใช้งานมากที่สุดในโลก ในบทความนี้เราจะพาไปดูวิธีการเริ่มต้นสมัครสมาชิกเพื่อสร้าง AWS Account
รู้จักกับ AWS SDK
Feb 20, 24

aws

รู้จักกับ AWS SDK
AWS SDK คือ เครื่องมือที่ช่วยให้ Developer สามารถสร้าง Application หรือ Library เพื่อควบคุมการทำงานของ AWS ได้
การใช้งาน AWS CLI เบื้องต้น
Feb 20, 24

aws

การใช้งาน AWS CLI เบื้องต้น
AWS CLI คือเตรื่องมือที่ช่วยจัดการ resource บน AWS ผ่าน command line ซึ่งจะทำให้เราไม่ต้องทำงานซ้ำๆด้วยมือ
ขั้นตอนการสร้าง AWS EC2 Instance

aws

ขั้นตอนการสร้าง AWS EC2 Instance
AWS EC2 Instance คือ บริการให้ผู้ใช้สร้าง Virtual Machine(VM) ของตัวเอง ซึ่งผู้ใช้สามารถติดตั้ง Software หรือ Service ต่างๆ ลงใน Server ของตัวเองได้
Phanupong Permpimol
Follow me

Software Engineer ที่เชื่อในเรื่องของ Process เพราะเมื่อ Process ดี Product ก็จะดีตาม ปัจจุบันเป็นอาจารย์และที่ปรึกษาด้านการออกแบบและพัฒนา Software และ Web Security