บันทึก Workshop AWS Cloud Essential Service Core

ช่วงเสาร์ อาทิตย์ ที่ผ่านมา ผมได้ลองลองฟัง Course AWS Cloud Essential Service Core ของ อ. เอกครับ จัดโดยทางกลุ่ม Zabbix in Thailand โดยเป็นการแนะนำการใช้งาน AWS เบื่องต้นครับ ที่จดๆ + ลอง Hand-On มีดังนี้

Intro to AWS

AWS มาจาก Amazon เว็บขายหนังสือ ที่มาปรับตัว Web มันใหญ่ ต้องขยายให้ที่อื่น เลยกลายเป็นว่าได้ Solution / Infra ของตัวเอง จาก Know How ในแต่ละ บ มาปรับตัวเป็นใน IT Infra > Cloud ขึ้นมา

การใช้ Cloud จะช่วยเรืองอื่นๆ ปรับจาก CapEx > OpsEx นะ แต่ต้องดู Requirement อะไรที่ควรไป Cloud (ต้องการ Scale ไวๆ) หรือ จริงๆ ถ้า On-Premise (VMware / Proxmox ) อนาคต Workload อีก 4-5 ปี ไม่ปรับแน่ๆ

Service Type: IAM / Compute / Storage / RDS (DB) / AI / IoT เป็นต้น

Region - พื้นที่ใหญ่ แนวคิดเหมือนกัน Cloud เจ้าอื่นๆนะ

  • Availability Zone - Node ย่อยของ Region นั้นๆ ตรงนั้นมี Data Center ใหญ่ๆ เปิดบริการ ขั้นต่ำ 2 Zone จะปรับเป็น Region ได้
  • Edge Location - Node ย่อยมองว่าเป็น Data Center ขนาดเล็ก ซึ่งอาจจะมีบาง Service เช่น EC2 / CloudFront (Caching) ช่วยในการทำ Caching ลด Latency

ถ้ามันใหญ่พอจาก Edge ขยับ Availability Zone มันจะคิดเป็นเงินบาทได้นะ แต่ต้องผ่านพวก Regulation ได้นะ มันต้องแฟร์กับทั้ง Cloud Provider / เจ้าของพื้นที่

Shared Responsibility - เหมือนกัน Cloud เจ้าอื่นๆ มันแบ่งความรับผิดชอบ การ Model ที่เราเลือก

Ref: https://aws.amazon.com/blogs/industries/applying-the-aws-shared-responsibility-model-to-your-gxp-solution/
  • Infrastructure Services - เราดูแลเกือบหมด ยกเว้น HW เช่น พวก Amazon EC2 ตรงนี้เรรสามารถ Custom ของตัวเอง ทำ VA / Pentest แล้วทำ Image ไว้ Deploy ต่อได้นะ

Cloud โดน Ransomware ได้นะ

  • Container Services - เราไม่ต้องลง OS / App และ Config เยอะ เช่น พวก RDS (Database)
  • Manage Services - เราเข้าไปใช้ ดูพวก Content ที่ใส่เข้าไป เช่น พวก S3 / AWS KMS

Service Overview

  • Admin IAM / IAM Identity Center - Organize มันจะเชื่อมพวก 365 ได้เลย
  • Compute - VM (EC2) / Container (ECS) / Serverless (Lambda)
  • Storage - S3 / CDN (CloudFront)
  • Network - VPC / Public IP (Elastic IP) / DNS Routing (Route53)
  • Database - RDS / Dynamo / Elastic Cache
  • Application - SQS / SNS / StepFunctions / EventBridge
  • DevOps - CodePipeline / CloudWatch / CloudFormation
  • Security - KMS / WAF / CloudTail พวก Log
  • AI/ML Service Amazon Q / Amazon BedRock / Amazon Rekognition / SageMaker มีกับค่ายอื่นได้

IAM

เป็น Service จัดการ Identity ถ้ามาจากสาย Windows Server พวก AD โดยตอนนมี 2 แบบ

  • IAM - Account AWS
  • IAM Identity Center - จัดการให้ user ข้างนอก เข้ามาใช้ เช่น เมล์องค์กรเรา

