Oxcart İndir
Menü

Mac'te AWS ECS, EKS, Fargate ve Lambda için yerel geliştirme

Apple silicon Mac'te AWS konteyner iş yüklerini test etmek için dağıtacağınız imajların aynısını çalıştırın: ECS ve Fargate görevlerini Compose projesi, Lambda konteyner imajlarını AWS'nin yerleşik Runtime Interface Emulator'ü ve AWS API'larını LocalStack üzerinden. Oxcart, 42 ms içinde başlayan konteynerler ve Rosetta üzerinden çalışan amd64 imajlarıyla bu döngüyü hızlandırır.

Güncelleme

Ne nerede çalışır

AWS konteyner servisleri ve Oxcart'taki yerel karşılıkları
AWS servisiYerel karşılıkYerel iş akışınız
ECS görevi, Fargate göreviGörevin imajlarıyla Docker ComposeServislerinizi sağlık denetimleri ve yayınlanan portlarla birlikte çalıştırın
Lambda (konteyner imajı)Runtime Interface Emulator içeren Lambda temel imajıİşlevinizi yerel arm64 üzerinde HTTP ile çağırın
S3 ve diğer AWS API'larıLocalStackS3 kova ve nesne işlemlerini yerelde geliştirin
EKSGerçek kümeye karşı kubectl ve k9s; yerel API için kwokYerelde derleyip test edin, ardından kümenizle kubectl ve k9s kullanın

Compose projesi olarak ECS ve Fargate görevleri

ECS görev tanımı; imajlar, ortam, port eşlemeleri, sağlık denetimleri ve başlatma sırasıyla konteyner listesidir. Compose aynı şeyleri tanımlar, dolayısıyla dönüşüm doğrudandır: konteyner tanımı başına bir servis.

Görev tanımı alanları ve Compose karşılıkları
Görev tanımıcompose.yaml
imageimage
environment, secretsenvironment, env_file (gerçek gizli bilgileri dosyanın dışında tutun)
portMappingsports
healthCheckhealthcheck
HEALTHY ile dependsOncondition: service_healthy ile depends_on
runtimePlatform.cpuArchitectureplatform: linux/amd64 veya linux/arm64
services:
  api:
    image: ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/api:1.4.0
    platform: linux/amd64          # match the task's cpuArchitecture
    environment:
      DATABASE_URL: postgres://postgres:dev@db:5432/app
    ports: ["8080:8080"]
    depends_on:
      db:
        condition: service_healthy
  db:
    image: postgres:17-alpine
    environment:
      POSTGRES_PASSWORD: dev
      POSTGRES_DB: app
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
      interval: 2s
      retries: 30
docker compose up -d --wait     # returns when db is healthy and api has started
curl localhost:8080/health
docker compose down -v

