사용자 도구

사이트 도구


aws:localstack

LocalStack

Port

  • 0.11 버전부터 4566 포트로 모든 서비스에 접근 가능하다.
  • EDGE_PORT 환경변수값으로 조정 가능하다.

docker-compose

version: "3"
 
services:
  localstack:
    image: localstack/localstack:0.12.6 # 혹시나 자동 버전업으로 인한 오류를 막기위해 tag 명시
    container_name: localstack
    ports:
      - "4566:4566"
      - "4571:4571"
    environment:
      - SERVICES=sns,sqs,s3
      - DEFAULT_REGION=ap-northeast-2
      - HOSTNAME=localhost
      - DATA_DIR=/tmp/localstack/data
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"
  setup-localstack:
    image: amazon/aws-cli:2.1.27
    environment: # Key는 dummy 값임. 무의미한 Key를 지정한 것임.
      - AWS_ACCESS_KEY_ID=EXAMPLE123
      - AWS_SECRET_ACCESS_KEY=EXAMPLE123
      - AWS_DEFAULT_REGION=ap-northeast-2
    entrypoint: /bin/sh /tmp/init-aws.sh
    volumes:
      - ./init-aws.sh:/tmp/init-aws.sh
    depends_on:
      - localstack
  • docker-compose.yml과 동일 디렉토리에 init-aws.sh 파일을 둔다.
sleep 30
 
# /usr/local/bin/aws 호출
# localstack 은 docker-compose service 이름인데, 여기에 밑줄이 있으면 네트워크 접속이 안됐음.
 
echo "## creating topics"
 
aws sns create-topic --name my-sns --endpoint-url=http://localstack:4566
 
echo "## creating queues"
aws sqs create-queue --queue-name my-sqs --endpoint-url=http://localstack:4566
 
aws sns subscribe --topic-arn arn:aws:sns:ap-northeast-2:000000000000:my-sns \
  --protocol sqs --notification-endpoint http://localstack:4566/queue/my-sqs \
  --endpoint-url=http://localstack:4566

Mac OS

TMPDIR=/private$TMPDIR docker-compose up

Web UI

  • Web UI 는 기본 /localstack/localstack 에서는 deprecated 되었으며,
  • localstack/localstack-full Docker Image를 사용해야 뜬다.

arn

  • localstack 의 ARN 은 arn:aws:sns:[region]:000000000000 형태이다.

localstack 실행 후 초기화

  • AWS CLI docker image 호출로 실행.
  • docker-compose 의 서비스 이름에 밑줄(_) 이 들어있을 경우 올바로 네트워크 접속이 안됐음.

참조

aws/localstack.txt · 마지막으로 수정됨: 2021/02/22 18:28 저자 kwon37xi