LocalStack เป็นเครื่องมือจำลอง services ต่างๆ ที่อยู่บนคลาวด์ของ AWS ซึ่งถ้าหากว่าระบบของเราจำเป็นต้องใช้งาน AWS ระบบอยู่แล้ว
ในขั้นตอนของการพัฒนาระบบเราอาจจะเลือกใช้ LocalStack แทนการเรียกใช้งาน AWS ตรงๆ ได้ เพราะตัว LocalStack จะช่วยจำลอง services ต่างๆ ของ AWS บนเครื่องของเราได้มันช่วยให้เราสามารถพัฒนาและทดสอบระบบได้โดยไม่จำเป็นต้องเชื่อมต่อ AWS จริงๆ
LocalStack รองรับบริการ AWS หลาย Services อยู่แล้ว เช่น S3, DynamoDB, RDS, Lambda และอื่นๆ เราสามารถเข้าไปดูเพิ่มได้จาก Link นี้ได้เลย
วิธีใช้ LocalStack
โดยทั่วไปแล้ว LocalStack จะสามารถติดตั้งและใช้งานได้หลายวิธี
- LocalStack CLI
- LocalStack Desktop
- LocalStack Docker Extension
- Docker-Compose
เราสามารถดู วิธีการติดตั้ง ได้ตามนี้
ในบทความนี้เราจะลองติดตั้ง LocalStack โดยใช้ Docker-Compose
Docker-Compose
เริ่มต้นโดยกำหนดค่าไฟล์ docker-compose.yml ซึ่งรองรับ docker-compose เวอร์ชัน 1.9.0+ แล้ว ในตัวอย่างนี้เราจะใช้ LocalStack ในเวอร์ชั่น Community
version: "3.8"
services:
localstack:
container_name: localstack
image: localstack/localstack
ports:
- "127.0.0.1:4566:4566" # LocalStack Gateway
- "127.0.0.1:4510-4559:4510-4559" # external services port range
environment:
# DEBUG can be either 0 or 1 (0 is the default)
- DEBUG=0
- SERVICES=s3
volumes:
- "/localstack:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
หากต้องการกำหนด services ที่ต้องการใช้งาน สามารถทำได้โดยการระบุ services ใน environment
environment:
- SERVICES=s3,lamda
โดยสามารถเข้าไปดูวิธีการ config ได้ตามลิงค์นี้
Start Container
โดยการรันคำสั่งต่อไปนี้:
docker-compose up
เท่านี้เราก็สามารถเรียกใช้งาน LocalStack โดยใช้คำสั่งเดียวกับ aws cli ได้เลย
LocalStack Dashboard
หากเราต้องการดูว่า LocalStack นั้น มี services ไหนที่กำลังใช้งานอยู่บ้าง หรือถ้าหากต้องการใช้เว็บในการกำหนดค่าต่างๆ ของ services เราก็สามารถเข้าไปดูได้ที่เว็บไซต์ของ LocalStack ได้เลย
ซึ่งใน version เก่า มันสามารถเปิด dashboard บน local ได้เลย แต่ตอนนี้มันเปลี่ยนให้ไปเปิดบนเว็บไซต์ของ localstack เลย
หลังจากที่ login เข้าไปแล้ว มันจะมีส่วนต่างๆ ให้ลองเล่งกัน ตรงนี้ลองทดลองเล่นกันได้
LocalStack Instance
ส่วนใหญ่ เราจะใช้เมนู LocalStack Instance เป็นหลัก โดยที่เมนูนี้จะแสดงการทำงานของ services ต่างๆ
โดยเราสามารถกดแก้ไข endpoint ได้ตามที่ต้องการ
ถ้าอยากรู้ว่ามี services อะไรที่สามารถใช้งานได้บ้างให้กดดูที่ status tab ก็จะเห็น services ทั้งหมด ที่สามารถใช้งานได้ ซึ่งมีทั้งแบบฟรีและแบบจ่ายเงิน (Pro)
เราสามารถดูได้ด้วยว่า ตอนนี้เรากำลังใช้งาน services ไหนอยู่ และกดเข้าไปที่ services นั้นๆ เพื่อตั้งค่าและจัดการต่างๆ ได้ แบบเดียวกับที่เรากำหนดบน AWS เลย
LocalStack นั้นเป็นเครื่องมีที่ใช้งานง่ายมาก และมี doc ที่ละเอียดเลย สามารถเข้าไปศึกษาเพิ่มเติมได้ตามลิงค์ด้านล่างเลย