39 คะแนน โดย GN⁺ 28 일 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็น โปรแกรมจำลองโอเพนซอร์สฟรี ที่สามารถจำลองสภาพแวดล้อม AWS ได้อย่างสมบูรณ์บนเครื่องโลคัล และถูกพัฒนาขึ้นมาเพื่อเป็นทางเลือกแทน LocalStack ที่เปลี่ยนไปเป็นแบบมีค่าใช้จ่าย
  • รัน 34 บริการของ AWS ผ่านพอร์ตเดียว และ เปิดใช้งาน Postgres, Redis และ Docker container จริง เพื่อมอบสภาพแวดล้อมทดสอบระดับโครงสร้างพื้นฐาน
  • เข้ากันได้อย่างสมบูรณ์กับ AWS SDK, CLI, Terraform, CDK, Pulumi ฯลฯ และเผยแพร่ภายใต้ สัญญาอนุญาต MIT โดยไม่ต้องสมัครบัญชีหรือมี telemetry
  • ทำงานบนเครื่องโลคัลได้เบาและรวดเร็วด้วย เวลาเริ่มต้น 2 วินาที, ใช้หน่วยความจำ 30MB และ Docker image ขนาด 150MB
  • ทุกความสามารถเปิดให้ใช้ฟรีทั้งหมด ทำให้สามารถสร้าง สภาพแวดล้อมพัฒนา AWS แบบโลคัลที่สมบูรณ์เพื่อทดแทนฟีเจอร์ของ LocalStack Pro ได้

ภาพรวมของ MiniStack

  • MiniStack เป็น เครื่องมือโอเพนซอร์สฟรี ที่สามารถจำลองสภาพแวดล้อม AWS ได้อย่างสมบูรณ์บนเครื่องโลคัล และออกแบบมาเพื่อใช้แทน LocalStack ที่เปลี่ยนไปเป็นแบบมีค่าใช้จ่าย
  • รัน 34 บริการของ AWS ผ่านพอร์ตเดียว และใช้ Postgres, Redis และ Docker container จริง
  • ทำงานได้โดยไม่ต้องสมัครบัญชี, ไม่มี license key, ไม่มี remote telemetry และเผยแพร่ภายใต้ สัญญาอนุญาต MIT
  • มี เวลาเริ่มต้นราว 2 วินาที, การใช้หน่วยความจำขณะ idle 30MB และ Docker image ขนาด 150MB
  • หลังจากที่ LocalStack Community เวอร์ชันถูกทำให้มีค่าใช้จ่าย จึงถูกเสนอให้เป็น โซลูชันทดแทนที่มอบประสบการณ์พัฒนาแบบเดียวกันได้ฟรี

ฟีเจอร์และบริการหลัก

  • RDS, ElastiCache, ECS เป็นต้น ทำงานโดยเปิด Docker container จริง เพื่อมอบ สภาพแวดล้อมโครงสร้างพื้นฐานจริง
  • Athena รัน SQL query จริงผ่าน DuckDB และหากยังไม่ได้ติดตั้งจะส่งคืนผลลัพธ์จำลอง
  • คงความเข้ากันได้กับ AWS SDK จึงใช้งานร่วมกับ boto3, AWS CLI, Terraform, CDK, Pulumi ฯลฯ ได้
  • ทุกบริการใช้งานได้ฟรี โดยไม่มีการจำกัดฟีเจอร์หรือแบ่งแผนแบบเสียเงิน
  • 34 บริการ AWS ที่รวมมา

    • S3: รองรับ bucket, object, versioning, encryption, lifecycle, CORS, replication เป็นต้น
    • SQS: รองรับความสามารถของคิว เช่น FIFO, DLQ, batch, visibility เป็นต้น
    • SNS: รองรับ topic, subscription, SQS fanout, batch publish
    • DynamoDB: รองรับ CRUD, query, scan, transaction, TTL, GSI
    • Lambda: รองรับการรัน Python จริง, SQS event mapping, Layers
    • รวมบริการหลักของ AWS ส่วนใหญ่ เช่น IAM / STS / Secrets Manager / CloudWatch / SSM / EventBridge / Kinesis / SES / Step Functions / API Gateway v1·v2 / Route53 / Cognito / EC2 / EMR / EBS / EFS / ALB / ACM / WAF / CloudFormation
    • RDS เปิดใช้งาน container ของ Postgres/MySQL จริง และ ElastiCache เปิดใช้งาน container ของ Redis/Memcached จริง
    • ECS รัน Docker container จริง ส่วน Glue และ Athena มีความสามารถด้าน data catalog และการรัน SQL

