ชวนมารู้จัก AWS EC2, S3, RDS และอีกหลากหลายบริการหลัก เข้าใจภาพรวมได้ในบล็อกเดียว!
เมื่อวันที่ 9 มิถุนายนที่ผ่านมา แนนได้มีโอกาสเข้าร่วม AWSome day online conference เลยอยากจะมาเขียนสรุปความรู้ที่ได้จากการเข้าร่วม และอยากจะมาแชร์ให้ทุกๆคนได้อ่านกันด้วยค่ะ
AWSome day คืออะไร?
งานอบรมเกี่ยวกับคลาวด์ AWS ที่จะมาให้ความรู้พื้นฐานที่มือใหม่ควรรู้ไว้ เหมาะสำหรับผู้เริ่มต้นศึกษาการใช้งานคลาวด์ โดยเนื้อหาแบ่งออกเป็น 5 โมดูล
โมดูล 1 : ความรู้เบื้องต้นเกี่ยวกับ AWS
โมดูล 2 : ความรู้เบื้องต้นเกี่ยวกับบริการของ AWS (การประมวลผล ที่จัดเก็บข้อมูลและฐานข้อมูล)
โมดูล 3 : ความรู้เบื้องต้นเกี่ยวกับบริการของ AWS (ระบบเครือข่ายและความปลอดภัย)
โมดูล 4 : นวัตกรรมกับ AWS
โมดูล 5 : สรุปหลักสูตร
เนื้อหาในบล็อกเป็นการสรุปสาระสำคัญจากงาน AWSomeday Conference และนำมาเรียบเรียงใหม่เพื่อนำเสนอให้ผู้เริ่มต้นใช้งานคลาวด์สามารถเข้าใจได้ง่ายมากยิ่งขึ้น โดยบล็อกนี้แนนจะมาแนะนำถึง core service หรือบริการด้านหลักๆของ AWS ให้ทุกคนได้เข้าใจกันค่ะ ถ้าพร้อมแล้วก็ไปอ่านกันเลยยย
อธิบายคำศัพท์ในบล็อกนี้ ?คลิกเพื่ออ่านเพิ่ม?
1. OS Operating System หรือระบบปฏิบัติการ = ซอฟต์แวร์ที่ทำหน้าที่ควบคุมการทำงานของคอมพิวเตอร์ เช่น Linux, Windows, MAC
2. Deploy = การติดตั้ง ปรับใช้ นำสิ่งที่เราทำสร้างขึ้นไปใช้งานบนเซิร์ฟเวอร์จริงๆ เช่น การ deploy website คือการนำ code ต่างๆที่เราเขียนขึ้นไปรันบนเว็บไซต์
3. Migrate = การย้ายข้อมูลจากระบบหนึ่งๆไปยังระบบอื่นๆ เช่น การ migrate on premise to on cloud คือการย้ายจาก on premise ไปยัง cloud นั่นเองค่ะ
4. Workload = ปริมาณงาน
5. FaaS (Function as a Service) = การให้บริการแค่เพียงฟังก์ชันเดียว ในที่นี้หมายถึง AWS Lambda ที่ใน 1 Lambda จะใช้งานได้แค่ 1 ฟังก์ชันเท่านั้น
6. Object = หน่วยเรียกข้อมูลที่จัดเก็บไว้ใน Storage
7. snapshot = การเก็บหรือคัดลอกข้อมูลสำรองเอาไว้
8. Relational database(SQL) = ฐานข้อมูลเชิงสัมพันธ์ คือการเก็บข้อมูลในรูปแบบที่เป็นตาราง เหมาะกับงานที่ต้องการ complex analysis
9. Non-relational database(NoSQL) = ฐานข้อมูลอื่นๆที่ไม่ใช่ Relational database(SQL) เหมาะกับงานที่ต้องการความรวดเร็ว เช่น งานที่ต้องการความแฝงต่ำ
10. Low latency หรือความแฝงต่ำ = การรับส่งข้อมูลโดยใช้เวลาน้อยมาก
ความรู้เบื้องต้นเกี่ยวกับบริการของ AWS
ในบล็อกนี้จะมาอธิบายถึง core services หลักๆบน AWS อย่างเช่น EC2 (เซิร์ฟเวอร์ประมวลผล), S3 (พื้นที่เก็บข้อมูล และ RDS (ฐานข้อมูล) ซึ่งด้วยบริการต่างๆเหล่านี้จะทำให้เรา deploy หรือ migrate workload บน AWS ได้อย่างปลอดภัยและมีประสิทธิภาพมากขึ้นนั่นเองค่ะ
ก่อนจะแนะนำในแต่ละ services แนนขอมาแนะนำถึงแนวคิดพื้นฐานของการใช้งาน physical server (หรือที่เราคุ้นหูกันว่า on premise) กันซักเล็กน้อยก่อนนะคะ
การใช้งานแบบ On premise
เมื่อพูดถึงโครงสร้างพื้นฐานของการใช้งานแบบ on premise ในเซิร์ฟเวอร์หนึ่งๆจะต้องประกอบไปด้วยหลายองค์ประกอบ ไม่ว่าจะเป็น CPU สำหรับประมวลผลข้อมูล, Memory หน่วยความจำสำหรับเก็บข้อมูลระยะสั้น, Disk สำหรับเก็บข้อมูลระยะยาวและเชื่อมต่อกับเซิร์ฟเวอร์อื่นๆ
แต่แท้จริงแล้วเราไม่สามารถใช้เซิร์ฟเวอร์ของเราได้อย่างเต็มประสิทธิภาพ เพราะมักจะใช้เซิร์ฟเวอร์เพียงแค่ 10-30% จากทั้งหมดที่ลงทุนไปเท่านั้น ทำให้เกิดความสิ้นเปลืองทรัพยากรที่เตรียมมา แถมยังไม่คุ้มค่าการลงทุนไปอีกด้วย
?แน่นอนว่าระบบคลาวด์ AWS จะเข้ามาช่วยแก้ปัญหาเหล่านั้น สามารถช่วยให้เราใช้งานทรัพยากรได้อย่างเต็มประสิทธิภาพนั่นเองค่ะ! (ノ◕ヮ◕)ノ✧
ทีนี้เราก็ไปลงรายละเอียดในแต่ละ core services กันเลยยยยย
Amazon Elastic Compute Cloud (EC2)
บริการประมวลผลที่สามารถปรับขนาดได้บนระบบคลาวด์ ช่วยให้ผู้ใช้สามารถประมวลผลบนระบบคลาวด์ deploy หรือ migrate workload จาก on premise มารันอยู่บน EC2 ได้
รองรับระบบปฎิบัติการ Linux Windows และ MacOS ในบาง region เช่น region ที่ใกล้ประเทศไทยที่สุดอย่างสิงคโปร์ก็รองรับระบบปฏิบัติการ Mac เช่นกัน
จุดเด่นของ EC2
-
จุดเด่นหลักๆคือเป็นระบบประมวลผลที่มีความยืดหยุ่นมาก เพราะมีหลากหลาย instance type สามารถเลือกใช้ให้เหมาะสมกับ workload ของเรา อีกทั้งยังสามารถเพิ่มลด ปรับขนาด หรือเปิดปิดอินสแตนซ์ได้ตามต้องการ
EC2 Pricing
→ On demand
-
รูปแบบการคิดค่าบริการตามการใช้งานจริง ที่ให้ความยืดหยุ่นสูงสุด เราสามารถควบคุม ตั้งค่า deploy ให้ scale up-down ตามที่ต้องการได้ทันที เหมาะสำหรับ workload ที่เปลี่ยนแปลงบ่อย หรือรันเพียงชั่วคราว
→ Reserved instances
-
การแจ้งจองใช้งานอินสแตนซ์ EC2 ล่วงหน้าเป็นระยะเวลา 1 หรือ 3 ปี เหมาะสำหรับ workload ที่มีการทำงานอย่างถาวร หรือเป็นงานที่รันอย่างต่อเนื่อง เช่น public website
สามารถอ่านบล็อกเกี่ยวกับ EC2 reserved instances ได้ที่นี่ → ชวนมาประหยัดค่าใช้จ่ายให้มากขึ้นด้วยการใช้ EC2 Reserved Instances!
→ Saving plan
-
การแจ้งจองใช้งานอินสแตนซ์ EC2 เป็นระยะเวลา 1 หรือ 3 ปี โดยสามารถ commit จำนวนชั่วโมงที่ต้องการจะใช้ต่อเดือน จะได้รับส่วนลดตามสัดส่วนเมื่อใช้งานถึงชั่วโมงที่เรา commit ไว้
สามารถอ่านบล็อกเกี่ยวกับ EC2 reserved instances และ saving plans ได้ที่นี่ → Saving Plan vs. Reserved Instance ต่างกันยังไง บล็อกนี้มีคำตอบ!
AWS Lambda
เป็นบริการ serverless ในรูปแบบของ FaaS (Function as a Service) โดย Lambda จะถูกสร้างมาเพื่อใช้งานสำหรับ 1 Function เท่านั้น และมีลักษณะการใช้งานแบบ Event-driven trigger คือจะต้องมีสิ่งไปกระตุ้นให้ Lambda ทำงานนั่นเอง ทำให้เราไม่จำเป็นต้องจัดการให้เซิร์ฟเวอร์ทำงานตลอดเวลา ไม่สิ้นเปลือง resources และจ่ายเงินแค่ฟังก์ชันที่ใช้เท่านั้น
แผนภาพการทำงานแบบ Event-driven
แจ้งเตือนเมื่อมีรูปภาพอัพโหลดมาที่ storage(bucket) → trigger Lambda → แจ้งเตือนผ่าน Amazon SNS มาที่เรา
Managed vs. unmanaged service
→ Unmanaged Services
-
คือรูปแบบการให้บริการที่เราใช้งานเซิร์ฟเวอร์บน EC2 แต่เรามีส่วนที่ต้องดูแลรับผิดชอบเซิร์ฟเวอร์ด้วยตัวเอง เช่นการปรับขนาด ความพร้อมใช้งาน ไปจนถึงการตั้งค่า OS patch อย่างไรก็ตาม AWS มีให้บริการที่เรียกว่า Managed service ซึ่งจะเข้ามาช่วยจัดการงานในส่วนนั้นให้แทนให้ได้ค่ะ
→ Managed Services
-
Managed Services ของ AWS จะช่วยดูแลครอบคลุมหลากหลายฟังก์ชันการใช้งาน ตั้งแต่พื้นที่จัดเก็บ (Storage) และฐานข้อมูล (Database) ไปจนถึงการรักษาความปลอดภัย (Security) เครือข่าย (Network) รวมไปถึงการกำหนดสิทธิการเข้าถึง
Storage service
AWS มีบริการในส่วนของ storage (พื้นที่จัดเก็บ) ให้เราเลือกใช้ได้หลากหลาย โดยแต่ละบริการก็จะเหมาะสำหรับโปรเจคที่แตกต่างกันออกไป
Amazon Simple Storage Service (S3)
บริการจัดเก็บข้อมูลบนระบบคลาวด์ เราเรียกข้อมูลที่เก็บไว้ว่า "object" โดย S3 มีจุดเด่นคือมีความทนทานสูง สามารถเข้าถึงข้อมูลที่เก็บไว้ได้ตลอดและรวดเร็ว ที่สำคัญคือเราสามารถเลือกเก็บข้อมูลไว้ใน region เดียวกันหรือต่างกันก็ได้
สามารถอ่านบล็อกเกี่ยวกับ S3 ได้ที่นี่ → Amazon S3 คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022
?หลายคนอาจสงสัยว่าความทนทานสูงในที่นี้หมายถึงอะไร
ความทนทานหมายถึงการที่ข้อมูลจะถูกเก็บไว้และไม่สูญหายไปไหน โดยในการอบรมครั้งนี้ ผู้บรรยายได้ยกตัวอย่างให้เห็นภาพไว้ว่า "ถ้าคุณเก็บไฟล์จำนวนสิบล้าน object ใน Amazon S3 คุณมีโอกาสที่จะสูญเสียไฟล์ 1 object ทุกๆหมื่นปี" เป็นไงล่ะ สุดยอดไปเลยใช่ไหมคะ ✪ ω ✪
Amazon S3 Glacier
บริการจัดเก็บข้อมูลที่ถูกออกแบบมาสำหรับการเก็บระยะยาว ไม่จำเป็นต้องเข้าถึงข้อมูลบ่อย เช่นข้อมูลด้าน healthcare หรือ financial โดยการเข้าถึงข้อมูลอาจใช้เวลานานกว่า S3 ในหลักนาทีหรือชั่วโมงขึ้นอยู่กับการตั้งค่าของเรา
หากข้อมูลที่เราต้องการเก็บเป็นข้อมูลลักษณะนี้ การเลือกใช้งาน S3 Glacier จะเป็นตัวเลือกที่เหมาะสม อีกทั้งช่วยให้เราสามารถประหยัดค่าใช้จ่ายลงไปได้ถึง 90% เมื่อเทียบกับ S3
สามารถอ่านบล็อกเกี่ยวกับ S3 Glacier ได้ที่นี่ → Amazon S3 Glacier Flexible Retrieva
นอกจาก 2 ฟังก์ชันนี้แล้ว AWS ยังมีฟังก์ชันการใช้งาน Storage service อีกมากมายที่ไม่ได้ถูกหยิบยกมาพูดในการอบรมครั้งนี้ แต่ทีมงานคลาสเมธอดเคยเขียนบล็อกแนะนำฟังก์ชันการใชงาน S3 ไว้แล้วค่ะ สามารถเข้าไปอ่านเกี่ยวกับฟังก์ชันการใช้งานเพิ่มเติมได้ที่บล็อก Amazon S3 คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022 นี้เลย มีอัพเดทถึงปี 2022 แล้วด้วยน้า
Amazon Elastic Block Store (Amazon EBS)
ทำหน้าที่เป็น persistent block storage หรือ บริการพื้นที่จัดเก็บข้อมูลแบบแยกชิ้นส่วนเป็นบล็อกๆของ EC2 instances แต่ละบล็อกจะเก็บข้อมูลชิ้นเดียวและกระจายไปตามที่เรากำหนด ทำให้สามารถเก็บข้อมูลแบบเล็กๆ และสามารถเก็บโดยระบบปฏิบัติการที่ต่างกันได้
จุดเด่นของ Amazon EBS คือรองรับการทำ snapshot (ถ้าให้เปรียบเทียบก็เหมือนกับการที่เราแคปหน้าจอบันทึกข้อมูล) ไปเก็บไว้ใน S3 เพื่อเพิ่มประโยชน์ด้านความทนทานของข้อมูลและความพร้อมใช้งาน และรองรับการทำ encryption at rest หรือการเข้ารหัส เพื่อเพิ่มความปลอดภัยของข้อมูลใน block storage นั้นๆด้วยค่ะ
Database service
มีตัวเลือกด้านฐานข้อมูลในลักษณะของ purpose-built database ให้เหมาะสมกับความต้องการของการใช้งาน และช่วยในเรื่องของการ scale เพื่อรองรับการขยายของฐานข้อมูลด้วย
DIY (self-managed database)
-
เราสามารถใช้งานแบบ DIY คือการใช้งาน database บน EC2 และดูแลรับผิดชอบในส่วนของ high availability, fault tolerances, database backup หรือ OS ด้วยตัวเอง
AWS managed database
-
Database service ของ AWS เป็นแบบ fully managed service ซึ่งหมายความว่าเราไม่จำเป็นต้องจัดการใดๆเลย เพราะ AWS จะดูแลให้เราทั้งหมด และยังมีความหลากหลาย เพราะมีทั้งแบบ SQL และ NoSQL เลยค่ะ
Amazon RDS
สามารถรองรับ Database engine ได้ 6 ตัว ได้แก่ Amazon Aurora, Oracle, Microsoft SQL server, PostgreSQL, MySQL, MariaDB
สามารถอ่านบล็อกเกี่ยวกับการใช้งาน Oracle เพิ่มเติมได้ที่ →ทดลองใช้งาน Oracle ด้วย RDS
นอกจากนี้ Amazon RDB ยังมีฟีเจอร์ต่างๆที่ช่วยให้สามารถจัดการฐานข้อมูลได้ง่ายขึ้น เช่น Automatic backup หรือ maintenance windows และสามารถรัน database instances ในรูปแบบ multi AZ (การสำรองไว้ในหลายโซน →อ่านเพิ่มเติมคลิกที่นี่เลย) เพื่อเพิ่มความทนทานข้อฐานข้อมูล อีกทั้งยังสามารถ scale เพิ่มลด compute resource หรือ storage capacity ตามความต้องการหรือการเติบโตของฐานข้อมูลได้เช่นกัน
สามารถอ่านบล็อกเกี่ยวกับ Amazon RDS เพิ่มเติมได้ที่
→ AWS : Amazon RDS คืออะไร
→【สำหรับมือใหม่】เปรียบเทียบ RDS กับ RDB on EC2
Amazon Aurora
สามารถใช้งานร่วมกับ MySQL หรือ PostgreSQL ที่เป็น relational database สำหรับใช้งานบน cloud โดยจุดเด่นๆของ Amazon Aurora คือเป็นบริการแบบ serverless ซึ่งเข้ามาช่วยในเรื่องของ on demand access และสามารถทำ automatic start / shut down / scale เพื่อลดค่าใช้จ่ายได้ เมื่อเทียบกับ standard MySQL database แล้วสามารถทำงานได้เร็วกว่าถึง 5 เท่า และค่าใช้จ่ายถูกกว่าอีกด้วย
สามารถอ่านบล็อกเกี่ยวกับ Amazon Aurora เพิ่มเติมได้ที่ → Aurora vs RDS แตกต่างกันอย่างไร ?
Amazon DynamoDB
ฐานข้อมูลเชิงไม่สัมพันธ์ หรือ Non relational database ที่มีความเร็วและความยืดหยุ่นสูง เหมาะสำหรับ application ที่ต้องการความแฝงต่ำหรือ low latency ในระดับมิลลิวินาที โดย DynamoDB เป็น fully managed database ซึ่งสามารถช่วยลดภาระในการจัดการกับฐานข้อมูลใดๆ กล่าวคือ ไม่ต้องจัดเตรียมหรือตั้งค่าฮาร์ดแวร์เลยนั่นเองค่ะ
สามารถอ่านบล็อกเกี่ยวกับ Amazon DynamoDB เพิ่มเติมได้ที่ → Amazon DynamoDB คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022
สรุป
จบกันไปแล้วนะคะ สำหรับ session เกี่ยวกับความการใช้งานหลักๆของ AWS หวังว่าบล็อกนี้จะเป็นประโยชน์ให้คนที่กำลังศึกษาการใช้งานคลาวด์ AWS นะคะ (ノ◕ヮ◕)ノ*:・゚✧
ผู้เขียน: สริตา ทวีเติมสกุล (แนน)
บรรณาธิการ: จิราภรณ์ สว่างอารมย์ (จิ๋ว)