Account

  • Root Account - ใหญ่สุดทำได้ทุกอย่าง
  • AWS Account - User ใน IAM

เรื่องเมล์ Root Account / AWS Account ตกลงกันให้ดีๆ ที่สร้างให้ดีนะ เพราะ เมล์นั้นเป็นเจ้าของ Data นะ มันจะปัญหาการ Transfer Data นะ ถ้าเปลี่ยนทีพวก IP และแน่ๆพังหมด

IAM

IAM มันจัดการ 4 ส่วน Policy

  • Policy - สิทธืการใช้ Workload แต่ละแบบ
  • Rule - ให้ใช้ Policy ไหน มองเป็นหมวกอะไรได้บ้าง
  • Users - เอาหมวกใส่
  • Users Groups จัดการเป็นแผกน เราจะเอา Rule / Policy มาใส่ในนี้

IAM Identity Center

  • Permission Set Policy + Rule
  • Users เชิญคนเข้ามาใช้
  • Group

ในส่วนนี้ต้องใส่สิทธิต้องใช้ AWS Account มา Link User นอก IAM Identity Center ว่า AWS Account อนุญาตสิทธิ User นอกมาทำอะไร (Federated User)

EC2

EC2 มัน คือ VM ที่เราใช้กัน พวก Physical HW อยู่กับ AWS เราเลือก Spec / Network / AMI โดยที่ AMI (Amazon Machine Image) เป็น Image สำหรับ Initial VM โดยของ AWS มันจะ patch มาให้แล้วนะ ตัวที่ Optimize สุดกับ EC2 Amazon Linux แต่ถ้าอยากได้เพิ่ม เราไปหาได้นะ ELK ที่มีคนทำไว้ เลือกเอามีตัวฟรี เสียเงิน และก็ ถ้าทำไว้ เอามาขายได้

Instance Type code.InstanceGen.Size เข่น c.4.large โดยทีตัว Spec เครื่องมีรูปแบบ ดังนี้

  • General Purpose (m)
  • Compute Optimize (c) เน้น CPU
  • Storage Optimize (i, d, HI)
  • GPU (g)
  • Memory Optimized (r3)
  • Small Instance (t) ตัวฟรี ช่วงแรกๆ

AMS Graviton > ARM Base VM

Storage Option

  • Elastic Block Store (EBS)
    - HDD - large streaming workload เริ่มต้นนี้ก่อน
    - SSD - เล็ก ถี่ๆ IOPS สูงๆ
  • Instance Store - Temporary ปิดหายยย
  • Elastic File System (EFS)
    - Block Storage
    - File Storage - อารมณ์ประมาณ Share Drive / เอาไป mount ได้ แต่ต้องไม่ใช่ Windows

*** Cloud เน้น snapshot > backup เยอะๆ

พวก EBS เราสามารถทำ Snapshot เป็นการ Backup โดยที่ตัว Snapshot เรามา

  • Initial เป็น AMI ใช้ เป็น Master Image ลง Tools พร้อม
  • create volume ใหม่ เอาไปเสียบที่ ec2 ได้ แต่ต้องปิด ec2 ก่อน และอยู่ใน AZ เดียวกัน

Long time EC2 ถุกกว่า Manage Service นะ

Key Pair (Login) เป็น Authorize ใช้กับ Service อื่นๆ หรือ Instance อื่นๆได้ ซึ่งถ้า key หมดอายุมันจะ revoke ออก ตรงนี้จัดการได้จาก KMS อีกที

Auto-assign public IP - Enable ไม่ติดเงิน แต่ถ้าปิดเครื่องใหม่หายนะ ถ้าสร้าง EC2 ไปแล้วมาเติมที่หลังไม่ได้นะ ต้องเอา Elastic IP มาจิ้มกับตัวนี้ เสียเงิน

Amazon Lightsail

เป็น EC2 ที่ลง App มาให้แล้ว พวก WordPress ขึ้นมาให้เลย บาง Host มาทำเองบนนี้นะ มี Software อย่าง cPanel / Plesk 

AmazonLightsail

S3

