เพิ่มประสิทธิภาพการทำงานของคุณด้วย Amazon Web Services

เผยแพร่แล้ว: 2022-03-11

ในช่วงสองสามปีที่ผ่านมา คำพูดที่ร้อนแรงที่สุดบนริมฝีปากของทุกคนคือ "ผลิตภาพ" ในโลกอินเทอร์เน็ตที่พัฒนาอย่างรวดเร็ว การทำอะไรให้เสร็จเร็วมักจะได้รับการโหวตเสมอ แม้จะต้องใช้ตรรกะทางธุรกิจอย่างรวดเร็วและแม่นยำ ในฐานะนักพัฒนา PHP ที่มีประสบการณ์ ฉันยังคงใช้เวลาหลายร้อยชั่วโมงกับงานอื่นๆ เช่น การตั้งค่าฐานข้อมูลหรือแคช การปรับใช้โปรเจ็กต์ การตรวจสอบสถิติออนไลน์ และอื่นๆ นักพัฒนาหลายคนต้องดิ้นรนกับสิ่งที่เรียกว่างานเบ็ดเตล็ดเหล่านี้มาหลายปี โดยเสียเวลาไปกับการเพ่งความสนใจไปที่ตรรกะของโครงการแทน

ชีวิตฉันเปลี่ยนไปเมื่อเพื่อนพูดถึง Amazon Web Services (AWS) เมื่อสี่ปีก่อน เปิดประตูบานใหม่ และนำไปสู่การเพิ่มผลผลิตและคุณภาพของโครงการอย่างมาก สำหรับใครที่ไม่ได้ใช้ AWS โปรดอ่านบทความนี้ ซึ่งผมมั่นใจว่าคุณจะคุ้มค่าเวลาของคุณ

เพิ่มผลผลิตของคุณ

Amazon Web Services (AWS) สามารถเพิ่มประสิทธิภาพการทำงานของคุณได้ภายในไม่กี่นาที
ทวีต

ประวัติ AWS

Amazon Web Services เปิดตัวอย่างเป็นทางการในปี 2549 หลายคนคงเคยได้ยินชื่อนี้ แต่อาจไม่รู้ว่าบริการนี้นำเสนออะไรได้บ้าง คำถามแรกคือ AWS คืออะไร?

Amazon Web Services (AWS) คือชุดของบริการคลาวด์คอมพิวติ้งหรือที่เรียกว่าบริการเว็บ ซึ่งประกอบขึ้นเป็นแพลตฟอร์มคลาวด์คอมพิวติ้งที่ Amazon.com นำเสนอ

วิกิพีเดีย

จากคำจำกัดความนี้ เราทราบสองสิ่ง: AWS อยู่ในระบบคลาวด์ และ AWS คือชุดของบริการแทนที่จะเป็นบริการเดียว เนื่องจากสิ่งนี้ไม่ได้บอกคุณมาก ในความคิดของฉัน เป็นการดีกว่าสำหรับผู้เริ่มต้นที่จะเข้าใจ AWS เป็น:

  • AWS คือชุดบริการต่างๆ ในระบบคลาวด์ ตามที่นิยามไว้
  • AWS มอบทรัพยากรการประมวลผลที่รวดเร็วทางออนไลน์ (เช่น คุณต้องใช้เวลา 10 นาทีในการตั้งค่าเซิร์ฟเวอร์ Linux)
  • AWS เสนอค่าธรรมเนียมที่ไม่แพง
  • AWS ให้บริการที่ใช้งานง่ายซึ่งแกะกล่อง ซึ่งช่วยประหยัดเวลาได้มากในการตั้งค่าฐานข้อมูล แคช พื้นที่เก็บข้อมูล เครือข่าย และบริการโครงสร้างพื้นฐานอื่นๆ
  • AWS พร้อมใช้งานเสมอและสามารถปรับขนาดได้สูง

มีข้อดีอีกมากมายในการใช้ AWS ดังนั้น มาดูภาพรวมคร่าวๆ ว่า AWS สามารถเพิ่มประสิทธิภาพการทำงานของคุณได้อย่างไร

สร้างบัญชี AWS ฟรี

เพื่อเริ่มใช้บริการใด ๆ คุณต้องมีบัญชี การสร้างบัญชีสำหรับ AWS ไม่ควรเกินห้านาที ตรวจสอบให้แน่ใจว่าคุณมีข้อมูลต่อไปนี้อยู่ในมือ:

  • ที่อยู่อีเมล ซึ่งใช้สำหรับรับอีเมลยืนยัน
  • บัตรเครดิตซึ่งจะไม่ถูกเรียกเก็บเงินเนื่องจากขั้นตอนการตั้งค่าฟรีเสมอ
  • หมายเลขโทรศัพท์ซึ่งจะได้รับการเรียกระบบอัตโนมัติเพื่อระบุผู้ใช้

แค่นั้นแหละ. เมื่อคุณมีข้อมูลตามรายการด้านบนพร้อมแล้ว ให้ไปที่หน้าเว็บของ AWS และสร้างบัญชีโดยปฏิบัติตามคำแนะนำที่ง่ายต่อการปฏิบัติตาม

สังเกตสิ่งต่อไปนี้:

  • บริการของ AWS ส่วนใหญ่มีทรัพยากรระดับฟรีมากมายเป็นรายเดือน กล่าวคือ การทดสอบ AWS มักทำให้คุณเสียค่าใช้จ่ายเพียงเล็กน้อยหรือไม่มีเลย
  • หมายเลขโทรศัพท์และข้อมูลส่วนบุคคลอื่น ๆ ไม่ถูกละเมิดตามประสบการณ์ของฉัน

รับการตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณ

ข้อดีอย่างหนึ่งของบริการคลาวด์คือความสามารถในการรับทรัพยากรที่ใช้ร่วมกันได้ตามต้องการ Amazon ได้ให้บริการสี่ระดับสำหรับผู้ใช้ในการเข้าถึงบริการ เรียงตามลำดับความง่าย:

  • คอนโซลการจัดการ
  • Command-Line-Tool,
  • เอสดีเค
  • RESTful API

ในบทความนี้ เราจะใช้คอนโซลการจัดการ ดังนั้น หลังจากที่คุณล็อกอินเข้าสู่คอนโซล คุณจะเห็นหน้าจอดังนี้:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

มีสองพื้นที่ที่ควรทราบ:

  • ที่มุมบนขวา คุณจะพบตัวเลือกภูมิภาค AWS ให้บริการใน 11 ภูมิภาคทั่วโลก และยังคงเติบโต เลือกภูมิภาคตามที่คุณต้องการ หรือปล่อยให้เป็นสหรัฐอเมริกาฝั่งตะวันออก (เวอร์จิเนียเหนือ) เป็นค่าเริ่มต้น ภูมิภาคต่างๆ อาจมีราคาแตกต่างกันไป ซึ่งคุณควรคำนึงถึงเมื่อการใช้งานของคุณเติบโตขึ้น
  • หน้าจอส่วนใหญ่เต็มไปด้วยรายการบริการ เราจะกล่าวถึง EC2 ในส่วนนี้ ดูอย่างรวดเร็วว่า AWS ให้บริการอะไรบ้าง ไม่ต้องกังวลหากไม่สมเหตุสมผล บริการทั้งหมดจะทำงานด้วยตัวเอง อย่างไรก็ตาม คุณจะได้ผลผลิตมากขึ้นโดยใช้การผสมผสานกัน

ความต้องการขั้นพื้นฐานที่สุดของทรัพยากรระบบคลาวด์คือเซิร์ฟเวอร์เสมือน EC2 หรือ Elastic Compute Cloud เป็นชื่อที่ Amazon เลือกสำหรับบริการเซิร์ฟเวอร์เสมือน มาดูกันว่าการรับเซิร์ฟเวอร์ Linux ทางออนไลน์ทำได้ง่ายเพียงใด

  • ในคอนโซลการจัดการ EC2 ให้เริ่มกระบวนการเปิดตัวดังด้านล่าง:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

  • เลือกอิมเมจเครื่อง (AMI สั้นๆ) เพื่อเริ่มต้น นี่คือระบบปฏิบัติการที่จะเรียกใช้เครื่องของคุณ เลือกระบบใดก็ได้ที่คุณต้องการ ฉันแนะนำให้คุณเริ่มต้นด้วย Amazon Linux ซึ่งใช้ yum เพื่อจัดการแพ็คเกจ:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

  • ถัดไป เลือกประเภทอินสแตนซ์ คุณสามารถเข้าใจสิ่งนี้ว่าเป็นข้อกำหนดฮาร์ดแวร์สำหรับเซิร์ฟเวอร์เสมือนของคุณ คุณสามารถเริ่มต้นด้วย t2.micro เพราะคุณจะได้รับการใช้งานฟรี 750 ชั่วโมงทุกเดือนกับอินสแตนซ์นี้ในปีแรก โปรดทราบ ว่านี่ใช้ได้ เฉพาะปีแรกนับ จากวันที่คุณสมัครใช้งาน และสำหรับอินสแตนซ์ t2.micro เท่านั้น เป็นเรื่องดีหากคุณต้องการได้ลิ้มลอง AWS เท่านั้น

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

  • ด้วยความสามารถในการกำหนดค่าเซิร์ฟเวอร์โดยละเอียดยิ่งขึ้น คุณสามารถเปิดเซิร์ฟเวอร์ได้ ครั้งแรกที่คุณใช้ EC2 คุณจะเห็นหน้าจอคล้ายกับที่แสดงด้านล่าง คำเตือนเกี่ยวกับความปลอดภัยบอกเราว่า Amazon ให้ความสำคัญกับความปลอดภัยมากแค่ไหน อย่างไรก็ตาม เราสามารถละเว้นคำเตือนนี้ได้จนกว่าเราจะไปที่ส่วนเกี่ยวกับบริการที่มีการจัดการ

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

  • สุดท้ายนี้ ในการเข้าถึงเซิร์ฟเวอร์ระยะไกล เราจำเป็นต้องมีข้อมูลประจำตัว AWS จะแจ้งให้เราเลือกคู่คีย์ SSH ดังในภาพด้านล่าง ดาวน์โหลดไฟล์คีย์ความเป็นส่วนตัวแล้วคลิกปุ่มเปิด และใช่ เราทำเสร็จแล้ว กำลังกำหนดค่าเซิร์ฟเวอร์เสมือนใหม่ และจะพร้อมใช้งานในอีกไม่กี่นาที

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

  • เมื่ออินสแตนซ์พร้อมแล้ว คุณสามารถเข้าสู่ระบบในฐานะผู้ใช้เริ่มต้น ec2-user ด้วยคีย์ความเป็นส่วนตัวของคุณ ec2-user เป็นค่าเริ่มต้นของ AWS ที่มีความสามารถ sudo ด้วย แม้ว่าจะไม่สามารถเปลี่ยนชื่อผู้ใช้เริ่มต้นได้ แต่คุณสามารถสร้างผู้ใช้รายใดก็ได้และกำหนดสิทธิ์ที่เหมาะสมตามความต้องการของคุณ ที่อยู่เซิร์ฟเวอร์ของคุณสามารถพบได้ที่นี่:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

