18 คะแนน โดย GN⁺ 2026-03-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Floci คือ AWS local emulator แบบโอเพนซอร์สฟรี ที่รันได้ทันทีโดยไม่ต้องสมัครบัญชีหรือตรวจสอบสิทธิ์ และมีโครงสร้างแบบน้ำหนักเบาที่เริ่มทำงานได้ด้วยคำสั่งเดียว
  • เป็น ทางเลือกแบบไม่มีข้อจำกัด เพื่อเตรียมรับช่วงหลังจาก LocalStack Community Edition จะยุติบริการในปี 2026 โดยเปิดให้ใช้งานเชิงพาณิชย์ได้ด้วย สัญญาอนุญาต MIT
  • เบามากด้วย เวลาเริ่มต้น 24ms, หน่วยความจำ 13MiB, และ ขนาดอิมเมจ 90MB พร้อมความเร็ว มากกว่า LocalStack 100 เท่า และใช้หน่วยความจำ น้อยกว่า 10 เท่า
  • รองรับ บริการ AWS มากกว่า 20 รายการ อย่างสมบูรณ์ และมีความเข้ากันได้สูงด้วยการ ผ่านการทดสอบ SDK 408 รายการครบทั้งหมด
  • สามารถผสานรวมได้ทันทีเพียง เปลี่ยน endpoint ของ AWS SDK เดิม ทำให้เป็น โซลูชันทดแทนที่พร้อมใช้ทันที สำหรับสภาพแวดล้อมการพัฒนาและทดสอบแบบโลคัล

ภาพรวมของ Floci

  • Floci คือ AWS local emulator แบบโอเพนซอร์สฟรี ที่ออกแบบมาให้รันได้ทันทีโดยไม่ต้องสมัครบัญชีหรือต้องใช้โทเคนยืนยันตัวตน
  • ทำงานได้ด้วยคำสั่ง docker compose up เพียงคำสั่งเดียว และ ไม่มีข้อจำกัดด้าน CI/CD หรือการล็อกฟีเจอร์
  • ชื่อนี้มาจาก cirrocumulus floccus ซึ่งเป็นรูปแบบของเมฆ และสื่อแนวคิดว่า “เบา นุ่มนวล และฟรีเสมอ”

บทบาทในฐานะทางเลือกของ LocalStack

  • LocalStack Community Edition มีกำหนด ยุติบริการในเดือนมีนาคม 2026 และหลังจากนั้นจะมีการบังคับใช้โทเคนยืนยันตัวตน, ยุติการรองรับ CI และหยุดอัปเดตความปลอดภัย
  • Floci ถูกนำเสนอเป็น ทางเลือกแบบไม่มีข้อจำกัด สำหรับกรณีนี้
  • เผยแพร่ภายใต้ สัญญาอนุญาต MIT จึงสามารถนำไปใช้งานได้อย่างอิสระ รวมถึงการใช้งานเชิงพาณิชย์

เปรียบเทียบประสิทธิภาพและฟังก์ชัน

  • มีขนาดเบามากด้วย เวลาเริ่มต้นราว 24ms, หน่วยความจำขณะ idle 13MiB, และ ขนาด Docker image 90MB
  • เมื่อเทียบกับ LocalStack Community Edition มี ความเร็วในการเริ่มต้นมากกว่าประมาณ 100 เท่า และ ใช้หน่วยความจำน้อยกว่ามากกว่า 10 เท่า
  • รองรับ บริการ AWS มากกว่า 20 รายการ และ ผ่านการทดสอบ SDK 408/408 รายการ
  • บริการหลักที่รองรับ:
    • API Gateway v2 / HTTP API**,** Cognito**,** ElastiCache (Redis + IAM authentication)

    • RDS (PostgreSQL, MySQL, IAM authentication), S3 Object Lock (COMPLIANCE / GOVERNANCE)

      • รองรับ DynamoDB Streams, IAM, STS, Kinesis, KMS ฯลฯ อย่างสมบูรณ์
      • ใน LocalStack ฟังก์ชันข้างต้นยังรองรับเพียงบางส่วนหรือยังไม่รองรับ

เริ่มต้นอย่างรวดเร็ว

  • มีตัวอย่างการตั้งค่า docker-compose.yml พื้นฐานให้
    • ใช้พอร์ต 4566 และ mount ไดเรกทอรีโลคัล ./data
  • คำสั่งรัน:
    docker compose up
    
  • ทุกบริการสามารถเข้าถึงได้ที่ http://localhost:4566
  • สามารถใช้ค่าใดก็ได้สำหรับ AWS credentials (AWS_ACCESS_KEY_ID=test, AWS_SECRET_ACCESS_KEY=test)
  • ตัวอย่างคำสั่ง:
    • aws s3 mb s3://my-bucket
    • aws sqs create-queue --queue-name my-queue
    • aws dynamodb list-tables