S3 (Simple Storage Service) เป็นข้อมูลนอกจากตัว EBS / EFS ที่ใข้กับพวก EC2 โดยที่ S3 Scope มันระดับ Region เดี๋ยวมันไปหาที่กระจาย Data ในแต่ละ AZ เอง และไม่มี Max Capacity โยนไฟลไปเรื่อยๆ เราก็จ่ายมากขึ้นนั่นเอง

  • Bucket - Region Scope แค่ชื่อต้อง Globally Unique
  • Object - ไฟล์ที่เราโยนเข้าไป + metadata

การ Access ไฟล์ bucket + key (+ version) อันนี้ขึ้นกับสิทธิอีกทีนะ

Access Policy

  • Bucket Policy and ACL
  • Object ACLs
  • Bucket Block Public Access Settings - ตอนนี้ Default เปิดแล้ว แต่พวกทีเอา Static Web มา Host ไว้ อันนีต้องเปิด public นะ แค่จะไม่ได้ https นะต้องเอา Service อื่นๆมาครอบ

Encryption

  • Server-side Encryption (SSE-S3) / Custom เอามาใส่ใน KMS
  • Client-side ต้องใช้ SDK เปิด ให้ Encrypt ช่วง Transport

Versioning เวลาเราโยนไฟล์ชื่อซ้ำกับ ตัว Cloud เก็บแยกใด้ (Bucket > Management > Enable Versioning)

ถ้าเปิด versioning มันแสดงไฟล์ตาม Version ถ้าลบมันจะ Flag เป็น Delete maker
ถ้าจะยกเลิกการลบไป Delete ตัวที่เป็น Delete maker ทิ้ง

ตอนลบไฟล์ ต้องไป Clear Recycle Bin นะ ไม่งั้นมันแอบเก็บเงินเงียบๆ และไปลบเวอร์เก่าๆออกด้วย ถ้าปล่อยไว้กินเงิน หรือ ให้ตัว Lifecycle มันมาจัดการ อาจจะต้องรออย่าน้อย 1 วัน

ปกติ ตอนเราโยนไฟล์ไป มันจะแอบไปเก็บในทุก AZ นะ กันหาย

Tier ไล่ความอัตราการ access ที่บ่อยสุด เรียงได้ไว จนแบบใช้น้อยไม่ค่อยเรียก ตัวที่สำคัญ ดัวนี้

  • S3 Standard - ตัวปกติที่เราใช้กัน
  • S3 Intelligent-Tier ถูกกว่า S3 แต่มันจะมีค่า Fee ถ้ามีไฟล์ Type ใหม่โผล่มา เช่น เดิมเก็บแต่ .pdf แล้ววันนึงมี .vmdk เข้ามา เราจะโดนค่า Fee จุดนี้
  • S3 Standard-IA ถ้าดึงออกมาจะโดนค่า Fee
  • S3 One Zone-IA จากเดิมที่ S3 1 Bucket มันกระจายไปอยู่ที่ AZ ตอนนี้ยุบเหลือ AZ เดียวที่เก็บ + ถ้าดึงออกมาจะโดนค่า Fee
  • S3 Glacier กลุ่ม Archive Data

Life Cycle - ก่อนอื่นพวก S3 เหมือนน้ำ หรือ ไหลจากสูงลงไปต่ำ เช่น S3 Standard > S3 One Zone-IA > S3 Glacier โดยเราสามารถคุมได้จากตัว Life Cycle และตั้งเงื่อนไขเอา

ตอนลบ S3 ที่ไม่ใช
- ต้อง Empty Data ออกทั้งตัวหลัก และ Versioning
- มาลบตัว S3 Bucket ออกไป

RDS