กระบวนการข้างต้นควรใช้เวลาน้อยกว่าห้านาที และนั่นคือความง่ายในการทำให้เซิร์ฟเวอร์เสมือนเริ่มทำงาน ในส่วนถัดไป เราจะเรียนรู้ว่า AWS ช่วยเราจัดการอินสแตนซ์ที่เราเพิ่งสร้างขึ้นได้อย่างไร

การเรียกเก็บเงินตามความต้องการ

ทรัพยากร AWS ส่วนใหญ่จะเรียกเก็บเงินเป็นชั่วโมง ซึ่งให้ความยืดหยุ่นที่ดี ตัวอย่างเช่น การใช้อินสแตนซ์ EC2 ที่เราเพิ่งสร้างขึ้น มีสองวิธีในการหยุดให้บริการ: หยุดและสิ้นสุด การกระทำทั้งสองจะหยุดการเรียกเก็บเงิน ความแตกต่างคือการหยุดอินสแตนซ์ เราสามารถเริ่มต้นใหม่ได้ในภายหลังโดยบันทึกงานทั้งหมดของเรา ในทางตรงกันข้าม การยุติอินสแตนซ์ เราจะคืนอินสแตนซ์ให้ AWS เพื่อการรีไซเคิลและไม่มีทางกู้คืนข้อมูลได้ ความจำเป็นในการยุติผลลัพธ์ของอินสแตนซ์จาก AWS การตั้งค่าขีดจำกัด 20 อินสแตนซ์ต่อภูมิภาคต่อบัญชีโดยค่าเริ่มต้น และอินสแตนซ์ที่หยุดจะยังคงนับจนกว่าจะสิ้นสุด

เราสามารถหยุดอินสแตนซ์ได้อย่างรวดเร็วโดย:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

เมื่อคุณหยุดอินสแตนซ์ EC2 การเรียกเก็บเงินของคุณจะหยุดเพิ่มขึ้นเช่นกัน มีประโยชน์อย่างยิ่งในสถานการณ์ต่อไปนี้:

  • เมื่อคุณต้องการลองสิ่งใหม่ ๆ จะคุ้มกว่าถ้าคุณต้องจ่ายเพียงสองสามชั่วโมง และคุณอาจจะไม่เกินระดับฟรีสำหรับบริการบางอย่าง
  • เมื่อความต้องการด้านคอมพิวเตอร์ของคุณอยู่ในระดับสภาพแวดล้อมการผลิต ตัวอย่างเช่น ในอดีต ฉันต้องจองทรัพยากรการประมวลผลซึ่งปกติแล้วจะมากกว่าการใช้งานสูงสุด 30-50 เปอร์เซ็นต์ ด้วย AWS ฉันสามารถจัดเตรียมทรัพยากรด้วยวิธีที่ยืดหยุ่นมากขึ้น:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

ข้อมูลราคาสำหรับ AWS มีให้ทางออนไลน์ หลังจากทำการคำนวณแล้ว คุณอาจตั้งคำถามว่า AWS ถูกกว่าจริงหรือ การคูณอัตรารายชั่วโมงเป็นเวลาหนึ่งเดือน ดูเหมือนว่าไม่มีการแข่งขันเลย คำตอบคือใช่และไม่ใช่

AWS ไม่ถูกกว่าหากคุณคำนวณอัตรารายชั่วโมงสำหรับทรัพยากรแบบออนดีมานด์ในหนึ่งเดือน อย่างไรก็ตาม เรายังคงมีตัวเลือกการเรียกเก็บเงินอินสแตนซ์แบบเหมาจ่ายตามที่แสดงด้านล่าง:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

สำหรับความต้องการทรัพยากรขั้นต่ำ เราสามารถรับส่วนลด 30 ถึง 70 เปอร์เซ็นต์โดยใช้อินสแตนซ์ที่สงวนไว้ พร้อมกับทรัพยากรที่แตกต่างกันอื่นๆ ที่เรียกเก็บเงินเป็นอินสแตนซ์ตามความต้องการ ในทางปฏิบัติ ราคานี้จะถูกลง 30 ถึง 40 เปอร์เซ็นต์สำหรับสัญญาผูกมัดหนึ่งปี และมากขึ้นไปอีกเมื่อมีข้อผูกมัดสามปีโดยใช้อินสแตนซ์แบบเหมาจ่าย นั่นคือเหตุผลที่ฉันจะลงคะแนน "ใช่" ในคำถามข้างต้น และ AWS ก็มีราคาถูกกว่าหากคุณรวมประโยชน์ด้านความปลอดภัยและการตรวจสอบ

บริการจัดการ

