มาลองทำความเข้าใจและดูแง่มุมต่างๆว่าทั้งสอง Service ต่างยังไงและเราควรจะเลือกอะไรดี🤔

น่าจะมีบางคนที่สงสัยเหมือนกับผมบ้างแหละ
ทำไม AWS จะต้องมีทั้งสองตัวนี้ด้วยที่สามารถ Query ข้อมูลได้ มือใหม่ที่เพิ่งเคยใช้งาน AWS ต้องงงกันบ้างแหละ (หรือผมงงคนเดียว?😂) แล้วเราจะไปเลือกตัวไหนละ น่าจะสงสัยกันโดยเฉพาะมือใหม่แบบผม เริ่มจากมาทำความรู้จักทีละตัวกันก่อนดีกว่า

AWS Redshift
สำหรับเจ้า Redshift เป็น Data warehouse ที่ใช้ SQL ในการ Query ข้อมูลต่างๆรองรับการเก็บข้อมูลที่เครื่อง(Cluster) หรือจะไปอ่านข้อมูลที่อยู่ใน S3 ก็ได้ผ่าน Amazon Redshift Spectrum และยังสามารถเป็นทั้งในรูปแบบ Managed service และ Serverless ได้ด้วย สุดท้ายยังสามารถใช้ BI tool ต่างๆในการใช้งานร่วมกันได้

สำหรับการใช้งาน Redshift สามารถเลือกการใช้งานที่มีทั้งสองแบบนั้นไม่ว่าจะเป็น Managed service และ Serverless ถ้าเราเลือกที่จะใช้ Managed service ก็เท่ากับว่าเราต้องการที่จะสร้าง cluster สำหรับการประมวลผลขึ้นมาเอง โดยเราสามารถเลือกได้ว่าจะเอาความจุ หรือตัว Node type อะไรได้ด้วย ซึ่งจะไปส่งผลที่ประสิทธิภาพในการ Query ข้อมูลของเรา และราคาก็ต่างกันตามความแรงด้วยเช่นกัน แต่ในระหว่างการใช้งานถ้าไม่ได้ใช้แล้วเราก็สามารถ Pause Cluster ได้ด้วยในกรณีถ้าเราเลือกใช้รูปแบบ On-Demand ทำให้ประหยัดไปได้มากๆเลย

ส่วนในการใช้งานรูปแบบ Serverless นั้นไม่ได้จำเป็นจะต้องสร้าง Cluster ละ เราแค่จ่ายตังตามที่เราใช้เท่านั้นเอง แต่เราก็สามารถเก็บข้อมูลใน Redshift ได้เหมือนเดิมทำให้เราไม่ต้องคอยคิดเรื่องว่าจะต้องใช้ Node type อะไรดี สบายมากขึ้นแต่ก็ต้องดูดีๆอาจจะกลายเป็นว่าเราต้องจ่ายมากกว่าการเลือกใช้ Cluster node ซะอีก 😵
แล้ว Managed service กับ Serverless เหมาะกับใครละ
- Managed service: ใช้ในกรณีที่ต้องการประสิทธิภาพสูงและต้องการควบคุมการใช้งานกับค่าใช้จ่ายได้ง่าย เช่น การวิเคราะห์ข้อมูลขนาดใหญ่ในองค์กร มีคนใช้พร้อมๆกันหลายคน
- Serverless: เหมาะกับงานที่มีการใช้งานแบบไม่ต่อเนื่อง เช่น การวิเคราะห์ข้อมูลรายเดือน หรือเวลาที่ได้รับงาน Ad-hoc ต่างๆ ก็จะคิดราคาตามที่ใช้นั้นเอง

