AWS API Gateway

Mart — Tanathip Viriya
1 min readJun 7, 2020

--

เป็น fully managed service ที่ช่วยให้เราจัดการ publish, maintain, monitor และ secure API ของเรานั้นเอง

โดยจะทําหน้าที่เป็น ด่านแรก ของ back-end services ทั้งหมด แปลว่า front-end application ทั้งหมดจะวิ่งมาที่ API Gateway ตัวนี้และค่อยส่ง request ต่อไปที่ AWS Lambda หรือ application อื่นๆๆนั้นเอง

ประเภทของ API

  1. REST APIs (Representational State Transfer)
  2. SOAP APIs (Simple Object Access Protocol)

Caching

เราสามารถ cache endpoint’s response ได้ ซึ่งเมื่อเราทําการ cache แบบนี้มันจะช่วยทําให้เราลดจํานวนที่เรียก endpoint นั้นลงได้ ทําให้ latency ของ request ที่เรียกไป API เราลดลงมาก

โดยใช้ time-to-live (TTL) ในการจัดการ cache ว่ามันควรจะทําการ update cache หรือยัง

Same-Origin Policy

คือหลักการณ์ของ security model ที่จะยอมให้ Web Browser อนุญาติให้ scripts ต่างๆจาก Web A เข้าถึง Web B ได้โดยต้องมี Origin เดียวกันเท่านั้น

เพื่อป้องกันการทํา Cross-SIte Scripting (XSS) ใส่เรานั้นเอง

Cross-Origin Resource Sharing (CORS)

เป็นหลักการณ์ที่ช่วยทําให้เราสามารถยอมให้ server อื่นเข้ามาถึง Web ได้โดยใช้คนละ domain นั้นเอง

โดยใช้วิธีการที่ HTTP request ของเราส่ง HTTP OPTIONS ไปอีกทีที่ URL นั้นๆแล้วกจะได้ Response กลับมาจาก API Gateway ว่า approved ที่ HTTP method ไหนนั้นเอง (ทั้งนี้เราต้อง enable CORS บน API Gateway ก่อนนะ)

API Gateway Import

support swagger v2.0 definition files เพื่อสร้าง API ได้เลย ซึ่งช่วยลดเวลาในกาไปสร้างเองได้มากๆ

Performance — API Throttling

API Gateway มีข้อจํากัดในการ request คือ

  1. request ต้องไม่เกิน 10,000 requests per second (rps)
  2. concurrent requests มากสุดคือ 5,000 requests ภายใน 1 account

โดยถ้าเรา request มากเกินกว่าข้อจํากัดข้างบน สิ่งที่เราจะได้รับคือ 429 Too Many Request นั้นเอง

ตัวอย่าง Scenarios

  • ถ้าเรายิง request 10,000/วินาที โดยแบ่ง request เป็น 10 requests ต่อ Millisecond เจ้า API Gateway จะทํางานได้อย่างปกติ โดยไม่ได้ dropping ซัก request เลย
  • แต่ทางกลับกันเราส่ง 10,000 requests ตั้งแต่ Millisecond แรกเลยนะ เจ้า API Gateway จะจัดการได้ 5,000 requests นั้น แล้วที่เหลือทิ้งหมดเลย (เพราะ maximum concurrent คือ 5,000 นั้นเอง)
  • เราเลยควรที่จะส่ง request ไป 5,000 requests ใน Millisecond แรกแล้วหลังจากนั้นค่อยส่งอีก 5,000 requests เข้าไปซึ่งอาจจะกระจายให้พอดีก่อนจะครบ 1 วินาทีก็ได้ (1,000 milliseconds) ซึ่งวิธีนี้จะทําให้ API Gateway ไม่ response 429 Too Many Request กลับมานั้นเอง

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response