Menu

Showing posts with label metadata. Show all posts
Showing posts with label metadata. Show all posts

Friday, November 29, 2019

[Laravel - AWS] วิธีการเก็บ Cache Credentials สำหรับ AWS SDK ของ PHP
[Laravel - AWS] How to Cache Credentials for the AWS SDK for PHP

Credentials จะถูกเรียกใช้ทุกครั้งที่มีการส่ง request ไปยัง Amazon Web Services

มีหลายวิธีที่จะตั้งค่า Credentials นี้ สามารถอ่านได้ที่ Credentials for the AWS SDK for PHP Version 3

ถ้า Application ของเรารันบนเครื่อง Amazon EC2 วิธีการที่แนะนำ คือ การใช้ IAM role เพื่อดึง Credentials แบบชั่วคราวมาใช้งาน

สำหรับการใช้งาน IAM roles, metadata service จะถูกเรียกถูกครั้งที่เรียกใช้ Credentials

หมายเหตุ การเรียกใช้ metadata service คือ การส่ง request ไปที่ metadata server ใน เครื่อง EC2 ซึ่งอาจจะมี network latency ได้

Thursday, August 15, 2019

[Docker - AWS] วิธีการหา IP address ของ Host ที่เป็น EC2 จากภายใน Docker Container
[Docker - AWS] How to Find IP Address of EC2 Host from Inside of Docker Container

สำหรับ Docker ที่รันใน AWS นั้น ข้อมูล Instance meta-data ของ Host ยังคงสามารถเรียกใช้ได้จากภายใน Container

ดังนั้นเราไม่จำเป็นต้องหาวิธีส่งค่า Host IP address เข้าไปใน Docker Container ให้ยุ่งยาก เราสามารถเรียกใช้ local-ipv4 หรือ public-ipv4 จาก Instance meta-data ได้เลย โดยใช้คำสั่งดังนี้
curl http://169.254.169.254/latest/meta-data/{category}
โดยที่ {category} เป็น local-ipv4 หรือ public-ipv4

นอกจาก local-ipv4 และ public-ipv4 แล้ว ยังมี categories อื่นๆที่ยังสามารถเรียกใช้ได้อีก อ่านข้อมูลเพิ่มเติมได้ที่ EC2 Instance Metadata

Friday, May 17, 2019

[Laravel - AWS] วิธีการตั้งค่า timeout สำหรับ InstanceProfileProvider ของ AWS PHP SDK
[Laravel - AWS] How to Set Timeout for InstanceProfileProvider of AWS PHP SDK

InstanceProfileProvider เป็น credential provider ที่ใช้ credentials จาก EC2 metadata server

สำหรับข้อมูลของ EC2 metadata server อ่านได้ที่ https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

ใน InstanceProfileProvider class ของ aws-php-sdk library เราจะพบ constructor ตามภาพด้านล่าง


เราจะพบตัวแปร $config['timeout'] แต่เราจะตั้งค่ามันยังไง!!!