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 ได้ตามลิงค์นี้

Configuration
Overview of configuration options in LocalStack

Start Container

โดยการรันคำสั่งต่อไปนี้:

docker-compose up

เท่านี้เราก็สามารถเรียกใช้งาน LocalStack โดยใช้คำสั่งเดียวกับ aws cli ได้เลย


LocalStack Dashboard

หากเราต้องการดูว่า LocalStack นั้น มี services ไหนที่กำลังใช้งานอยู่บ้าง หรือถ้าหากต้องการใช้เว็บในการกำหนดค่าต่างๆ ของ services เราก็สามารถเข้าไปดูได้ที่เว็บไซต์ของ LocalStack ได้เลย

LocalStack

https://www.localstack.cloud/

ซึ่งใน version เก่า มันสามารถเปิด dashboard บน local ได้เลย แต่ตอนนี้มันเปลี่ยนให้ไปเปิดบนเว็บไซต์ของ localstack เลย

หลังจากที่ login เข้าไปแล้ว มันจะมีส่วนต่างๆ ให้ลองเล่งกัน ตรงนี้ลองทดลองเล่นกันได้

LocalStack Instance

ส่วนใหญ่ เราจะใช้เมนู LocalStack Instance เป็นหลัก โดยที่เมนูนี้จะแสดงการทำงานของ services ต่างๆ

โดยเราสามารถกดแก้ไข endpoint ได้ตามที่ต้องการ

LocalStack Instance

ถ้าอยากรู้ว่ามี services อะไรที่สามารถใช้งานได้บ้างให้กดดูที่ status tab ก็จะเห็น services ทั้งหมด ที่สามารถใช้งานได้ ซึ่งมีทั้งแบบฟรีและแบบจ่ายเงิน (Pro)

เราสามารถดูได้ด้วยว่า ตอนนี้เรากำลังใช้งาน services ไหนอยู่ และกดเข้าไปที่ services นั้นๆ เพื่อตั้งค่าและจัดการต่างๆ ได้ แบบเดียวกับที่เรากำหนดบน AWS เลย

Status

LocalStack นั้นเป็นเครื่องมีที่ใช้งานง่ายมาก และมี doc ที่ละเอียดเลย สามารถเข้าไปศึกษาเพิ่มเติมได้ตามลิงค์ด้านล่างเลย

Overview
LocalStack Documentation

Reference