Upload
amazon-web-services-korea
View
605
Download
2
Embed Size (px)
Citation preview
스타트업과 개발자들을 위한 AWS 클라우드 태권
Docker with
Elastic Beanstalk황용대
Team Leader, Parking Square Inc.
스타트업과 개발자들을 위한 AWS 클라우드 태권
스타트업과 개발자들을 위한 AWS 클라우드 태권
ParkHere 서비스
주차장 정보 제공과 유료주차장 할인 예약 서비스
25만 다운로드
15만 회원
10만 MAU
스타트업과 개발자들을 위한 AWS 클라우드 태권
서비스 스택
• EC2 인스턴스
• RDS MariaDB
• ElasticCache Redis
• AWS SNS
• AWS S3
• Elastic Load Balancer
• Rails 4
스타트업과 개발자들을 위한 AWS 클라우드 태권
Elastic Beanstalk
어플리케이션의 인프라(EC2, ELB 등) 관리와 배포자동화 시스템
eb로 생성한 어플리케이션 환경에 소스나 jar 파일을업로드 하면 자동으로 배포
스타트업과 개발자들을 위한 AWS 클라우드 태권
도구
웹 콘솔
https://ap-northeast-
1.console.aws.amazon.com/elasticbeanst
alk/home
CLI
brew install aws-elasticbeanstalk
Docker
brew install docker docker-machine
스타트업과 개발자들을 위한 AWS 클라우드 태권
CLI
웹 콘솔이 지원하는 것보다 더 자세한 설정이 가능하고 git branch 를
통해 환경을 전환하면서 작업이 가능함
eb init
eb create
eb config
eb deploy
eb --help
스타트업과 개발자들을 위한 AWS 클라우드 태권
Dockerfile
도커 이미지의 빌드 방법을 표현한 설정 파일
FROM ruby:2.2.3
MAINTAINER stadia([email protected])
RUN apt-get -y autoremove && apt-get update && apt-get -y dist-upgrade && rm -rf /var/lib/apt/lists/*
ENV RAILS_VERSION 4.2.4
RUN gem install rails --version "$RAILS_VERSION”
RUN gem install thin tzinfo-data
RUN echo Asia/Seoul > /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata
WORKDIR /app
ADD Gemfile /app/Gemfile
RUN bundle install
ENV RAILS_ENV production
EXPOSE 3000CMD ["rails", "server", "-b", "0.0.0.0"]
스타트업과 개발자들을 위한 AWS 클라우드 태권
Dockerrun.aws.json
이미지의 위치, 컨테이너가 마운트 할 볼륨 위치 등 컨테이너를
실행시키기 위한 방법을 표현한 설정 파일
{
"AWSEBDockerrunVersion": "1",
"Authentication": {
"Bucket": "docker-parkhere”,
"Key": "config/dockercfg”},
"Image": {“Name”:“stadia/taekwon”, “Update”: “true”},
"Ports": [{"ContainerPort": "3000”}],
"Volumes": [
{"HostDirectory": "/home/ec2-user/api/app”,"ContainerDirectory": "/app/app”},
{"HostDirectory": "/home/ec2-user/log”,"ContainerDirectory": "/app/log”}
],
"Logging": "/var/log/nginx”
}
스타트업과 개발자들을 위한 AWS 클라우드 태권
이미지 배포
1. hub.docker.com 저장소나 비공개 저장소에 이미지를
push 후 설치
2. Dockerrun.aws.json 설정 파일에 image 가 명시되어
있지 않을 경우 deploy 한 Dockerfile을 이용하여
인스터스 내에서 빌드
스타트업과 개발자들을 위한 AWS 클라우드 태권
싱글 컨테이너
애플리케이션 컨테이너 하나만으로 구성되는 심플한
환경.
도커 컨테이너가 열어 놓은 포트를 감지하여 nginx
proxy가 자동으로 컨테이너에 연결 됨
스타트업과 개발자들을 위한 AWS 클라우드 태권
멀티 컨테이너ECS 를 기반으로 하여
하나의 인스턴스에
여러개의 도커
컨테이너를 자유롭게
배치하여 서비스가 가능.
ex) ec2 인스턴스 하나에
nginx, 어플리케이션, db
컨테이너를 설치하여
서비스
스타트업과 개발자들을 위한 AWS 클라우드 태권
THANK YOU