เป้าหมายหนึ่งของ AWS คือการลดต้นทุนการดำเนินงานให้ได้มากที่สุด ตามเนื้อผ้า เราต้องการทีมวิศวกรระบบจำนวนมากเพื่อรักษาความปลอดภัยและสุขภาพของโครงสร้างพื้นฐานของเรา ไม่ว่าจะทางออนไลน์ที่ไซต์งาน ทีมที่มีประสบการณ์จะเขียนและปรับใช้เครื่องมืออัตโนมัติเพื่อลดความซับซ้อนของกระบวนการ อย่างไรก็ตาม การจัดการบริการก็กลายเป็นโครงการที่ซับซ้อนในทางปฏิบัติเช่นกัน AWS ทำหน้าที่เป็นเครื่องช่วยชีวิตในการช่วยเราจัดการทรัพยากรของเรา ด้านล่างนี้ ฉันได้ระบุบริการบางส่วนที่ AWS ให้บริการซึ่งมีการใช้งานมากที่สุด:

  • กลุ่มความปลอดภัย AWS
  • IAM, การจัดการการเข้าถึงข้อมูลประจำตัว,
  • คลาวด์วอทช์
  • และรายการบริการการปรับใช้อัตโนมัติ เช่น OpsWorks (ซึ่งจะไม่กล่าวถึงในบทความนี้)

AWS Security Group

วิธีที่ AWS จัดการการควบคุมการเข้าถึงบริการทำได้ในสองชั้นแยกกัน ในระดับเครือข่าย ทำได้โดยใช้แนวคิดที่เรียกว่า “กลุ่มความปลอดภัย” บริการของ AWS ทั้งหมดอยู่ในกลุ่มความปลอดภัย และกลุ่มรักษาความปลอดภัยเป็นผู้กำหนดว่าใครได้รับอนุญาตให้ผ่าน เมื่อใช้อินสแตนซ์ EC2 ของเรา AWS ได้สร้างกลุ่มความปลอดภัยให้เราโดยอัตโนมัติ:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

เราสามารถตัดสินใจได้ว่าสิ่งใดเข้ามาและสิ่งใดสามารถออกไปได้โดยการกำหนดค่ากฎขาเข้า/ขาออก กฎ TCP, UDP และ ICMP ได้รับการสนับสนุนโดยบริการ EC2 กลุ่มความปลอดภัยทำหน้าที่เหมือนไฟร์วอลล์ระดับฮาร์ดแวร์ภายนอก และเราไม่จำเป็นต้องคิดเกี่ยวกับการแก้ไข

ข้อดีอีกอย่างของการใช้กลุ่มความปลอดภัยคือสามารถนำกลับมาใช้ใหม่ได้ กลุ่มความปลอดภัยหนึ่งกลุ่มสามารถใช้ร่วมกันระหว่างทรัพยากรต่างๆ ในทางปฏิบัติ จะช่วยปรับปรุงประสิทธิภาพการบำรุงรักษาได้อย่างมาก โดยขจัดความยุ่งยากในการตั้งค่านโยบายความปลอดภัยทีละรายการสำหรับแต่ละทรัพยากร นอกจากนี้ ลักษณะการแชร์ได้ของกลุ่มความปลอดภัยช่วยให้เราสามารถกำหนดค่าได้ในที่เดียว และใช้นโยบายความปลอดภัยนั้นกับทรัพยากรอื่น ๆ โดยไม่ต้องยุ่งยากกับการตั้งค่าด้วยตนเอง ทีละรายการสำหรับแต่ละทรัพยากร

เอกลักษณ์และการจัดการการเข้าถึง

AWS มีวิธีการอื่นในการจัดการการควบคุมการเข้าถึงโดยใช้ IAM นี่คือการควบคุมความปลอดภัยระดับแอปพลิเคชันเมื่อคุณต้องการเข้าถึงอินเทอร์เฟซ RESTful คำขอ REST แต่ละรายการต้องลงนามเพื่อให้ AWS รู้ว่าใครกำลังเข้าถึงบริการ นอกจากนี้ การตรวจสอบกับรายการนโยบายที่กำหนดค่าไว้ล่วงหน้า AWS จะพิจารณาว่าควรปฏิเสธหรืออนุญาตการดำเนินการดังกล่าว

เราจะไม่กล่าวถึงรายละเอียดเกี่ยวกับ IAM ในบทความนี้ อย่างไรก็ตาม โปรดทราบว่า AWS ให้ความสำคัญกับความปลอดภัยเป็นอย่างมาก คุณจึงมั่นใจได้ว่าไม่มีผู้เยี่ยมชมที่ไม่ได้รับอนุญาตสามารถเข้าถึงข้อมูลที่เป็นความลับของคุณได้

CloudWatch

CloudWatch เป็นบริการที่ AWS ให้บริการในการรวบรวมและติดตามตัววัดทุกประเภทจากทรัพยากร AWS ของคุณ มีประสิทธิภาพมากขึ้นเนื่องจากความสามารถในการตอบสนองต่อเหตุการณ์บางอย่าง (หรือสัญญาณเตือน) ด้วยความช่วยเหลือของ CloudWatch เราสามารถตรวจสอบความสมบูรณ์ของอินสแตนซ์ EC2 ที่สร้างขึ้นใหม่ของเรา

  • เราสามารถเพิ่มการเตือนไปยังอินสแตนซ์ EC2 ของเราได้อย่างรวดเร็ว:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

  • สัญญาณเตือนอาจสร้างขึ้นโดยการระบุเกณฑ์เพื่อวัตถุประสงค์ต่างๆ มากมาย:

การตั้งค่าเซิร์ฟเวอร์ EC2 แรกของคุณใน AWS