เปรียบเทียบกับ LocalStack

  • LocalStack Free มีบริการหลักหลายส่วนที่กลายเป็นแบบเสียเงิน แต่ MiniStack ให้ความสามารถเดียวกันได้ฟรี
  • ฟีเจอร์ที่เป็นของ LocalStack Pro โดยเฉพาะ เช่น Lambda, IAM, SSM, EventBridge, EC2, EMR, EBS, EFS, ALB, CloudFormation ก็รวมมาให้ใช้ฟรีเช่นกัน
  • RDS, ElastiCache, ECS, Athena เป็นต้น ทำงานบนพื้นฐานของ container จริง
  • ด้วย เวลาเริ่มต้นราว 2 วินาที, ใช้หน่วยความจำ 30MB และ Docker image 150MB จึงเบากว่า LocalStack มาก
  • สัญญาอนุญาต ใช้ MIT ต่างจาก BSL/Proprietary ของ LocalStack และ ใช้งานฟรีทั้งหมด

การทำงานบนพื้นฐานโครงสร้างจริง

  • RDS: เมื่อสั่ง CreateDBInstance จะสร้าง Docker container ของ Postgres/MySQL จริง และเชื่อมต่อได้โดยตรงผ่านพอร์ตบนเครื่องโลคัล
  • ElastiCache: ใช้คำสั่ง CreateCacheCluster เพื่อรัน Redis container จริง และนำไปใช้เป็นที่เก็บ session เป็นต้น ได้
  • ECS: ใช้คำสั่ง RunTask เพื่อรัน Docker container จริง และทดสอบ ECS task definition ได้บนเครื่องโลคัล
  • Athena: รัน SQL query จริงผ่าน DuckDB และส่งคืน result set
  • เข้ากันได้อย่างสมบูรณ์กับเครื่องมือ AWS ทั้งหมด และใช้งานได้โดยไม่ต้องเปลี่ยน API endpoint

การติดตั้งและการใช้งาน

  • สามารถรันได้ด้วยคำสั่ง Docker เพียงบรรทัดเดียว
    docker run -p 4566:4566 nahuelnucera/ministack
    
  • สามารถเข้าถึงทุกบริการ เช่น S3, RDS, ElastiCache ผ่าน AWS CLI ได้
  • ตัวอย่าง:

ข้อมูลสัญญาอนุญาตและการเผยแพร่

  • เผยแพร่ภายใต้ สัญญาอนุญาต MIT จึงสามารถ fork หรือนำไปฝังรวมได้อย่างอิสระ
  • เปิดเผยสาธารณะบน GitHub และ Docker Hub
  • ผู้พัฒนาคือ Nahuel และมีแผนดูแลโครงการไปจนถึงปี 2026