การผสานรวมกับ SDK

  • สามารถใช้งานได้ทันทีโดยเพียง เปลี่ยน endpoint ของ AWS SDK เดิม
  • ตัวอย่างตามภาษา:
  • ในทุกตัวอย่าง region ใช้ us-east-1 และ credentials ใช้ค่า "test"

แท็กอิมเมจ

  • latest: native image, แนะนำเพราะมี ความเร็วเริ่มต้นต่ำกว่า 1 วินาที
  • latest-jvm: อิมเมจแบบ JVM ที่เน้น ความเข้ากันได้ข้ามแพลตฟอร์ม
  • x.y.z / x.y.z-jvm: รีลีสแบบตรึงเวอร์ชัน

การตั้งค่าสภาพแวดล้อม

  • ทุกการตั้งค่าสามารถ override ได้ด้วยตัวแปรสภาพแวดล้อมที่มีคำนำหน้า FLOCI_
  • ตัวแปรหลัก:
    • QUARKUS_HTTP_PORT: ค่าเริ่มต้น 4566
    • FLOCI_DEFAULT_REGION: ค่าเริ่มต้น us-east-1
    • FLOCI_DEFAULT_ACCOUNT_ID: ค่าเริ่มต้น 000000000000
    • FLOCI_STORAGE_MODE: เลือกได้จาก memory, persistent, hybrid, wal (ค่าเริ่มต้น hybrid)
    • FLOCI_STORAGE_PERSISTENT_PATH: พาธของไดเรกทอรีข้อมูล (./data)
  • เอกสารการตั้งค่าทั้งหมด: configuration docs
  • การตั้งค่าสตอเรจแยกตามบริการ: storage docs

สัญญาอนุญาต

  • ให้ใช้งานภายใต้ สัญญาอนุญาต MIT จึง ใช้งานและแก้ไขได้อย่างอิสระโดยไม่มีข้อจำกัด

