สวัสดีครับ กลับมาพบกันอีกครั้งกับบทความของ AWS ซึ่งในบทความนี้ผมจะมาแนะนำและบอกความลับที่คุณอาจจะไม่รู้เกี่ยวกับบริการของ AWS ที่ชื่อว่า S3 ครับ
เจ้า S3 นี้ย่อมาจาก Simple Storage Service ซึ่งมันก็ Simple ตามชื่อเลย เพราะมันมีหน้าที่คือเป็นที่จัดเก็บข้อมูลอ็อบเจกต์ที่สร้างขึ้นเพื่อใช้จัดเก็บและเรียกดูข้อมูลตามจำนวนที่ต้องการจากทุกที่อย่างเดียวเลยครับ โดย AWS S3 เป็นบริการจัดเก็บข้อมูลที่เรียบง่ายซึ่งมีความทนทาน ความพร้อมใช้งาน ประสิทธิภาพ ความปลอดภัย และความสามารถในการปรับขนาดแทบไม่จำกัดในระดับชั้นนำของอุตสาหกรรม ด้วยต้นทุนที่ต่ำมาก
โดยเราสามารถใช้งาน AWS S3 ได้ง่ายและสะดวกมาก ๆ เพราะว่ามี User Interface ที่เรียบง่ายซึ่งช่วยให้เราสามารถจัดเก็บและกู้คืนข้อมูลได้ทุกปริมาณ ทุกเวลา และจากทุกที่ ด้วยบริการบนเว็บนี้ ซึ่งแน่นอนว่าเวลาที่เราพัฒนาแอพพลิเคชันสักตัวหนึ่งขึ้นมานั้น เราสามารถใช้ประโยชน์ AWS S3 ได้โดยจัดเก็บข้อมูลแบบ Cloud Native เพราะว่า S3 มีความยืดหยุ่นสุด ๆ เราสามารถขยายขนาดได้ตามต้องการ แต่ก็มีค่าใช้จ่ายตามขนาดที่โตขึ้นนะ
ข้อดีและจุดแข็งของ AWS S3
เอาล่ะ คราวนี้เรามาดูกันว่า 5 สิ่งที่ผู้อ่านอาจจะไม่เคยรู้มาก่อนเกี่ยวกับ S3 มีอะไรบ้าง
- วิธีการเพิ่มประสิทธิภาพของ S3 โดยการส่งข้อมูลเข้าออก S3 ให้เร็วมากขึ้น
ปกติแล้วการนำข้อมูลเข้าไปใน S3 หรือนำข้อมูลออกมากมักจะใช้เวลานานมาก ถึงมากที่สุด โดยเฉพาะอย่างยิ่งถ้าเราจะต้องส่งข้อมูลบ่อย ๆ ล่ะก็ รอจนแก่กันเลยทีเดียว ทีนี้มันพอมีวิธีที่จำเพิ่มความในส่วนนี้ได้ด้วยนะ นั่นก็คือการลดระยะเวลาที่เราจะต้องเสียไปให้กับการ Upload หรือ Download ไฟล์นั่นเอง ตัวอย่างเช่น ถ้าทีมของเราสามารถประหยัดเวลาได้ 10 นาที ต่อ 1 Operation หรือ Basis นั่นก็หมายความว่าเราสามารถประหยัดงบได้อย่างมหาศาลเลยทีเดียว ซึ่งความลับก็คือการใช้ S3DistCp นั่นเอง โดยจะเป็นการใช้ instance หลาย ๆ ตัวมาช่วยในการส่งต่อข้อมูลระหว่างเครื่องของเรากับ S3 นอกจากนี้ยังมีข้อแนะนำที่ทาง AWS ได้บอกไว้ด้วยนะ นั่นคือ
- The size of the pipe between the source (typically a server on-premises or EC2 instance) and S3.
- The level of concurrency used for requests when uploading or downloading (including multipart uploads).
แปลแบบเข้าใจง่าย ๆ ก็คือว่า Performance ของการใช้ S3 เนี่ยจะขึ้นอยู่กับปัจจัยหลัก ๆ ของอย่างนั่นก็คือขนาดของท่อที่เชื่อมต่อระหว่างเครื่องของเรากับ S3 ดังนั้นใช้ internet ที่แรง ๆ แล้วก็เลือก Zone ที่ใกล้กับ S3 ก็จะช่วยลดปัญหาตรงนี้ได้ และนอกจากนี้ยังขึ้นกับ Concurrency ที่ใช้ในการ Upload หรือ Download อีกด้วย
- เรามาลด Latency โดยเลือก Zone ที่เหมาะสมสำหรับการใช้ S3 กันเถอะ
ปกติแล้วค่าปัจจัยที่สำคัญมาก ๆ ต่อการส่งต่อข้อมูลระหว่างเครื่องของเรากับ S3 นั่นก็คืออินเทอร์เน็ต ถ้าอินเทอร์เน็ตแรงก็จะส่งข้อมูลได้เร็วยิ่งขึ้น แต่ว่าจริง ๆ แล้วสิ่งที่วัดความเร็วนั้นก็คือค่า Latency ถ้าแปลเป็นไทยง่าย ๆ ก็น่าจะเป็นความหน่วง นั่นก็คือระยะเวลาที่ใช้ในการติดต่อสื่อสารกันระหว่างอุปกรณ์สองชนิด โดยถ้าใครเล่นเกมส์ก็มักจะคุ้นกับว่า Ping ซึ่งมันคือค่าเดียวกับ Latency นั่นแหละครับท่านผู้อ่าน ถ้าค่า Ping มาก แสดงว่า ตอบสนองช้า แสดงว่าอินเตอร์เน็ตที่ใช้อยู่ช้า ถ้าค่า Ping น้อย แสดงว่า ตอบสนองเร็ว ค่า Ping ยิ่งน้อยยิ่งดี
วิธีที่ง่ายที่สุดก็คือพยายามสร้าง EC2 และ S3 ให้อยู่ในบริเวณหรือพื้นที่หรือ region เดียวกัน เวลารับส่งข้อมูลจะได้ลื่นไหลไม่ติดขัด แต่ถ้า Server ของเราอยู่ใน Data Center หลักและไม่ได้อยู่ใน Region เดียวกันกับ AWS EC2 ดังนั้นเราอาจจะลองพิจารณาใช้บริการอย่างเช่น DirectConnect Ports เพื่อเพิ่ม bandwidth และลด Latency (แต่แน่นอนว่าก็มีค่าใช้จ่ายที่เพิ่มขึ้นมาตามจำนวน Port ที่เปิดนะ) นอกจากนี้เรายังสามารถใช้สิ่งที่เรียกว่า S3 Transfer Acceleration เพื่อเพิ่มความเร็วระหว่าง Endpoints ได้อีกด้วย แต่ก็น่า เราจะต้องเสียค่าใช้จ่ายสำหรับบริการนี้ด้วย
- วิธีปรับปรุงประสิทธิภาพ S3 โดยใช้เครือข่าย bandwidth (แบนด์วิดท์) ที่สูงขึ้น
สำหรับข้อที่ 3 นี้จะคล้าย ๆ กับข้อที่แล้ว นั่นก็คือประเภทของ Instance ที่เราใช้ทำงานนั้นก็มีผลด้วยนะ เพราะว่าหากคุณผู้อ่านกำลังใช้เซิร์ฟเวอร์ EC2 Instance ที่บางประเภทมีการเชื่อมต่อเครือข่าย Bandwidth ที่สูงกว่าประเภทอื่น ๆ การถ่ายโอนข้อมูลเข้าหรืออกจาก EC2 Instance ของเราก็จะเร็วดั่งใจปรารถนาเลยทีเดียว โดยข้อมูลของ Bandwidth สำหรับ Instance แต่ละชนิด/ประเภทสามารถดูได้ในเว็บไซต์ของ AWS EC2 ครับ โดยเลือกดูที่หมวด “ประสิทธิภาพของเครือข่าย” หรือ Network Performance นั่นเอง
- วิธีการเรียงลำดับความสำคัญในการเข้าถึงและเข้ารหัสไฟล์ด้วย AWS S3
เวลาที่เราเก็บไฟล์หรือข้อมูลไว้ใน S3 นั้น เราควรจำต้องถามตัวเองด้วยว่าไฟล์ของเรามีความปลอดภัยมากแค่ไหน และใครบ้างที่สามารถเข้าถึงไฟล์ของเราได้ ผมได้ลองลิสต์คำถามง่าย ๆ มาตามนี้ครับ
- มีใครบ้างที่สามารถและไม่สามารถอ่านข้อมูลนี้ได้
- มีใครบ้างที่สามารถและไม่สามารถแก้ไขข้อมูลนี้ได้
- มีใครบ้างที่จะสามารถเปลี่ยนแปลงไฟล์ได้ในอนาคต
- ข้อมูลควรเข้ารหัสหรือไม่? (และถ้าเป็นเช่นนั้น เราจะจัดการคีย์เข้ารหัส Password ที่ไหนและอย่างไร)
จริง ๆ แล้วสำหรับผู้เขียนนั้นถ้าเป็นข้อมูลบางอย่างที่ไม่ละเอียดอ่อนหรือไม่สำคัญ เราก็อาจจะสามารถแชร์กับบุคคลอื่นได้ เช่น พนักงานของเราทุกคนในบริษัท ซึ่งถ้าเป็นแบบนี้จะง่าย เพราะเราแค่กำหนดเข้าไปใน S3 ว่าขอให้ไม่มีการเข้ารหัสหรือกำหนดตั้งค่าการเข้าถึงที่ซับซ้อน อย่างไรก็ตาม ทุกธุรกิจมีข้อมูลที่ละเอียดอ่อนและมีความสำคัญ ดังนั้นเราจะต้องปกป้องข้อมูลของเราครับ
ตัวอย่างเช่น ถ้าผู้อ่านเปิดบริษัทและสัญญากับลูกค้าว่าข้อมูลของพวกเขาจะถูกเข้ารหัสเมื่อไม่ได้ใช้งาน และอย่างน้อยที่สุดเราอาจต้องการจัดเก็บข้อมูลที่มีความต้องการที่แตกต่างกันในบัคเก็ต S3 แย่งตามภูมิภาคหรือบัญชี AWS ที่แยกจากกัน และอาจจะต้องมีการสำรองข้อมูลด้วยนะ เผื่อว่ากรณีที่เหตุการณ์ไม่คาดฝัน เช่น ระเบิดนิวเคลียร์ลง Data Center เราจะได้มีข้อมูลสำรองไว้อีกที่นึง ดังนั้น สรุปก็คือเราควรจะต้องดูให้ดีว่าสิทธิ์ในการเข้าถึงไฟล์เป็นของใครบ้าง และควรกำหนดรหัสผ่านสำหรับทุกไฟล์หรือโฟลเดอร์เพื่อป้องการคนแอบเข้ามาดูหรือแก้ไขไฟล์นั่นเอง
- ประหยัดเงินด้วย Reduced Redundancy, Infrequent Access และ Glacier
สำหรับบริการ AWS S3 นั้น ทาง Amazon เขาเคลมว่ามันมีความปลอดภัยและมั่นคงสูงถึง 99.999999999% (มี 9 ทั้งหมด 11 ตัว) แต่ว่ายังมีประเภทของการเก็บข้อมูลที่เราสามารถเลือกใช้เพื่อให้มีความเหมาะสมกับรูปแบบการเก็บไฟล์รวมถึงประหยัดเงินได้อีกด้วย
- S3’s Reduced Redundancy Storage (RRS) เป็นการลดจาก 99.999999999% ให้เหลือเป็น 99.99% หรือก็คือลดความปลอดภัยและความมั่นคงหรือแข็งแรงของ S3 โดยเป็นการแลกกับการแบกรับความเสี่ยงที่มากขึ้น แต่ประหยัดเงินได้เยอะมาก ซึ่งเหมาะสำหรับไฟล์ที่ไม่สำคัญและเก็บไม่นานนั่นเอง
- S3’s Infrequent Access (IA) ยิ่งเราเข้าถึงหรือถ่ายโอนไฟล์น้อยครั้งเท่าไหร่ ยิ่งถูก แต่ว่าค่าใช้จ่ายต่อครั้งจะแพงขึ้นนิดหน่อยครับถ้าเราใช้เกินจำนวน Limit ที่กำหนดไว้
- Glacier อันนี้เป็น S3 เวอร์ชันแบบถูกมาก ๆ ครับ มันมักจะถูกเอาไว้ใช้กับการเก็บไฟล์ที่เก็บแบบยาว ๆ เป็นหลักปีครับ
อ่านมาจนถึงจุดนี้แล้วถ้าหากผู้อ่านมีความสนใจในบริการของ AWS โดยเฉพาะถ้าอยากจะปรึกษาเกี่ยวกับการเก็บข้อมูลบน S3 ก็สามารถติดต่อ Cloud HM ได้โดยตรงเลยครับ เพราะเรามีการให้บริการ Cloud Platform ครบวงจร ทั้ง Domestic Cloud และ Global Cloud เพื่อตอบสนองความต้องการรอบด้านของลูกค้าครับ
ติดตาม Blog อื่น ๆ เกี่ยวกับ AWS ที่ Cloud HM รวบรวมมาให้คุณแล้ว! ได้ที่นี่
— Cloud HM