Bu düzeni Oxcart'ta Postgres 17 ve service_healthy bekleyen nginx servisiyle doğruladık: up --wait, ikisi sağlıklıyken ve yayınlanan port localhost üzerinde yanıt verirken döndü. Mac'te derlenen amd64 imajlarını çalıştırırken aynı platformu geçin; yerelde derlenmiş yalnızca amd64 imajı ancak --platform linux/amd64 (veya Compose'da platform:) ayarlandığında bulunur.

Lambda konteyner imajını yerelde çalıştırıp çağırın

  1. İşleyiciyi yazın. Sözlük döndüren handler(event, context) işleviyle app.py oluşturun; örneğin {"statusCode": 200, "body": "hello"}.
  2. Dockerfile'ı yazın. Runtime Interface Emulator içeren AWS Lambda temel imajıyla başlayın: FROM public.ecr.aws/lambda/python:3.13, ardından COPY app.py ${LAMBDA_TASK_ROOT}/ ve CMD ["app.handler"].
  3. İmajı derleyin. docker build -t my-lambda . çalıştırın. İşleviniz x86_64 için yapılandırıldıysa --platform linux/amd64 ekleyin.
  4. Çalıştırın. docker run -d -p 9000:8080 my-lambda çalıştırın. Emülatör konteynerin içinde 8080 portunu dinler.
  5. Çağırın. curl -XPOST localhost:9000/2015-03-31/functions/function/invocations -d '{}' çalıştırın. Yanıt, işleyicinizin dönüş değeridir; docker logs süreyi içeren Lambda REPORT satırını gösterir.

Çalıştırmamızda işlev {"statusCode": 200, "body": "hello from lambda on aarch64"} yanıtını verdi; konteyner logu 19 ms süreyle Lambda REPORT satırını gösterdi. Emülatör AWS'nin kendisine aittir: /2015-03-31/functions/function/invocations uç noktasını sunan “Lambda Runtime ve Extensions API'ları için proxy”.

LocalStack ile AWS API'ları

LocalStack, AWS API'larını 4566 portunda tek konteynerde emüle eder. Oxcart'ta 4.9 imajını çalıştırıp S3'ü uçtan uca denedik:

docker run -d --name localstack -p 4566:4566 localstack/localstack:4.9
curl -s localhost:4566/_localstack/health          # s3, lambda, dynamodb… "available"
curl -X PUT localhost:4566/my-bucket               # create a bucket
curl -X PUT --data-binary hello localhost:4566/my-bucket/hello.txt
curl localhost:4566/my-bucket/hello.txt            # hello

Kullanmaya başlamadan lisanslamayı öğrenin. 23 Mart 2026'dan beri en yeni LocalStack sürümleri LocalStack hesabı ve kimlik doğrulama token'ı gerektirir; LOCALSTACK_AUTH_TOKEN olmadan en yeni imaj “License activation failed” ile kapanır. LocalStack'in ücretsiz Hobby planı ticari olmayan kullanım içindir; ECS Base planından, EKS Ultimate planından itibaren sunulur.

ECR'a gönderin ve dağıtın

aws ecr get-login-password --region us-east-1 \
  | docker login --username AWS --password-stdin ACCOUNT.dkr.ecr.us-east-1.amazonaws.com
docker buildx build --platform linux/amd64 --load -t ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/api:1.4.0 .
docker push ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/api:1.4.0

Oxcart kayıt deposu parolasını ~/.docker/config.json yerine macOS Anahtar Zinciri'nde tutar. Oxcart'tan çok platformlu imaj gönderimi desteklenmez: mimari başına etiket gönderin veya çok mimarili manifestleri CI üzerinden yayınlayın.

Mac'inizden EKS

aws eks update-kubeconfig --name my-cluster, macOS'tan kubectl ve k9s kullanabilmeniz için kümeyi kubeconfig'inize ekler. Servislerinizi Oxcart ile yerelde geliştirip test edin, ardından aynı imajları EKS'ye dağıtın. Yerel manifest ve controller testleri için kwok, simüle edilmiş düğümlerle gerçek Kubernetes API sunucusu sağlar. Mac'te Kubernetes rehberi bu akışların nasıl birleştiğini açıklar.

Yerel döngü neden değerlidir

Yerelde test ettiğiniz her değişiklik bir push, dağıtım ve log aramasını atlar. Oxcart döngüyü kısaltır: docker run --rm için 42 ms, 20 konteyneri oluşturup başlatmak için 0.69 s, durdurup kaldırmak için 77 ms; test ettiğimiz üç çalışma zamanı arasında en hızlısıydı. Konteynerlerin dış bağlantılarını Mac'iniz açar; AWS ağınıza bağlanan VPN bunlara da uygulanır.

Sorular

Mac'te ECS veya Fargate görevini yerelde nasıl test ederim?

Görevin konteynerlerini Docker Compose ile çalıştırın: aynı imaj, ortam, port eşlemeleri, sağlık denetimi ve bağımlılıklarla konteyner tanımı başına bir servis. docker compose up -d --wait, sağlık denetimli tüm servisler sağlıklı olduğunda döner. Oxcart yığını sağlık denetimi bağımlılıkları ve yayınlanan portlarla çalıştırır; servisleri dağıtımdan önce birlikte deneyebilirsiniz.

AWS Lambda konteyner imajlarını Apple silicon üzerinde yerelde çalıştırabilir miyim?

Evet. AWS Lambda temel imajları Runtime Interface Emulator içerir. Oxcart'ta public.ecr.aws/lambda/python:3.13 üzerinden Python 3.13 işlevi derledik, -p 9000:8080 ile çalıştırıp curl ile çağırdık: arm64 üzerinde yerel olarak HTTP 200 yanıtı verdi.

LocalStack Oxcart'ta çalışır mı?

Evet, konteyner olarak. LocalStack 4.9 imajıyla localhost:4566 üzerinde S3 kova oluşturma, put, get ve list işlemlerini doğruladık. Güncel sürümler LocalStack hesabı ve LOCALSTACK_AUTH_TOKEN olarak ayarlanan kimlik doğrulama token'ı gerektirir; yoksa en yeni imaj kapanır. LocalStack, ECS'yi Base, EKS'yi Ultimate planından itibaren belgeler.

Mac'ten Amazon ECR'a nasıl imaj gönderirim?

aws ecr get-login-password --region REGION | docker login --username AWS --password-stdin ACCOUNT.dkr.ecr.REGION.amazonaws.com ile oturum açın, etiketleyin ve docker push çalıştırın. Oxcart'ta docker login parolayı macOS Anahtar Zinciri'nde saklar.

Fargate için amd64 mü arm64 mü derlemeliyim?

Görev tanımının çalışma zamanı platformuyla eşleştirin. ARM64 kullanıyorsa Mac'te yerel arm64 imajları derleyin; X86_64 kullanıyorsa --platform linux/amd64 ile derleyin. Oxcart amd64 imajlarını Rosetta üzerinden yerelde çalıştırır; dağıtacağınız imajın aynısını test edebilirsiniz.

Mac'imde EKS için nasıl geliştiririm?

Oxcart ile uygulamanızı ve bağımlılıklarını yerelde derleyip test edin, imajları ECR'a gönderin. EKS kümeniz için Mac'te kubectl ve k9s, manifestleri yerel Kubernetes API'a karşı denetlemek için Oxcart'ta kwok kullanın. Mac'te Kubernetes rehberine bakın.

Kaynaklar ve yöntem

  • Örnekler Oxcart 0.1.2, Mac17,14, macOS 27.2 ile 2026-10-10 tarihinde test edildi (Compose, emülatörlü Lambda temel imajı, LocalStack 4.9 S3, Buildx).
  • LocalStack kimlik doğrulaması: https://blog.localstack.cloud/localstack-single-image-next-steps/; planlar: https://localstack.cloud/pricing/; ECS: https://docs.localstack.cloud/aws/services/ecs/; EKS: https://docs.localstack.cloud/aws/services/eks/.
  • Lambda Runtime Interface Emulator: https://github.com/aws/aws-lambda-runtime-interface-emulator. AWS SAM CLI ve Docker: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-docker.html. ECS Local Container Endpoints: https://github.com/awslabs/amazon-ecs-local-container-endpoints. Kontrol tarihi 2026-10-10.
  • Konteyner hızı: Oxcart 0.1.2, 2026-10-10, Apple M5 Max, 8 CPU ve 12 GiB, beş örneğin medyanları; diğer çalışma zamanları aynı günün daha erken saatlerinde, aynı Mac ve test düzeneğinde docker 29.4 istemcisiyle ölçüldü.

Oxcart'ı kendi projelerinizde deneyin

60 gün ücretsiz. Ardından kullanıcı ve ana sürüm başına $20: abonelik değil.

Apple silicon · macOS 26 veya üzeri

Sıradaki yazı

Sürüm notları

Oxcart 0.1.4

En yeni sürüm

Lisanslama ve iyileştirmeler.

  • E-postayla gönderilen güvenli bağlantı üzerinden lisans etkinleştirme.
  • Settings üzerinden lisans ve Mac yönetimi.
  • Çevrimdışı lisans doğrulama.
  • Performans iyileştirmeleri, arayüz düzenlemeleri ve hata düzeltmeleri.

macOS 26.0 veya üzeri gerekir

Oxcart 0.1.3

Boştayken belleği geri kazanma.

  • Çalışan konteyner olmadığında VM belleğini serbest bırakır.
  • Konteynerları, imajları, birimleri ve ağları korur.

macOS 26.0 veya üzeri gerekir

Oxcart 0.1.2

Komut satırı araçlarıyla entegrasyon.

  • Oxcart’la birlikte gelen Docker araçları ile mevcut kurulum arasında geçiş yapın.
  • Arayüz düzenlemeleri.

macOS 26.0 veya üzeri gerekir

Oxcart 0.1.1

Uygulamayla gelen Docker araçları ve ajan kontrolleri.

  • Docker CLI 29.9, Compose 5.6 ve Buildx 0.38 dahildir.
  • Docker bağlamı entegrasyonu ve kimlik bilgilerinin Anahtar Zinciri’nde güvenli saklanması.
  • Ajan başına izin ve engelleme seçenekleriyle MCP ajan bağlantıları.

macOS 26.0 veya üzeri gerekir

Oxcart 0.1.0

Apple silicon için Docker uyumlu konteynerlar.

  • Docker CLI, Compose ve Buildx uyumluluğu.
  • Uygulamayla gelen çalışma zamanı bileşenleriyle çevrimdışı kurulum.
  • Projeye ve Git dalına göre düzenlenmiş portlar.
  • Varsayılan olarak salt okunur erişimle MCP entegrasyonu.
  • Doğrulanan otomatik güncellemeler.

macOS 26.0 veya üzeri gerekir