หมายเหตุ : SNS เป็นบริการตามหัวข้อที่ให้บริการโดย AWS เพื่อส่งการแจ้งเตือน สามารถส่งการแจ้งเตือนทางอีเมล, SMS, การแจ้งเตือนแบบพุช iOS/Android และรูปแบบอื่น ๆ อีกมากมาย

จากการตรวจสอบไปจนถึงการแจ้งเตือน CloudWatch พยายามทำให้ความต้องการการตรวจสอบเป็นไปโดยอัตโนมัติในไม่กี่คลิก มีเมตริกที่กำหนดไว้ล่วงหน้ามากมายสำหรับบริการต่างๆ ของ AWS สำหรับผู้ใช้ขั้นสูง คุณสามารถสร้างเมตริกที่กำหนดเองสำหรับแอปพลิเคชันของคุณได้

เกี่ยวกับค่าใช้จ่าย บริการ Free Tier ของ CloudWatch มักมีมากมายสำหรับโครงการเริ่มต้น อย่างไรก็ตาม แม้ว่าธุรกิจของคุณจะเติบโตขึ้น ค่าใช้จ่ายเพิ่มเติมมักจะน้อยกว่า 1 เปอร์เซ็นต์ของค่าบริการ ตรวจสอบราคาโดยละเอียดสำหรับข้อมูลเพิ่มเติม เมื่อพิจารณาถึงความง่ายในการตั้งค่าระบบการตรวจสอบโดยใช้ CloudWatch ได้กลายเป็นเครื่องมือตรวจสอบที่ใช้มากที่สุด

บริการสมัครฟรีไม่ยุ่งยาก

ในฐานะนักพัฒนา เราน่าจะประสบกับสถานการณ์ต่อไปนี้:

  • แอปพลิเคชันของเราต้องการองค์ประกอบฐานข้อมูล ซึ่งหมายความว่าเราต้อง:
    • รับเซิร์ฟเวอร์สำหรับฐานข้อมูล
    • ติดตั้งซอฟต์แวร์ฐานข้อมูล
    • กำหนดค่าการมอนิเตอร์สำหรับเซิร์ฟเวอร์และฐานข้อมูล
    • วางแผนแผนสำรอง
    • แก้ไขซอฟต์แวร์ตามต้องการ
    • และอื่นๆ อีกมากมายที่ไม่ได้ระบุไว้ในที่นี้
  • แอปพลิเคชันของเราต้องการพื้นที่จัดเก็บไฟล์แบบกระจาย ซึ่งหมายความว่าเราต้อง:
    • ค้นหาโซลูชันโอเพ่นซอร์ส (หรือเชิงพาณิชย์) ที่มีอยู่สำหรับการจัดเก็บไฟล์แบบกระจาย
    • เตรียมเซิร์ฟเวอร์ที่จำเป็น
    • ติดตั้งและกำหนดค่าโซลูชันที่เลือก ซึ่งมักจะไม่ตรงไปตรงมา
    • กำหนดค่ามอนิเตอร์สำหรับเซิร์ฟเวอร์และฐานข้อมูล
    • และอื่นๆ อีกมากมายที่ไม่ได้ระบุไว้ที่นี่
  • แอปพลิเคชันของเราต้องการแคช
  • แอปพลิเคชันของเราต้องการคิวข้อความ
  • และปัญหาอื่น ๆ อีกมากมายที่ต้องแก้ไข บวกกับ เราต้องทำการกำหนดค่าล่วงหน้าและหลังการตรวจสอบ

และอย่างที่คุณอาจเดาได้แล้วว่า นี่เป็นอีกหนึ่งประเด็นสำคัญที่ AWS ช่วยเหลือ มีบริการระดับแอปพลิเคชันมากมาย คุณจึงไม่ต้องพิจารณาสิ่งอื่นใด

มาครอบคลุมบางส่วนเพื่อให้คุณได้ภาพอย่างรวดเร็ว

RDS ฐานข้อมูลที่จัดการให้คุณ แต่ไม่ใช่โดยคุณ

ฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ได้รับการยอมรับอย่างกว้างขวางจากแอปพลิเคชันจำนวนมาก ในสภาพแวดล้อมการผลิต ต้องให้ความสนใจเป็นพิเศษเสมอเมื่อปรับใช้แอปพลิเคชันโดยใช้ RDBMS โดยเริ่มจากวิธีการตั้งค่าและกำหนดค่าฐานข้อมูล ตามด้วยเวลาและวิธีสำรองข้อมูลและกู้คืน

ในทีมของเรา ผู้ดูแลระบบฐานข้อมูล (DBA) เคยใช้เวลาอย่างน้อย 30 เปอร์เซ็นต์ของเวลาเขียนการตั้งค่าและสคริปต์การบำรุงรักษา ด้วยการเปิดตัว AWS RDS DBA ของเราจึงมีเวลามากขึ้นในการปรับแต่งประสิทธิภาพ SQL ซึ่งเป็นพื้นที่ที่คุณต้องการลงทุน DBA ของคุณ