1 ความคิดเห็น

 
GN⁺ 2026-03-23
ความเห็นจาก Hacker News
  • อยากให้บรรดา ผู้ให้บริการคลาวด์ อย่าง AWS, GCP, Azure มีตัว emulator สำหรับการพัฒนาแบบโลคัลอย่างเป็นทางการ
    ตอนนี้กำลังใช้ serverless stack ของ AWS หลายตัวอยู่ แต่การทดสอบแบบบูรณาการในเครื่องแทบเป็นไปไม่ได้เลย
    Localstack เป็นทางเลือกที่โอเคก็จริง แต่ฟีเจอร์แบบนี้ถ้า AWS ทำเองโดยตรงน่าจะทำให้ประสบการณ์นักพัฒนาดีขึ้นมาก

    • ตัว local emulator อย่างเป็นทางการฟังดูดี แต่ในทางปฏิบัติ AWS จะต้องอธิบายความต่างของพฤติกรรมของ S3, IAM, Kinesis ฯลฯ ทีละอย่าง
      คนก็คงจะเข้าใจความต่างนั้นว่าเป็นบั๊กของ AWS ดังนั้นในมุมของ AWS มันจะกลายเป็น ฝันร้ายด้านซัพพอร์ต
    • เคยดูโปรเจกต์ local-web-services ที่สร้างโดยวิศวกร AWS แล้ว มันให้ความสามารถคล้ายกันพอสมควร
      น่าสนใจเหมือนกันที่ Localstack เริ่มเจอการแข่งขันเพราะกระแส shift-left infrastructure tooling ที่ขับเคลื่อนด้วย AI
    • เมื่อก่อน Microsoft เคยมี sandbox แบบ single-node ชื่อ Azure Service Dev Kit (ASDK)
      ตอนนี้ถูกลดบทบาทไปแล้ว แต่แนวคิดคือการจำลอง Azure cloud ทั้งก้อนบนเครื่องโลคัล
    • ฉันไม่เห็นด้วยกับความเห็นนี้เลย
      ซอฟต์แวร์ควรถูกออกแบบโดยยึด abstraction และ interface เป็นศูนย์กลาง เพื่อไม่ให้ผูกติดกับ cloud API เจ้าใดเจ้าหนึ่ง
    • Cloudflare มี local emulator สำหรับ serverless platform ของตัวเอง และมันทำงานได้ดีทีเดียว
  • เครื่องมือประเภทนี้สำหรับฉันดูเป็น ความพยายามที่ไร้ความหมาย
    ถ้าจะใช้กับ unit test การ mocking การเรียก AWS น่าจะดีกว่า
    ถ้าเป็นงานพัฒนาแบบโลคัล การ provision test environment ขึ้นมาจริงด้วยเครื่องมือ IaC อย่าง Terraform จะปลอดภัยกว่า
    ถ้าพฤติกรรมของ emulator ต่างจากบริการจริง ก็มีความเสี่ยงที่บั๊กจะรั่วเข้า production

    • แถมยังอาจเกิด ปรากฏการณ์กลับด้าน ที่โค้ดทำงานไม่ดีในเครื่องโลคัล แต่กลับทำงานได้ดีบน AWS จริง
  • ขอสรุปประสบการณ์และความคิดของฉันต่อแนวคิด “AWS แบบโลคัล”

    • ไม่คิดว่าผลิตภัณฑ์แบบนี้จะช่วยดึงลูกค้าใหม่ได้มากนัก
      คนที่ไม่อยากแม้แต่จะผูกบัตรเครดิต ยังไงก็ไม่น่ากลายเป็น ลูกค้าระดับมูลค่าสูง อยู่ดี
    • free tier ของ AWS ค่อนข้างใจดี ฉันเองยังใช้ไม่ถึง 10 ดอลลาร์ต่อปีด้วยซ้ำ
    • ถ้าจะเรียนรู้ AWS ก็ต้องเจอกับ ความจริงของการควบคุมค่าใช้จ่าย ด้วยตัวเอง โดนเก็บเงิน 5 ดอลลาร์ตั้งแต่แรกยังดีกว่าไปเสีย 5,000 ดอลลาร์ทีหลัง
    • ข้อดีที่แท้จริงของ local cloud คือมันเปิดทางให้ พัฒนาแบบวนรอบได้เร็วโดยไม่แบกภาระด้านความปลอดภัย
      แต่พอจะ deploy จริงก็ต้องไปสะสางหนี้ด้านความปลอดภัยนี้อยู่ดี และในขั้นตอนนั้นโค้ดที่ “ทำงานได้บนเครื่องฉัน” ก็มักพัง
    • Localstack ได้รับ การสนับสนุนแบบไม่เป็นทางการ จาก AWS จึงมีฟีเจอร์เยอะและออกรีลีสได้เร็ว
      ทางเลือก FOSS คงไล่ทันระดับนั้นได้ยาก
    • เหตุผลที่ฉันต้องการเครื่องมือแบบนี้จริง ๆ คือ การจำลองสิทธิ์ IAM
      ถ้าจะยึดหลัก least privilege ก็ต้องค่อย ๆ เปิดสิทธิ์ทีละอย่าง ซึ่งช้ามากจนเหมือนเล่นเกม whack-a-mole ของสิทธิ์
      ถ้าจำลอง IAM ในเครื่องได้อย่างแม่นยำ ก็จะย่นวงจรการ deploy ลงได้มาก
      ฟีเจอร์นี้มีอยู่ใน Localstack รุ่นเสียเงิน เลยสงสัยว่าโปรเจกต์ใหม่นี้ทำได้ดีแค่ไหน
    • ในสภาพแวดล้อม CI/CD นั้น Localstack แทบจะขาดไม่ได้
      ต้องรัน integration test หลายร้อยรายการให้เร็ว แต่การเรียก AWS จริงนั้นไม่มีประสิทธิภาพเพราะมีทั้ง latency, ปัญหาความสม่ำเสมอ, ค่าใช้จ่าย, rate limit
      การแจก AWS account ให้กับนักพัฒนาแต่ละคนก็เป็นฝันร้ายด้านการจัดการ
      คำพูดที่ว่า “ต้องโดนระเบิดบิล AWS ด้วยตัวเองถึงจะเรียนรู้” มันเป็น อุปมาแบบไม่สมจริง พอ ๆ กับบอกว่า “ถ้าจะเรียนรู้เรื่องไฟก็ต้องโดนไฟลวกก่อน”
    • เป้าหมายหลักของ local emulator คือ unit test และ integration test บางส่วน
      ถ้าให้นักพัฒนาแต่ละคนมีบัญชีแยกและตั้ง billing alert ไว้ ปัญหาด้านความปลอดภัยก็ไม่ได้ใหญ่ขนาดนั้น
  • สงสัยว่าโปรเจกต์นี้ต่างจาก moto อย่างไร
    หลายคนไม่พอใจกับการเปลี่ยนไลเซนส์ของ Localstack แต่จริง ๆ ก็มีทางเลือกที่ดีอยู่แล้ว
    service coverage ของ moto น่าประทับใจมาก
    ทีมของเราก็เกือบย้ายแล้ว แต่สุดท้ายยังใช้ต่อเพราะสัญญา enterprise support ของ Localstack

  • ดูแล้วน่าจะมีประโยชน์กับงานทดสอบพอสมควร
    ฉันกำลังทำ automation สำหรับแพ็กเกจ Lambda ด้วย Ansible role
    ถ้าสามารถ mocking ส่วนที่เช็กว่าใน S3 มี zip เดิมอยู่หรือไม่ได้ ก็น่าจะสะดวกขึ้นมาก

  • LocalStack Community Edition จะสิ้นสุดในเดือนมีนาคม 2026 และมีแผนจะบังคับใช้ auth token รวมถึงหยุดอัปเดตด้านความปลอดภัย
    Floci ถูกนำเสนอเป็นทางเลือกที่ไม่มีข้อจำกัดเหล่านี้

    • น่าเสียดายที่หลังจากอยู่มานานก็ต้องปิดลง แต่ enterprise license ที่บริษัทเราใช้ยอดเยี่ยมจริง ๆ
      มันช่วยสร้าง feedback loop ที่รวดเร็วโดยไม่ต้องรอการ deploy ผ่าน CloudFormation และประหยัดเวลาไปได้หลายพันชั่วโมง
      เรายังสามารถ ทดสอบบนรถไฟ ได้แม้ไม่มีอินเทอร์เน็ต
  • ชื่อโปรเจกต์นี้ในภาษาโรมาเนียแปลว่า “ก้อนขนเล็ก ๆ” และในภาษาพูดหมายถึง ขนหัวหน่าว เลยดูตลกดี

    • ในภาษาละตินมันแปลว่า “ก้อนขนแกะ” และยังใช้ในสำนวน flocci non facio ที่หมายถึง “ไร้ค่า” ด้วย
  • นี่คือโปรเจกต์ที่ฉันรออยู่
    ฉันชอบ Localstack แต่คิดว่าโซลูชันโอเพนที่ ขับเคลื่อนโดยชุมชน เหมาะสมกว่ามาก
    ถ้ามีโครงสร้างที่ให้วิศวกร AWS เข้ามามีส่วนร่วมได้โดยตรง ก็จะเป็นประโยชน์กับทุกฝ่าย
    ตอนนี้ที่ การนำ AI มาใช้ กำลังเร่งตัว การทดสอบแบบบูรณาการบนเครื่องโลคัลยิ่งเป็นสิ่งจำเป็น

    • แต่ในมุมของ AWS ก็ไม่มีเหตุผลที่จะสนับสนุน FOSS clone
      ทางเลือกที่เป็นจริงกว่าคือออก local container version อย่างเป็นทางการแทน
    • เห็นด้วยอย่างยิ่ง โดยเฉพาะตอนนี้ที่ agent workflow มีการเปลี่ยนแปลงสถานะจริง
      การทดสอบในเครื่องเท่านั้นที่เป็นวิธีปลอดภัยในการลองสถานการณ์อย่าง “โมเดลหลอนจนลบตารางทิ้ง”
  • เคยใช้ Localstack แล้วถือว่าโอเคมาก
    มีใครรู้ไหมว่าฝั่ง GCP มีอะไรคล้าย ๆ กันหรือเปล่า
    bigquery-emulator ใช้งานได้ดี แต่ยังไม่เจออะไรที่จำลอง GCP ทั้งระบบได้

  • ฟีเจอร์ดูเจ๋งดี แต่แทบไม่มี commit history เลย และก็ไม่มี PR หรือ issue ด้วย
    มันดูเหมือนโปรเจกต์ที่สร้างอัตโนมัติ เลยให้ความรู้สึกว่า ไม่น่าเชื่อถือ
    เวลาทดสอบกับข้อมูลจริงก็ไม่มั่นใจว่าปลอดภัยพอหรือไม่

    • ฉันก็เห็นด้วย ถ้าเป็นโปรเจกต์ OSS ก็ควรมี issue อยู่พอสมควรเพื่อให้หา จุดที่เข้าไปมีส่วนร่วม ได้
      ตอนนี้ยังอยู่ช่วงต้นมาก ก็เลยคงต้องติดตามดูต่อไป
    • หรืออาจจะเป็น โปรเจกต์ vibe-coded ก็ได้
    • การสงสัยแบบนี้กับโปรเจกต์ที่เพิ่งมีอายุแค่สัปดาห์เดียวดูกล่าวเกินไปหน่อย
      แต่ก่อนคนเชื่อกันว่าแค่เป็นโอเพนซอร์ส เดี๋ยวก็มีคนมาเจอปัญหาความปลอดภัยเอง
      ทุกวันนี้กลับสามารถใช้ LLM ทำ security audit ได้ด้วย
      มันอาจไม่สมบูรณ์แบบ แต่การตรวจสอบอัตโนมัติแบบนี้ก็ทำให้ซ่อนมัลแวร์ได้ยากขึ้น