AWS Athena
Athena เป็นเครื่องมือที่เอาไว้สำหรับการ Query ข้อมูล เหมือนกับ Redshift เลยทำให้บางคนอาจจะสับสนได้ในครั้งแรกที่ได้ลองเข้าไปใช้งานกัน แต่! มาดูกันก่อนว่าทำไมถึงแตกต่างกัน
โดยเจ้าตัว AWS Athena นั้นเป็นเพียงแค่ Query service เท่านั้น ถ้าเป็น Open source ก็คือตัว Presto หรือ Trino ที่เป็น SQL query engines. กล่าวคือทำหน้าที่ Query อย่างเดียวเลย โดยจะไม่ได้มีการเก็บข้อมูลมาประมวลผลในตัวมันเอง โดยข้อมูลก็จะถูกเก็บอยู่ที่ S3 เป็นหลักโดยมีการเก็บ Metadata ไว้ที่ AWS Glue Data Catalog ทำให้เราสามารถดูข้อมูลได้เลยโดยไม่ต้องย้ายfile ไปไหนมาไหนเลย ไม่จำเป็นต้องทำ ETL เพื่อ ingest ข้อมูลเข้า Data warehouse แบบทั่วๆไป

ข้อดีหลักๆเลย คือตัว AWS Athena นั้นเป็น Serverless กล่าวคือเราไม่จำเป็นจะต้องสร้าง Cluster หรือ Node อะไรขึ้นมาหน้าที่เรามีแค่
1. สร้าง S3 Bucket — เพื่อเก็บไฟล์ข้อมูล (Csv, Json etc..)
2. สร้าง Glue data catalog
3. ทำการเปิดใช้งาน Athena
4. Run the Query!!
จะเห็นว่าขั้นตอนง่ายมากๆ 🤩 ไปเริ่มหัวข้อถัดไปดีกว่าใช้ตัวไหนดี
Redshift vs Athena เลือกอะไรดี!
พอมาที่หัวข้อนี้เรามาดูกันดีกว่าว่าเราควรเลือกใช้งาน Service ไหน ซึ่งถ้าให้พูดแบบตรงๆเราต้องมาดูที่หน้างานเราว่า เราจะเอาไปใช้กับงานแบบไหนเช่น Ad-hoc, Self-serving platform หรือจะเป็น Query ง่ายๆไม่ซับซ้อน
แต่ละตัวมีข้อดีต่างกันอยู่ อย่างเช่นถ้าเราจะ Query log ที่เราได้มาจาก Service อื่นๆมันก็อาจจะ Cost เยอะและรอนานเกินไปถ้าจะต้องไปเปิด Cluster Redshift เราก็ควรใช้งาน Athena ที่เป็น Serverless ค่าใช้จ่ายก็จะคิดแค่ค่า Query เท่านั้น
ยกตัวอย่างซัก 1 ตัวอย่างก็จะเป็น เรามี Data เข้ามาที่ S3 แต่เป็น CSV ที่ยังเป็นแบบ Raw file แต่เราต้องการที่จะทำ ETL เพื่อเอาไปออก Report เราควรเลือกอะไรดีครับ แน่นอนว่าเราก็ควรเลือก Redshift ที่มีการรองรับการทำ ETL ELT ด้วยพร้อมทั้งสามารถเชื่อมต่อออกไปหา BI tools ต่างๆได้มากมายอีกด้วย
ส่วนในด้านของ Cost นั้น Athena คิดราคาเป็น Query หรือก็คือ Pay per use, Redshift คิอเป็น Workload hour ก็คือเปิดแค่ไหนจ่ายแค่นั้นเปิดไว้ไม่ใช้ก็เสียตัง แต่ Redshift ก็มี Serverless เหมือนกันโดยจะคิดเงินเป็นรูปแบบ Pay per use แต่จะปิดเปิด workload ให้อัตโนมัติ ไม่เหมือนกับทาง Managed service Redshift

สรุป
จากข้อมความข้างต้นที่ได้อ่านไปนั้นสรุปได้ว่าการจะเลือกใช้บริการไหนให้เราดูดีๆว่างานของเรานั้นอยู่ในรูปแบบไหน เป็นแค่การ Explore data รึเปล่าหรือจะมีการเปิด self-serving platform ให้กับทีมงานเข้ามาดูข้อมูล ตรงนี้ก็ต้องชั่งน้ำหนักดีๆ ทุกอย่างมี Trade off เสมอ ไม่ว่าจะเป็น Performance Cost or Usage.
One Size Doesn’t Fit All
Follow me here!
Linkedin:
https://www.linkedin.com/in/kriangsak-sumthong/
Facebook page:
https://www.facebook.com/profile.php?id=61563097228247
Medium:
https://medium.com/@puk.kriangsak
Leave a comment