사용자 도구

사이트 도구


aws:localstack

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
aws:localstack [2021/02/22 14:17]
kwon37xi
aws:localstack [2021/02/22 18:28]
kwon37xi [docker-compose]
줄 1: 줄 1:
 ====== LocalStack ====== ====== LocalStack ======
   * https://github.com/localstack/localstack   * https://github.com/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]]로 모든 서버를 띄울 수 있다.
   * Unit Test 시에 JUnit 4/5 를 모두 지원하여 자동으로 컨테이너를 띄웠다 내려줄 수 있다.   * Unit Test 시에 JUnit 4/5 를 모두 지원하여 자동으로 컨테이너를 띄웠다 내려줄 수 있다.
 +
 +===== Port =====
 +  * ''0.11'' 버전부터 ''4566'' 포트로 모든 서비스에 접근 가능하다.
 +  * ''EDGE_PORT'' 환경변수값으로 조정 가능하다.
 +
 +===== 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 =====
 +<code sh>
 +TMPDIR=/private$TMPDIR docker-compose up
 +</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 의 서비스 이름에 밑줄(''_'') 이 들어있을 경우 올바로 네트워크 접속이 안됐음.
 +
 ===== 참조 ===== ===== 참조 =====
   * [[http://woowabros.github.io/tools/2019/07/18/localstack-integration.html|LocalStack을 활용한 Integration Test 환경 만들기]]   * [[http://woowabros.github.io/tools/2019/07/18/localstack-integration.html|LocalStack을 활용한 Integration Test 환경 만들기]]
-  * [[https://www.linkedin.com/pulse/using-localstack-test-sqs-sns-fabio-palumbo?articleId=6653638519531073536|Using LocalStack to test SQS &amp;&amp; SNS]]+  * [[https://www.linkedin.com/pulse/using-localstack-test-sqs-sns-fabio-palumbo?articleId=6653638519531073536|Using LocalStack to test SQS & SNS]] 
 +  * [[https://medium.com/@agneysh/subscribing-sns-to-sqs-on-docker-using-localstack-e4f661747049|Subscribing SNS to SQS on Docker using Localstack | by agneysh mathura | Medium]] 
 +  * [[https://medium.com/@dudwls96/localstack-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0-9b81ec51749c|LocalStack 활용한 AWS 테스트 환경 구성하기. 요즘 클라우드가 대세이고 다양한 클라우드 서비스에 위에 우리는 개발을… | by Paul | Medium]]
aws/localstack.txt · 마지막으로 수정됨: 2022/03/29 12:49 저자 kwon37xi