RDS เสนออะไรให้คุณบ้าง? ในระยะสั้น:

  • RDS ให้การสนับสนุนเครื่องมือฐานข้อมูลยอดนิยมส่วนใหญ่ รวมถึง MySQL, SQLServer, PostgreSQL
  • ฐานข้อมูล ไม่ว่าจะเป็นโหนดหรือคลัสเตอร์ สามารถสร้างได้ในไม่กี่คลิก
  • RDS เสนอการสนับสนุนในตัวสำหรับพารามิเตอร์ฐานข้อมูลที่ใช้ร่วมกัน ภายใต้บริการชื่อ “กลุ่มพารามิเตอร์”
  • RDS ให้การสนับสนุนในตัวสำหรับการจัดการการเข้าถึงด้วยความช่วยเหลือของ Security Group ซึ่งค่อนข้างคล้ายกับที่เรากล่าวถึงสำหรับ EC2
  • RDS ให้บริการเพิ่มเติมโดยเปิดใช้งาน Multi-AZ ในคลิกเดียว การมอนิเตอร์ การสแตนด์บาย และการเปลี่ยนการสลับเมื่อเกิดข้อผิดพลาดทั้งหมดจะทำโดยอัตโนมัติ
  • การบำรุงรักษาและสำรองข้อมูล RDS เป็นไปโดยอัตโนมัติ

สรุปได้ว่า RDS ช่วยประหยัดเวลาได้มากในการตั้งค่าและบำรุงรักษาบริการฐานข้อมูล ในการแลกเปลี่ยน คุณจะต้องจ่ายมากกว่าเซิร์ฟเวอร์ EC2 ที่เกี่ยวข้องประมาณ 40 เปอร์เซ็นต์ ดังนั้นจึงเป็นการตัดสินใจทางธุรกิจว่าจะเลือกใช้ RDS หรือปรับใช้เซิร์ฟเวอร์ที่เกี่ยวข้องด้วยตัวเอง อย่างไรก็ตาม ช่วยให้คุณมีเวลามากขึ้นในการทำงานที่เกี่ยวข้องกับธุรกิจจริง มากกว่าความเสถียรของโครงสร้างพื้นฐานและความสามารถในการปรับขนาด นอกจากนี้ คุณจะสังเกตเห็นได้ในเร็วๆ นี้ว่านี่คือแนวทางการดำเนินธุรกิจของผู้สนับสนุนของ AWS

Dynamo DB ซึ่งเป็นพื้นที่จัดเก็บคีย์-ค่าที่ปรับขนาดได้เป็นพันล้านระเบียน

