사용자 도구

사이트 도구


aws:localstack

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
aws:localstack [2021/02/22 15:07]
kwon37xi
aws:localstack [2021/02/22 18:28]
kwon37xi
줄 2: 줄 2:
   * https://github.com/localstack/localstack   * https://github.com/localstack/localstack
   * https://hub.docker.com/r/localstack/localstack/   * https://hub.docker.com/r/localstack/localstack/
 +  * [[https://github.com/localstack/localstack/tree/master/doc/developer_guides|Localstack Developer Guide]]
   * [[:aws|AWS]]의 대부분의 기능을 로컬 환경에서 에뮬레이션 한다. Local 개발환경에서 AWS 연동 기능을 개발할 때 사용할 수 있다.   * [[:aws|AWS]]의 대부분의 기능을 로컬 환경에서 에뮬레이션 한다. Local 개발환경에서 AWS 연동 기능을 개발할 때 사용할 수 있다.
   * Python 기반이지만 [[:docker|Docker]]로 모든 서버를 띄울 수 있다.   * Python 기반이지만 [[:docker|Docker]]로 모든 서버를 띄울 수 있다.
줄 10: 줄 11:
   * ''EDGE_PORT'' 환경변수값으로 조정 가능하다.   * ''EDGE_PORT'' 환경변수값으로 조정 가능하다.
  
 +===== docker-compose =====
 +  * [[docker:docker_compose|docker-compose]]
  
 +<code yml>
 +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
 +</code>
 +
 +  * ''docker-compose.yml''과 동일 디렉토리에 ''init-aws.sh'' 파일을 둔다.
 +<code 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
 +</code>
 ===== Mac OS ===== ===== Mac OS =====
 <code sh> <code sh>
 TMPDIR=/private$TMPDIR docker-compose up TMPDIR=/private$TMPDIR docker-compose up
 </code> </code>
 +
 +===== Web UI =====
 +  * Web UI 는 기본 ''/localstack/localstack'' 에서는 deprecated 되었으며,
 +  * [[https://hub.docker.com/r/localstack/localstack-full|localstack/localstack-full]] Docker Image를 사용해야 뜬다.
 +
 +===== arn =====
 +  * localstack 의 ARN 은 ''arn:aws:sns:[region]:000000000000'' 형태이다.
 +
 +===== localstack 실행 후 초기화 =====
 +  * [[aws:cli|AWS CLI]] docker image 호출로 실행.
 +  * docker-compose 의 서비스 이름에 밑줄(''_'') 이 들어있을 경우 올바로 네트워크 접속이 안됐음.
  
 ===== 참조 ===== ===== 참조 =====
aws/localstack.txt · 마지막으로 수정됨: 2022/03/29 12:49 저자 kwon37xi