RDS - เป็นตัว Manage Service ของ AWS เราเปิดเลือกเครื่องอารมณ์แบบตอนทำ EC2 + เลือก DB Engine โดยรองรับหลายตัวนะ เช่น Amazon Aurora (ของเค้าเอง ต่อกับ App PostgreSQL / MySQL ได้เลย) , MySQL , MariaDB, PostgreSQL , MSSQL

  • Instance Options
    - General-purpose (m) ถ้าเน้น perf + disk ที่ IOPS ดีๆ
    - Memory-optimized (r)
    - Burstable-performance (t) มี Tier ฟรีนะ มันเป็นเครื่องที่ช้าพอใช้ได้ ได้ CPU ไม่เต็ม ราคาจะถูก แต่เปิด mode turbo ได้ แต่หัก Credit (ได้มาตอนใช้น้อย) และเสียเงินไปตามลำดีบ
  • Instance Storage
    - General Purpose SSD
    - Provisioned IOPS SSD > For consistent throughput
  • Parameter Groups - เป็นค่าตั้งต้นของ DB Engine แต่ละตัว ถ้า PostgreSQL ก็ตัว postgresql.conf

รูปแบบการ Deploy ปกติจะมี instance พวก Burstable-performance เลือกแบบนี้ได้ แต่ถ้าต้องการความมั่นใจ มีเลขเก้ามากขึ้นมี 2 แบบ

  • Multi-AZ DB Instance - failover < 60 sec
  • Multi-AZ DB Cluster - fail over < 35 sec / ตัวที่ Replicate ไป Read ได้ด้วยนะ

ปกติแล้วตัว DB จะอยู่ใน IP วง Private ตอนลองทำ Hand-On มีทำ EC2 ขึ้นมาเป็น อยู่ใน Public ทำหน้าที่เป็น Jump Host

พอแยกเป็น rds (private) / ec2 (public) ตัว security group ระบบจะ auto gen มาให้ทั้ง 2 ขา และ Add Rule IP นะ

Backup - Automated backups during daily backup window ตั้งเวลา + retention period ได้ แต่ก็ manual ได้นะ ต้องลบเอง

Restore - a specific point in time > create a new DB Instance

Delete ถ้าไม่ใช่ Delete เลย อย่าไป Stop บางทีมันเปิดเองนะ เอากินเงินนะ และก็ตอนลืมอย่าลึม ติ๊ก Create Final Snapshot / Retain Automated Backups ออก ถ้าไม่ได้ใช้แล้ว

VPC

VPC เป็น Network ระดับ Region โดยแต่ละ Region เค้าจะ default มาให้แล้ว 1 ตัวนะ จากนั้นเราค่อยมาแบ่ง subnet ย่อยตาม requirement เลย

สำหรับ Service ที่เกี่ยวข้องกับ VPC มี ดังนี้

  • Public & Private Subnets แยกวงต่อเนตได้ กับต่อไม่ได้
  • Elastic IP - IP ที่เราซื่อแยก มันไม่ปลี่ยน เพราะจ่ายเงินแล้ว แต่ถ้าเอามันไปผูกกับ Private Subnets จะโดนค่า NAT Gateway เพิ่มไป
  • Internet Gateway ฟรี แต่ NAT Gateway ไม่ฟรี
  • Route Table - คุยข้าม AZ ใครคุยอะไร และใครออกไป internet gateway ได้
  • NAT Gateway
  • Network ACLs - บอก policy route table
  • Bastion Host - jump host
  • Security Group คุ้มข้าม subnet เป็น Firewall หน่อยๆ คล้ายกับ NSG ของ Azure
  • ใน subnet มี IP ถูก reserve ไว้ 2-3 IP พวก Gateway / Broadcast

VPC มี Visualize สวยดีนะ

ลองสร้าง VPC และขึ้น resource public ec2 1 instance / private ec2 2 instance

Access AWS Services อื่น เช่น พวก S3

  • Option 1: NAT + Internet Gateway อ้อมโลก
  • Option 2: Gateway Endpoints for S3 and DynamoDB only - ฟรี แต่ต้องวาง Structure ตั้งแต่แรก ต้องเปิดไว้ตั้งแต่ตอนสร้าง VPC เพิ่มที่หลังไม่ได้
  • Option 3: AWS PrivateLink (Interface Endpoint) - เสียเงิน มันเป็น NAT Gateway สำหรับ Service

หลังเรียนจบ ช่วงนี้ AWS มี Cert AWS Certified Cloud Practitioner(CLS02) คล้ายกับพวก AZ-900 ของ Azure วันนี้ความรู้อัดแน่นเต็มไปหมด


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.