วิธีแก้ปัญหา AWS CLI Error「Connect timeout on/Could not connect to the endpoint URL: ~」

หากเกิดปัญหา AWS CLI Error「Connect timeout on/Could not connect to the endpoint URL: ~」ให้ตรวจสอบการเชื่อมต่อของ Endpoint ที่มีปัญหา
2023.07.06

ปัญหาที่เกิดขึ้น

ทำการรันคำสั่ง AWS CLI Command แล้วเจอกับ Error ตามด้านล่างนี้ครับ

Could not connect to the endpoint URL: "https://<ชื่อ Service>.<ชื่อ Region>.amazonaws.com/"
Connect timeout on endpoint URL: "https://<ชื่อ Service>.<ชื่อ Region>.amazonaws.com/"

รบกวนช่วยวิธีการแก้ไข Error นี้หน่อยครับ

วิธีแก้ปัญหา

ทำการตรวจสอบสภาพแวดล้อมที่ใช้ในการรันคำสั่ง AWS CLI Command ว่าตรงกับเงื่อนไขต่อไปนี้หรือไม่

  • ได้ทำการตั้งค่าให้สามารถเชื่อมต่อไปยัง AWS Service Endpoint ด้วย internet ได้หรือไม่

แล้วให้ทำการตรวจสอบ AWS CLI Command ที่รันคำสั่งไปได้ทำการตั้งค่าด้านล่างนี้ถูกต้องหรือไม่

  • Option การตั้งค่า --region มีข้อผิดพลาดหรือไม่

กรณีที่ 1: เชื่อมต่อไปยัง AWS Service Endpoint ด้วย internet ไม่ได้

เพื่อจำลองสถานกาารณ์ Error นี้ เราได้ทำการดังต่อไปนี้

  • สร้าง Public Subnet
  • สร้าง EC2 instance ใน Subnet ที่สร้างขึ้น
  • ทำการติด IAM Role ที่มีสิทธิในการเขียนและอ่านไฟล์ใน S3 ให้กับ EC2 instance

ในสภาพนี้ เราทำการทดสอบเชื่อมต่อไปยัง Endpoint จะสังเกตได้ว่า CLI Command สามารถรันคำสั่งได้สำเร็จ

$ aws s3 ls

2023-06-19 06:23:13 testbucket0123456789
2023-06-20 04:06:12 <ย่อ>
  • ทำการ Block(Deny) การเชื่อมต่อ Port 443 ผ่าน Access Control List(ACL) ของ Subnet

เนื่องจากการเชื่อมต่อไปยัง Endpoint ไม่สามารถใช้ Port 443 ได้ ทำให้ไม่สามารถเชื่อมต่อได้

$ aws s3 ls

Connect timeout on endpoint URL: "https://s3.amazonaws.com/"

กรณีที่ 2: Option --region มีข้อผิดพลาด

เมื่อเราลองทำการทดสอบรันคำสั่ง AWS CLI Command ไปยัง Region: ap-northeast-6 ที่ไม่มีอยู่ จะเห็นว่าเกิด Error เนื่องจากเราทำการเชื่อมต่อยัง Endpoint ที่ไม่มีอยู่จริง

$ aws s3 ls --region ap-northeast-6

Could not connect to the endpoint URL: "https://sts.ap-northeast-6.amazonaws.com/"

สรุป

หากท่านผู้อ่านที่พบปัญหา Connect timeout on/Could not connect to the endpoint URL เมื่อทำการเชื่อมต่อไปยัง Endpoint สามารถตรวจสอบวิธีแก้ไขปัญหาตามในหัวข้อ วิธีแก้ปัญหา เพื่อดูสาเหตุ และวิธีแก้ไขได้ครับ

บทความอ้างอิง

Troubleshoot endpoint URL connection error in Amazon S3 | AWS re:Post (English)

บทความต้นฉบับ

AWS CLI のエラー「Connect timeout on/Could not connect to the endpoint URL: ~」を回避するには | DevelopersIO (Japanese)