13
스타트업과 개발자들을 위한 AWS 클라우드 태권 Docker with Elastic Beanstalk 황용대 Team Leader, Parking Square Inc.

Cloud Taekwon 2015 -Docker with Elastic Beanstalk

Embed Size (px)

Citation preview

Page 1: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

Docker with

Elastic Beanstalk황용대

Team Leader, Parking Square Inc.

Page 2: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

Page 3: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

ParkHere 서비스

주차장 정보 제공과 유료주차장 할인 예약 서비스

25만 다운로드

15만 회원

10만 MAU

Page 4: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

서비스 스택

• EC2 인스턴스

• RDS MariaDB

• ElasticCache Redis

• AWS SNS

• AWS S3

• Elastic Load Balancer

• Rails 4

Page 5: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

Elastic Beanstalk

어플리케이션의 인프라(EC2, ELB 등) 관리와 배포자동화 시스템

eb로 생성한 어플리케이션 환경에 소스나 jar 파일을업로드 하면 자동으로 배포

Page 6: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

도구

웹 콘솔

https://ap-northeast-

1.console.aws.amazon.com/elasticbeanst

alk/home

CLI

brew install aws-elasticbeanstalk

Docker

brew install docker docker-machine

Page 7: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

CLI

웹 콘솔이 지원하는 것보다 더 자세한 설정이 가능하고 git branch 를

통해 환경을 전환하면서 작업이 가능함

eb init

eb create

eb config

eb deploy

eb --help

Page 8: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 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"]

Page 9: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 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”

}

Page 10: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

이미지 배포

1. hub.docker.com 저장소나 비공개 저장소에 이미지를

push 후 설치

2. Dockerrun.aws.json 설정 파일에 image 가 명시되어

있지 않을 경우 deploy 한 Dockerfile을 이용하여

인스터스 내에서 빌드

Page 11: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

싱글 컨테이너

애플리케이션 컨테이너 하나만으로 구성되는 심플한

환경.

도커 컨테이너가 열어 놓은 포트를 감지하여 nginx

proxy가 자동으로 컨테이너에 연결 됨

Page 12: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

멀티 컨테이너ECS 를 기반으로 하여

하나의 인스턴스에

여러개의 도커

컨테이너를 자유롭게

배치하여 서비스가 가능.

ex) ec2 인스턴스 하나에

nginx, 어플리케이션, db

컨테이너를 설치하여

서비스

Page 13: Cloud Taekwon 2015 -Docker with Elastic Beanstalk

스타트업과 개발자들을 위한 AWS 클라우드 태권

THANK YOU