7. 스타트업과 개발자들을 위한 AWS 클라우드 태권
CLI
웹 콘솔이 지원하는 것보다 더 자세한 설정이 가능하고 git branch 를
통해 환경을 전환하면서 작업이 가능함
eb init
eb create
eb config
eb deploy
eb --help
8. 스타트업과 개발자들을 위한 AWS 클라우드 태권
Dockerfile
도커 이미지의 빌드 방법을 표현한 설정 파일
FROM ruby:2.2.3
MAINTAINER stadia(stadia@gmail.com)
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"]
9. 스타트업과 개발자들을 위한 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”
}
10. 스타트업과 개발자들을 위한 AWS 클라우드 태권
이미지 배포
1. hub.docker.com 저장소나 비공개 저장소에 이미지를
push 후 설치
2. Dockerrun.aws.json 설정 파일에 image 가 명시되어
있지 않을 경우 deploy 한 Dockerfile을 이용하여
인스터스 내에서 빌드
11. 스타트업과 개발자들을 위한 AWS 클라우드 태권
싱글 컨테이너
애플리케이션 컨테이너 하나만으로 구성되는 심플한
환경.
도커 컨테이너가 열어 놓은 포트를 감지하여 nginx
proxy가 자동으로 컨테이너에 연결 됨
12. 스타트업과 개발자들을 위한 AWS 클라우드 태권
멀티 컨테이너
ECS 를 기반으로 하여
하나의 인스턴스에
여러개의 도커
컨테이너를 자유롭게
배치하여 서비스가 가능.
ex) ec2 인스턴스 하나에
nginx, 어플리케이션, db
컨테이너를 설치하여
서비스