ข้อสรุปสำคัญ

  • MiniStack เป็น ทางเลือกแทน LocalStack แบบฟรีเต็มรูปแบบ ที่มอบ สภาพแวดล้อม AWS แบบโลคัลบนพื้นฐานโครงสร้างจริง
  • มีจุดเด่นคือ เริ่มต้นได้รวดเร็ว, ใช้ทรัพยากรน้อย และ เข้ากันได้กับ SDK อย่างสมบูรณ์
  • ทุกฟีเจอร์ฟรี, สัญญาอนุญาต MIT, ไม่มี telemetry
  • เป็นเครื่องมือที่มอบ ประสบการณ์ทดสอบแบบเดียวกับสภาพแวดล้อม AWS production สำหรับการพัฒนาแบบโลคัลและสภาพแวดล้อม CI/CD

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

 
GN⁺ 28 일 전
ความเห็นจาก Hacker News
  • ฉันค่อนข้างรู้จัก DynamoDB ดี
    แต่โค้ดนี้ยังจำลอง service exception, การตรวจสอบ input, eventual consistency และ edge case ต่าง ๆ ได้ไม่ดีพอ
    ดังนั้นการพัฒนาหรือทดสอบโดยอิงกับ ministack เลยยังรู้สึกไม่มั่นใจ
    อีกอย่าง AWS หลายบริการก็มี free tier อยู่แล้ว จึงไม่ได้มีเหตุผลมากนักที่จะต้องใช้ของทดแทนแบบนี้

    • ฉันคิดว่าสิ่งสำคัญกว่าค่าใช้จ่ายคือ ความเร็วของรอบการพัฒนา และการรันได้เร็วในสภาพแวดล้อม CI
    • เป้าหมายของ ministack คือสำหรับ integration test
      กล่าวคือใช้เพื่อตรวจสอบว่าแอปพลิเคชันเรียก API ที่ถูกต้องพร้อมข้อมูลที่ถูกต้องหรือไม่
      ถ้าต้องการพฤติกรรมจริงของ DynamoDB (เช่น การจำกัด capacity, ความหน่วงของ consistency, การประมวลผล stream) มันไม่ใช่ตัวแทนของสิ่งนั้น
      แต่เรายินดีรับ contribution ที่ช่วยให้ทำซ้ำข้อผิดพลาดได้ดีขึ้นเสมอ
      ตอนนี้ ProvisionedThroughputExceededException, TransactionConflictException, ItemCollectionSizeLimitExceededException เป็นต้น กำลังรออยู่
    • ถึงอย่างนั้นก็ยังคิดว่ามีประโยชน์
      ทำการทดสอบพื้นฐานด้วย ministack แล้วค่อยให้เกิดค่าใช้จ่ายบน AWS จริงเฉพาะในขั้นตอน load test ก็พอ
    • จริง ๆ แล้ว LocalStack เองก็ไม่ได้ทำได้สมบูรณ์แบบเหมือนกัน
  • ฉันกำลังดู ministack อยู่ เพราะไม่พอใจกับ การเปลี่ยนไลเซนส์ ของ LocalStack
    ถ้าใครรีบ ก็แค่ปักเวอร์ชันด้วยแท็ก community-archive ก็แก้ได้ทันที
    ลิงก์ Docker Hub

    • อยากถามความเห็นเกี่ยวกับ floci
  • ฉันมองว่าโปรเจกต์ clone ไหน ๆ ก็คงแก้ปัญหาที่ทำให้ LocalStack ล้มเหลวได้ยาก
    การรักษาความเข้ากันได้ฟรีกับบริการ AWS จำนวนมหาศาลนั้นดูแทบเป็นไปไม่ได้ในทางปฏิบัติ
    อาจเป็นไปได้ว่า LocalStack มี codebase ที่เละ หรือจัดการผู้ร่วมพัฒนาได้ไม่ดี

    • สำหรับคำถามว่า “ทำไมเมื่อก่อนถึงทำไม่สำเร็จ?” ฉันคิดว่าหลายครั้ง second mover กลับเป็นฝ่ายชนะ
      ตอนนี้ AWS โตเต็มที่แล้วและความเร็วในการเปลี่ยนแปลงช้าลง อีกทั้ง AI ก็สร้างโค้ดได้ถึงระดับ 80% อย่างง่ายดาย
      และการขึ้นราคาของ LocalStack ก็ทำให้เกิดกลุ่มนักพัฒนาที่กำลังมองหาทางเลือกโอเพ่นซอร์ส
      ยังมีสิ่งให้เรียนรู้ได้มากจากเวอร์ชันโอเพ่นซอร์สของ LocalStack
    • เราไม่ได้ตั้งเป้าเป็นตัวแทน LocalStack แบบสมบูรณ์
      แค่อยากคง บริการหลักของ community version เดิม ให้ทันสมัยเท่านั้น
      เราไม่ได้วางแผนจะรองรับบริการใหญ่ ๆ อย่าง MWAA
      เพราะบริการ AWS หลักส่วนใหญ่แทบไม่มีการเปลี่ยนแปลง API มากนัก
    • ฉันมองว่าแค่มี ความเข้ากันได้อย่างเสถียร สำหรับบริการหลักอย่าง SQS, S3, KMS, Dynamo ก็มีคุณค่ามากพอแล้ว
      ถ้าต้องการฟีเจอร์ซับซ้อนบนเครื่องโลคัล ก็ใช้บัญชี AWS สำหรับพัฒนาจริงไปเลย
    • ฉันเห็นด้วยกับคำพูดที่ว่า codebase ของ LocalStack ค่อนข้างเละ
      ถ้าใช้ LLM และแนวทางการทดสอบแบบใหม่ให้ดี น่าจะสามารถสร้างชุดบริการที่เข้ากันได้แบบกึ่งอัตโนมัติได้
      แต่ฉันไม่ได้อยากลงมือมีส่วนร่วมเอง
      Floci ก็เคยลองแล้ว แต่มี ปัญหาแบบโค้ดช่วงเริ่มต้น อยู่
    • ถ้าเอกสาร API ทำไว้ดีและใช้เครื่องมือ AI coding ให้เป็น การทำบริการทดแทนสำหรับใช้งานบนเครื่องโลคัลก็ดูไม่ยากอย่างที่คิด
  • ปัญหาที่แท้จริงของ LocalStack คือ drift
    เทสต์บนเครื่องโลคัลผ่าน แต่พอขึ้น staging กลับพังเพราะความต่างของ format การตอบกลับของ S3 หรือ throttling ของ DynamoDB บ่อยมาก
    สุดท้ายเราเลยเปลี่ยนไปใช้ integration test บนสภาพแวดล้อม AWS จริงที่มีอายุสั้น
    ถึงจะแพงกว่า แต่ปัญหา ที่คาดไม่ถึง ใน production ลดลงเยอะมาก

    • ฉันคิดว่า LocalStack ใช้เป็น sniff test แบบหนึ่งได้
      คือถ้าผ่านบนเครื่องโลคัล ค่อยไปรัน integration test บน AWS จริงอีกที
  • เพิ่งมารู้ข่าวเรื่อง การเปลี่ยนไลเซนส์ ของ LocalStack ตอนนี้เอง
    เมื่อก่อนใช้มันกับการทดสอบ CI/CD บน GH Actions ได้ดี และความเข้ากันได้กับ AWS CLI ก็ค่อนข้างดี
    จริง ๆ เคยหวังว่า Amazon จะซื้อ LocalStack แล้วทำเป็นสภาพแวดล้อมพัฒนาแบบโลคัลอย่างเป็นทางการ
    แต่ก็คงไม่สมจริงนัก เพราะแบบนั้นจะไปลดรายได้จากสภาพแวดล้อมทดสอบของ AWS

    • บริษัทของเราตอนนี้มี enterprise license อยู่แล้ว เลยยังไม่ได้รับผลกระทบในทันที
      เรายังใช้งานอย่างพอใจอยู่ แต่ก็ผิดหวังกับทิศทางนี้
      หวังว่านี่จะไม่ใช่มาตรการเพื่อดึงรายได้ระยะสั้น
      ในระยะยาวมีโอกาสสูงที่ลูกค้าจะไหลไปหาทางเลือกฟรีหรือ โซลูชันส่วนบุคคลที่อิง GenAI
      ส่วนตัวฉันไม่ได้สนใจ Pods หรือ console UI ของ LocalStack
      หวังว่าพวกเขาคงไม่ได้รับเงินลงทุน VC โดยมีเงื่อนไขให้ยกเลิก community edition
    • แม้จะมีคนบอกว่าความเข้ากันได้กับ AWS CLI ดี แต่พฤติกรรมของบริการจริงกลับต่างออกไปบ่อย
      CLI อาจทำงานได้ดี แต่บริการของ LocalStack มัก ทำงานไม่ตรงกับเอกสาร
  • พอเห็น README ที่มี ไดอะแกรม ASCII เบี้ยวซึ่ง Claude ทำขึ้นมาแล้วก็รู้สึกเชื่อถือไม่ได้
    ถ้าเป็นโปรเจกต์ที่แม้แต่ QC ขั้นพื้นฐานยังไม่ผ่าน ก็คงเชื่อคำอธิบายฟีเจอร์ได้ยาก
    ลิงก์ตัวอย่าง

    • เป็นปฏิกิริยาเชิงล้อเล่นว่า “แต่เขา deploy ด้วยความเร็วระดับการอนุมาน อยู่นะ!”
    • ขอบคุณสำหรับฟีดแบ็กที่ละเอียด
      ลิงก์ CHANGELOG
    • น่าเสียดายที่ทั้งที่ชี้ปัญหาคุณภาพแบบชัด ๆ แล้ว ก็กลับถูก flag โดยไม่มีการโต้แย้ง
      ถ้าเป็นแบบนี้ต่อไป โค้ดคุณภาพต่ำที่สร้างโดย AI ก็คงเพิ่มขึ้นเรื่อย ๆ
    • ASCII ที่ใช้มุมโค้งนั้นเป็น red flag อยู่แล้ว
      ถ้าไม่แม้แต่จะเช็กการจัดแนว ก็ยิ่งน่าเชื่อถือน้อยลงไปอีก
    • อย่างน้อยก็น่าจะรัน formatter หรือไม่ก็ให้ Claude ตั้ง auto-format hook ไว้ได้
  • ยังเร็วเกินไปที่จะเอาเข้า SDLC แต่ก็ดูเป็น โปรเจกต์ที่มีอนาคต
    ในฐานะคนที่ผิดหวังกับ LocalStack ฉันคิดว่านี่อาจกลายเป็นทางเลือกได้

  • มีอีกทางเลือกหนึ่งที่เคยขึ้น HN มาก่อน
    ลิงก์เธรดที่เกี่ยวข้อง

    • ฉันชอบความโปร่งใสแบบ “สร้างทั้งหมดด้วย AI และเก็บทุก prompt ไว้”
    • โปรเจกต์นั้น (ถูกปฏิเสธ), Floci (ไม่ค่อยดี), แล้วตอนนี้ก็กำลังลองอันนี้ตามลำดับ
      นี่ยังเป็นโปรเจกต์ที่เพิ่งมีอายุแค่ 7 วัน
      ฉันอยากได้ตัวแทน LocalStack มาก แต่ตอนนี้ยังขาด ความพร้อมใช้งานจริง อีกมาก
      ซอฟต์แวร์สมัยนี้เหมือนจะเป็นแบบนี้กันหมด — เว็บไซต์สวย คำกล่าวอ้างใหญ่โต โค้ดจาก AI และการทดสอบที่ไม่พอ
  • อยากรู้ว่าฝั่ง GCP มีอะไรที่เทียบได้บ้าง

    • GCP มี ชุดเครื่องมือ emulator ของตัวเอง
      ไม่เข้าใจว่าทำไม Amazon ถึงไม่ทำแบบนี้
      มันน่าจะทำให้ทุกฝ่ายสะดวกกว่านี้มาก
  • อยากให้มีฟังก์ชัน ตัวจำลองต้นทุนจริง ด้วย