AWS เปิดบริการ AWS App Runner บริการรันคอนเทนเนอร์โดยไม่ต้องจัดการเลเยอร์อื่นๆ รวมถึงไม่ต้องเรียนรู้บริการที่ซับซ้อนอย่าง Kubernetes
ผู้ใช้หลักของบริการนี้น่าจะเป็นเว็บต่างๆ ที่โครงสร้างไม่ซับซ้อน และไม่ต้องการจัดการระบบปฎิบัติการ หรือเวอร์ชั่น Docker เอง โดยบริการ App Runner นี้ทาง AWS จะคอนฟิก load balancer, สร้างใบรับรองเข้ารหัส, และจัดการการ scale ระบบให้เอง
ผู้ใช้สามารถเลือกดีพลอยจากอิมเมจใน ECR หรือจากซอร์สโค้ดโดยตรง โดยตัว App Runner จะเปิดให้คอนฟิกคำสั่ง build และคำสั่งรัน
ค่าบริการ App runner คิดตามทรัพยากรที่คอนเทนเนอร์ใช้งาน โดยมีเครื่องขนาด 1-2 ซีพียู และแรม 2-4 GB คิดค่าบริการรายชั่วโมง ค่าซีพียูคอร์ละ 46 ดอลลาร์ต่อเดือนและค่าแรม 5.04 ดอลลาร์ต่อกิกะไบต์ต่อเดือน หากไม่มีการใช้งานจะคิดเฉพาะค่าแรมเท่านั้น นอกจากนี้ยังมีค่า automatic deployment และคิดเวลารัน build ตลอดจนค่าทราฟิกแยกต่างหาก
ที่มา - AWS
Comments
ตรงส่วนค่าบริการ อิงจากหมายเหตุของตารางราคานี้จะคิดเป็นรายวินาที(สำหรับแรม)/รายนาที(สำหรับซีพียู) นะครับ แล้วก็คิดราคาแยกระหว่างช่วง idle/active ด้วย (เป็นจุดขายเลยสำหรับ low-traffic app ที่อยากได้ auto scaling + warm start)
https://aws.amazon.com/apprunner/pricing/
โดยปกติผมพยายามคูณกลับเป็นรายเดือนเพราะจะได้เทียบเป็นกับรายอื่นได้
ส่วน idle/active นี่เข้าใจว่าไม่มีอัตราพิเศษนะครับ idle ก็คือถอยกลับไปเหลือ 1 vCPU ต่ำสุดเท่านั้น (ตั้งเป็นค่าอื่นได้)
lewcpe.com, @wasonliw
ตรงราคารายเดือนตรงนั้นเข้าใจได้ครับ แต่ตรงที่เขียนว่าคิดเป็นรายชั่วโมงไม่แน่ใจว่าจะทำให้สื่อคลาดเคลื่อนหรือเปล่าเพราะปกติจะเจอคำว่าคิดตามจริงเป็นวินาที(กับค่ามือถือ) หรือรายชั่วโมง(เวลาไป internet cafe) ที่สื่อว่าอยู่ไม่ครบชั่วโมงก็จ่ายเต็ม ชม
ส่วนอัตรา idle/active มีตัวอย่างชัดๆ อยู่ในที่ Example cosst breakdown ตัวที่ 2 ครับ มันเขียนไว้งงๆ อยู่แต่ผลลัพธ์ได้แบบนั้นครับ (คิดเฉพาะแรมช่วง idle ไม่คิดค่า cpu)
ขอบคุณครับ แก้ไขตามนั้น
lewcpe.com, @wasonliw
สำหรับกลุ่ม Provisioned PaaS (รันทิ้งไว้ ไม่ใช่ serverless) ตัว AWS App Runner นี้ก็จะมาแข่งโดยตรงกับเจ้าเดิมๆ ในตลาดอย่าง Heroku, น้องใหม่อย่าง DigitalOcean App Platform, หรือแม้แต่ของเดิมของตัวเองอย่าง AWS Elastic Beanstalk โดยเน้นจุดขายคือความง่ายในการ deploy โค้ด (เอาขึ้น github แล้วระบบจะจัดการ build+deploy code ให้เอง หรือจะใช้ docker ก็ได้), ความสามารถในการ scale ทั้งการขยับและการขยาย, load balancer, ssl, และ monitoring ทำให้ developer สามารถโฟกัสกับโค้ดได้โดยให้ระบบดูแลเซิร์ฟเวอร์ให้แทนทั้งหมด
ถึงแม้ราคาอาจจะดูสูง แต่ถ้าไม่ได้มีช่วงเวลาที่มีการใช้งาน (active request) ยาวนาน ราคาโดยรวมของ Aws App Runner อาจจะต่ำกว่าก็ได้ ตัวอย่างเช่น Digital Ocean นั้น spec 1 cpu + 2GB ram จะมีราคาที่ $25 ต่อเดือน (รวม transfer และ build-minute) ในขณะที่ของ AWS จะมีราคา $10-$56 ต่อเดือน (ไม่รวม transfer, build-minute) จึงอาจเป็นตัวเลือกที่เหมาะกว่าได้หากต้องการ server ที่พร้อมรับ request ตลอดเวลา (ไม่ต้องรอ boot แบบ serverless) แต่มีการใช้งานรวมไม่ถึง 480 นาทีต่อวัน หรือในกรณีที่ต้องการเชื่อมต่อกับบริการอื่นๆ ของ AWS เองโดยตรงเพื่อเพิ่มความเร็วในการตอบสนองของเว็บ
อย่างไรก็ดี ทั้ง Heroku, DO, AWS EB ต่างมีระดับราคาฟรีหรือราคาต่ำกว่านี้อยู่ ซึ่งอาจจะเหมาะสมกว่าสำหรับแอพพลิเคชั่นขนาดเล็กที่มักนิยมใช้ PaaS กัน นักพัฒนามือใหม่อาจจะเลือกใช้แพลตฟอร์มอย่าง Heroku ก่อนแล้วย้ายไปใช้ตัวอื่นในภายหลังที่ต้องการขยับขยายเป็นต้น
ตัวนี้เทียบกับ cloud run ต่างกันตรงไหนบ้างครับ ดู pricing แล้ว cloud run น่าจะเริ่มต้นถูกกว่าเยอะ
Google Cloud Run และตัวอื่นๆ เช่น Google Cloud Function และ AWS Lambda + API Gateway เป็นเซิร์ฟเวอร์ในกลุ่ม Serverless PaaS ครับ ข้อดีหลักๆ ของกลุ่มนี้คือ คิดค่าบริการตามจริงเป็นราย 100ms (หรือ 1 ms สำหรับ Lambda) และมีขนาดเริ่มต้นที่เล็กมาก (เริ่มต้นที่ 128MB) ทำให้สำหรับผู้เริ่มต้นอาจจะใช้งานฟรีหรือเสียค่าใช้จ่ายต่ำมากๆ
ส่วนข้อเสียก็คือ ถ้าเริ่มมีการใช้งานเยอะ ราคาจะพุ่งสูงมากๆๆ สมมติ use case เป็น การใช้งานวันละ 8 ชม/ไม่มีการใช้งานเลย ตัวอย่างราคาจะเป็นตามนี้ครับ (อาจะมี +- ตามจำนวน request)
เทียบกับ Provisioned PaaS หรือ solution อื่นๆ
** สำหรับ 4 ตัวหลังยังไม่รวมค่า Load Balancer ซึ่งมีราคา $10-$25
เห็นได้ว่าถ้าต้องการ warmed server (ไม่ต้องรอ cold start เวลาไม่ได้่เรียกใช้นานๆ) App Runner จะให้ราคาที่ถูกกว่า แต่ก็แลกมาด้วยแรมขั้นต่ำ 2 GB ซึ่งอาจมากเกินความจำเป็นในการใช้งานพอสมควรเลย
อีกข้อนึงที่ไม่ควรลืมคือบริการบางตัวเช่น Cloud Function / Lambda จะบังคับใช้ API ของมันเองในการเรียก request ซึ่งหากในภายหลังต้องการย้ายไปยังระบบอื่นๆ จะทำได้ยากกว่า ต้องเสียเวลาในการ migrate code ไม่น้อยเลยทีเดียว (เทียบกับ Cloud Run, Heroku, App Runner ที่เขียนเป็น http server ธรรมดา) อาจะเอาตรงนี้มาเป็นจุดพิจารณาด้วยในการเลือกใช้
** ราคาของฝั่ง GCP ไม่แน่ใจถูกต้อง 100% ไหม กดจาก GCP Pricing Calculator เอา