NoSQL กลายเป็นหัวข้อโปรดในช่วงไม่กี่ปีที่ผ่านมา เนื่องจากโครงการในชีวิตจริงจำนวนมากไม่ต้องการการสนับสนุนจาก DBMS เชิงสัมพันธ์ต่างๆ จึงมีการแนะนำรายการฐานข้อมูล NoSQL ออกสู่ตลาด อเมซอนไม่ตกอยู่เบื้องหลังในเรื่องนี้ DynamoDB (https://aws.amazon.com/dynamodb) เป็นที่เก็บคีย์-ค่าที่ประกาศโดย Amazon ในปี 2555 และผู้สนับสนุนหลักในการให้บริการนี้คือ Werner Vogels CTO ของ Amazon ซึ่งเป็นหนึ่งในผู้เชี่ยวชาญชั้นนำของโลกด้าน ultra- ระบบที่ปรับขนาดได้

ไม่เป็นความลับที่ Amazon จะจัดการกับทราฟฟิกจำนวนมาก DynamoDB มาจาก Dynamo ซึ่งเป็นเอ็นจิ้นการจัดเก็บข้อมูลภายในสำหรับธุรกิจของ Amazon จำนวนมาก รวมถึงบริการตะกร้าสินค้าที่ให้บริการคำขอนับพันล้านรายการในวันคริสต์มาส DynamoDB ไม่มีข้อจำกัดในการขยายขนาด

นอกจากนี้ เมื่อเปรียบเทียบกับโซลูชัน NoSQL อื่นๆ เช่น Cassandra หรือ MongoDB แล้ว DynamoDB มีข้อได้เปรียบทางเศรษฐกิจอย่างมหาศาล มีการเรียกเก็บเงินในหน่วยของปริมาณงานที่สงวนไว้ (จำนวนการเขียน/อ่านต่อวินาทีที่อนุญาต) ซึ่งสามารถเพิ่มหรือลดได้แบบเรียลไทม์ ด้านล่างนี้คือตารางเปรียบเทียบราคาระหว่าง DynamoDB และโซลูชัน NoSQL แบบสแตนด์อโลนอื่นๆ:

ความต้องการทางธุรกิจ บริการ DynamoDB ค่าใช้จ่าย DynamoDB ใช้บริการอื่น ค่าใช้จ่ายเมื่อใช้บริการอื่น
ธุรกิจขนาดเล็ก
(น้อยกว่า 1,000 DAU, ข้อมูล 16GB)
10 หน่วยการเขียน
หน่วยอ่าน 10 หน่วย
$9.07/เดือน • t1.micro ••
16GB EBS •••
$14.64/เดือน
ธุรกิจขนาดกลาง
(น้อยกว่า 100k DAU, ข้อมูล 160GB)
100 เขียนหน่วย
หน่วยอ่าน 100 หน่วย
$101.62/เดือน m4.xlarge
160GB EBS
$190.95/เดือน
ธุรกิจขนาดใหญ่
(สูงสุด 1m DAU, ข้อมูล 1TB)
1,000 หน่วยการเขียน
หน่วยการอ่าน 1,000 หน่วย
$852.58/เดือน คลัสเตอร์ c4.4xlarge • 512GB EBS • $1329.24/เดือน

• เพื่อความเป็นธรรม ราคาคำนวณโดยใช้ราคาตามความต้องการในภูมิภาค US-EAST
•• อินสแตนซ์ AWS EC2 ถูกเลือกเพื่อโฮสต์บริการ NoSQL อื่นๆ
••• EBS คือบริการจัดเก็บข้อมูลถาวรที่จัดหาให้โดย AWS

ตามที่เราสามารถอ่านได้จากตาราง DynamoDB ให้บริการตั้งแต่แกะกล่อง และโดยปกติแล้วจะมีราคาที่ต่ำกว่าเมื่อเทียบกับการสร้างพื้นที่จัดเก็บคีย์-ค่าของคุณเอง นั่นเป็นเพราะว่าหากคุณใช้ MongoDB/Cassandra Cluster เกินขีดจำกัด คุณจะจ่ายมากขึ้นสำหรับสิ่งที่คุณไม่เคยใช้

Amazon ให้บริการในลักษณะที่มีการจัดการเต็มรูปแบบ ซึ่งหมายความว่าคุณไม่ต้องกังวลว่าจะตั้งค่า ปรับขนาด หรือตรวจสอบ DynamoDB ของคุณอย่างไร พวกเขาทั้งหมดทำโดย AWS อันที่จริงแล้ว การอ่านและการเขียนรายการ DynamoDB จะถูกวัดในความซับซ้อนของเวลาคงที่เสมอ โดยไม่คำนึงถึงขนาดของข้อมูลที่ถูกจัดการ ดังนั้น บางแอปพลิเคชันจึงเลือกที่จะทิ้งเลเยอร์แคชหลังจากเปลี่ยนเป็น DynamoDB น่าทึ่งจริงๆ

SQS บริการคิวแบบกระจาย

เมื่อทำงานกับข้อมูลจำนวนมาก เรามักจะกระจายการคำนวณไปยังโหนดการคำนวณจำนวนมาก เมื่อทำธุรกิจทั่วโลก เรามักต้องการไปป์ไลน์ในการประมวลผลข้อมูลที่รวบรวมจากโหนดที่กระจายอยู่ในขอบเขตกว้างทางภูมิศาสตร์ เพื่อช่วยให้เป็นไปตามข้อกำหนดสำหรับกิจกรรมดังกล่าว AWS ขอแนะนำ SQS, Simple Queue Service เช่นเดียวกับบริการคิวอื่นๆ ที่ได้รับการยอมรับ SQS เสนอวิธีการส่งข้อความ/งานระหว่างส่วนประกอบทางลอจิคัลต่างๆ ในลักษณะที่คงอยู่

ตามชื่อของมัน SQS เป็นบริการพื้นฐานที่มีให้ในตอนต้นของ AWS อย่างไรก็ตาม Amazon ได้พัฒนา SQS อย่างต่อเนื่อง และขึ้นอยู่กับความต้องการ SQS อาจเรียบง่ายหรือทรงพลังเท่าที่คุณต้องการด้วยพารามิเตอร์ที่ปรับแต่งได้มากมาย คุณสมบัติขั้นสูงบางอย่างของ SQS ได้แก่:

  • เก็บรักษาข้อความได้นานถึง 14 วัน
  • กลไกการมองเห็นเพื่อหลีกเลี่ยงการสูญเสียข้อความในเหตุการณ์ความล้มเหลว
  • การจัดส่งล่าช้าต่อข้อความ
  • กำหนดนโยบายใหม่เพื่อจัดการกับข้อความที่ล้มเหลว (เรียกว่าจดหมายที่ส่งไม่ได้)

บริการคิวไม่ควรซับซ้อนเกินไป คุณอาจสงสัยว่าเหตุใดจึงควรใช้ทั้งส่วนเพื่อแนะนำ SQS บางทีคุณอาจเดาเหตุผลได้แล้ว เช่นเดียวกับบริการอื่นๆ ของ AWS SQS เป็นบริการที่มีการจัดการเต็มรูปแบบ ซึ่งหมายความว่า:

  • คิวสามารถปรับขนาดได้สูง อาจเป็นข้อความหลายสิบข้อความที่คุณกำลังส่งผ่านหรือหลายล้านข้อความต่อวินาที ดังนั้น SQS จึงปรับขนาดได้ทันที
  • คิวเป็นแบบต่อเนื่องและกระจาย ซึ่งหมายความว่าข้อมูลสำคัญจะไม่สูญหายเว้นแต่จะหมดอายุ
  • คุณไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์เพื่อปรับใช้ซอฟต์แวร์คิวของคุณ และแน่นอน คุณไม่จำเป็นต้องตั้งค่าการตรวจสอบบริการที่ซับซ้อนเช่นกัน

S3 ที่เก็บไฟล์ แต่ไม่ใช่แค่ที่เก็บไฟล์

S3 ย่อมาจาก Simple Storage Service และเหมือนกับ Dropbox เป็นบริการสำหรับผู้ใช้ปลายทาง แต่สำหรับแอปพลิเคชัน ตามคำจำกัดความ S3 เป็นที่เก็บข้อมูลแบบออบเจ็กต์ที่มีอินเทอร์เฟซเว็บที่เรียบง่าย

S3 นั้นเรียบง่ายสำหรับผู้ใช้ แต่ยังมาพร้อมกับคุณสมบัติขั้นสูงมากมาย I S3 ได้กลายเป็นมาตรฐานอุตสาหกรรม โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันที่ใช้บริการของ AWS อื่นๆ สาเหตุหลักมาจากการผสานรวม S3 ได้ง่ายจนกลายเป็นปลายทางการจัดเก็บข้อมูลภายนอกยอดนิยมสำหรับบริการของ AWS ส่วนใหญ่ นอกจากนี้ บริการมากมาย เช่น DynamoDB, SQS และอื่นๆ ใช้งาน S3 ภายในเป็นจำนวนมาก

การทำความเข้าใจ S3 ควรขยายประโยชน์ของการใช้บริการที่มีการจัดการของ AWS อื่นๆ เนื่องจากบริการส่วนใหญ่เก็บข้อมูลสำรองไว้ใน S3 นอกจากนี้ S3 ยังเป็นปลายทางการส่งออก/นำเข้าทั่วไปสำหรับบริการต่างๆ ซึ่งรวมถึงแต่ไม่จำกัดเพียง DynamoDB, RDS และ Redshift

สุดท้าย S3 ก็เหมือนกับบริการอื่นๆ ของ AWS มีการจัดการอย่างเต็มที่เพื่อให้เราสามารถเริ่มใช้บริการได้โดยไม่ต้องตั้งค่าเซิร์ฟเวอร์หรือกลไกเฟลโอเวอร์ ในแง่เศรษฐกิจ S3 ยังจ่ายตามที่คุณใช้บริการ ดังนั้นคุณจึงสามารถทดลองใช้งานได้ตลอดเวลาโดยไม่มีค่าใช้จ่ายมาก

บริการขั้นสูงและ SDK

มีบริการอื่นๆ ของ AWS ที่น่าสังเกตเช่นกัน เนื่องจากพื้นที่มีจำกัด เราจึงขอนำเสนอสิ่งที่น่าสนใจดังนี้:

  • Redshift: ฐานข้อมูลแบบคอลัมน์ซึ่งสามารถใช้ในการประมวลผลข้อมูล นับล้านล้าน ได้อย่างรวดเร็ว คุณต้องลองใช้หากคุณรับผิดชอบ ETL ของข้อมูลจำนวนมาก
  • Data Pipeline: IA ช่วยให้คุณถ่ายโอนข้อมูลระหว่างบริการของ AWS ได้อย่างรวดเร็ว และเปิดใช้งานการประมวลผลข้อมูลเป็นระยะในชาร์ดที่เล็กกว่า
  • ElastiCache: เซิร์ฟเวอร์ Memcache ที่มีการจัดการ เรียบง่าย แต่ทำงานได้อย่างสมบูรณ์แบบ
  • แลมบ์ดา: คลาวด์คอมพิวติ้งรุ่นต่อไป แลมบ์ดารันโค้ดที่อัปโหลดในรูปแบบที่ขับเคลื่อนด้วยเหตุการณ์ซึ่งเปิดประตูใหม่ให้กับการออกแบบแอปพลิเคชันแบบกระจาย
  • เส้นทาง 53: โซลูชัน DNS อันทรงพลังพร้อมการสนับสนุนการตอบสนองแบบถ่วงน้ำหนัก การตอบสนองตามตำแหน่งทางภูมิศาสตร์บนโซลูชัน DNS มาตรฐานอุตสาหกรรมอื่นๆ
  • SNS: บริการแจ้งเตือนที่ใช้งานง่าย ออกแบบในรูปแบบสมาชิก/ผู้เผยแพร่
  • อื่น ๆ อีกมากมาย.

ฉันคิดว่าการตรวจสอบ AWS เป็นนิสัยที่ดีทุกครั้งที่คุณแนะนำส่วนประกอบใหม่ให้กับแอปพลิเคชันของคุณ ส่วนใหญ่แล้ว AWS จะทำให้คุณประหลาดใจเพราะจะมีทางเลือก SaaS ที่พร้อมจะนำเสนอ

นอกจากนี้ เพื่อให้เข้าถึงอินเทอร์เฟซ RESTful ได้ง่ายขึ้น Amazon ได้จัดเตรียม SDK ในภาษาการเขียนโปรแกรมยอดนิยมเกือบทั้งหมด คุณไม่ควรมีปัญหาในการค้นหา SDK ที่คุณชื่นชอบ

สรุป

เราได้กล่าวถึงบริการบางส่วนที่ใช้กันอย่างแพร่หลายของ AWS ในบทความนี้ แน่นอนว่ามีบางพื้นที่ที่ AWS จะช่วยธุรกิจของคุณได้ คุณอาจเลือกที่จะย้ายส่วนประกอบบริการที่มีอยู่ไปยัง AWS ที่เทียบเท่าได้ เช่น ฐานข้อมูล MySQL ไปยัง RDS เป็นต้น คุณอาจพบว่าตัวเองถามว่ามีบริการของ AWS สำหรับส่วนประกอบนี้ในซอฟต์แวร์ของฉันหรือไม่ ดังนั้น รับบัญชี AWS วันนี้ และรับการเพิ่มประสิทธิภาพการทำงานของคุณในไม่กี่นาที


อ่านเพิ่มเติมในบล็อก Toptal Engineering:

  • การพัฒนาสำหรับคลาวด์ในคลาวด์: การพัฒนา BigData ด้วย Docker ใน AWS
  • ทำการบ้านของคุณ: 7 เคล็ดลับการสอบสถาปนิกโซลูชันที่ผ่านการรับรองจาก AWS
  • การบันทึก SSH และการจัดการเซสชันโดยใช้ AWS SSM
  • การทำงานกับ TypeScript และ Jest Support: บทช่วยสอน AWS SAM