본문 바로가기

전체 글845

ECS Multiple Instance구동 및 ALB적용 방법 목적ECS를 사용하여 서비스를 구성할 때 여러개의 인스턴스를 구동하고 해당 인스턴스를 ALB를 통해 로드밸런싱 해주는 방법에 대해 기술한다.전제 조건구현에서 사용할 이미지들은 모두 ECR에 푸시해놓은 상태라고 가정한다.본문에서는 docker-compose를 통해 이미지를 빌드하고 푸시하는 과정에 대해서는 생략한다.사전 지식ALB는 설정해놓은 로드밸런싱 그룹에 인스턴스가 포함되면 자동으로 해당 인스턴스도 라우팅 목록에 포함시킨다.따라서 우리는 ECS 서비스를 생성할 때 미리 생성해놓은 로드밸런서와 로드밸런싱 그룹을 설정해줘야 한다.추가적으로 배포할 때 어떠한 형태로 진행하는지 미리 숙지할 필요가 있다.2가지의 방법이 존재할 것이다. 방법 1기존에 A와 B라는 인스턴스가 돌고 있다고 가정한다.C, D인스턴스.. 2019. 1. 15.
Docker Hot reload 적용하는 방법 목적소스의 변경이 일어나면 바로 도커 컨테이너에 적용되는 Hot reload에 대해 기술한다. 일반적으로 도커를 사용하여 개발할 때 배포환경/개발환경 두가지로 나눠서 작업한다.배포환경에서는 큰 문제가 없지만 개발환경에서는 소스의 변경이 잦으므로 변경을 자동으로 탐지하여변경된 내용을 반영하여 재시작해주는 플로우가 필요하다.보통 로컬의 파일을 컨테이너에 적용하기위해 아래와 같은 코드를 사용한다. (Dockerfile) COPY . ./home WORKDIR home 현재 폴더를 컨테이너의 /home 디렉토리로 복사하고 해당 디렉토리로 이동하여 작업하는 형태이다.하지만 위처럼 정의를 해버리면 한번 빌드한 컨테이너의 내용을 수정하기 까다롭다는 단점이 있다.(직접 도커에 붙어서 수정해야하지만, 이미지를 다시 빌드.. 2019. 1. 8.
Flask/Uwsgi/Supervisor 환경변수 문제 해결방법 목적Flask를 배포하기위해 Uwsgi와 Supervisor를 통해 엮어줬을 때 발생하는 환경변수 문제 해결방법에 대해 기술한다.문제점Flask를 배포하기 위해선 Uwsgi를 사용해야한다.또한 오류 발생 시 재시작을 해주기 위해 Supervisor를 사용한다.일반적으로 도커를 사용하여 배포했을때 여러가지 변수들을 시스템 환경변수에 선언해놓고 해당 변수를 참조하여 사용하는데Uwsgi와 Supervisor를 통해 엮어주면 로컬에 설정해뒀던 환경변수를 읽지 못하는 문제가 발생한다.정확한 원인은 모르지만 로컬 쉘과 Supervisor를 사용하는 쉘이 다르기 때문에 로컬에 설정한 환경변수를 읽지 못하는 것으로 판단된다.처음에는 위와 같은 상황인 줄 알고 Uwsgi에 환경변수를 설정했었는데, 해당 문제는 아니었다... 2019. 1. 4.
AWS ECS에 docker-compose.yml 배포하는 방법 이전 포스팅에서는 단일 도커파일(Dockerfile)을 ECS에 배포하는 방법에 대해 다뤘었다.하지만 실제 프로덕션 단계에서는 docker-compose를 통해 여러개의 도커를 하나로 엮어서 사용하는 경우가 많다.ECS는 EC2서비스 위에 도커가 돌아가는 형태인데, docker-compose를 통해 배포해준다면하나의 EC2위에 여러개의 도커 컨테이너가 돌아간다고 생각하면 된다.먼저 aws와 ecs-cli를 설치해줘야 한다.나는 OSX를 사용하므로 모든 명령어를 맥북 기준으로 설명한다.아래의 명령어를 통해 aws cli를 설치해준다. pip3 install awscli 다음으로 아래의 명령어로 ecs-cli를 설치한다. sudo curl -o /usr/local/bin/ecs-cli https://s3.a.. 2018. 12. 31.
AWS ECS에 단일 도커 컨테이너 배포하는 방법 본 포스팅은 도커 컨테이너를 AWS ECS에 업로드하는 방법에 대한 포스팅이다.하지만 클러스터, 작업 정의등에 대한 자세한 설명은 하지 않을 것이므로 관련 내용은직접 찾아보길 바란다.예제는 간단한 플라스크 어플을 띄우는 것으로 한다.먼저 아래의 내용을 통해 Dockerfile을 만든다. FROM python:3.6.5MAINTAINER hide@hides.kr ADD . /home/hideWORKDIR /home/hideRUN pip install -r requirements.txtEXPOSE 80CMD ["python3", "manage.py"]간단하게 현재 폴더의 내용을 /home/hide로 복사하고 라이브러리를 설치 후80포트를 개방, 플라스크 서버를 실행하는 명령어를 정의해놓은 부분이다.이제 ma.. 2018. 12. 27.
씨티은행 씨티클리어 신용카드 혜택 총정리 오늘은 씨티은행의 인기 신용카드 중 하나인 씨티클리어카드 혜택에 대해 포스팅하겠습니다.연말이 다가오면서 연말정산의 시즌이 왔습니다.한해동안 사용한 금액을 정산하면서 손해와 이득을 따져보고내년은 어떻게 보낼 지 계획하는 월이 바로 지금 12월이 아닐까 싶습니다.만약 이번년도에 잘못된 소비패턴을 가지고 있었다면, 또는 나의 소비패턴에맞지않는 카드를 사용하고 있었다면 내년에는 나의 소비패턴에 좀 더 맞는 카드를 사용하는 것이장기적으로 봤을 때 이득이라고 생각할 수 있겠죠.시티클리어 카드는 신용카드 중 많은 인기를 누리고 있는 카드입니다.그만큼 많은 혜택을 가지고 있기 때문인데요.오늘 씨티클리어카드의 혜택을 하나하나 설명해드릴게요. 먼저 대표 혜택입니다. - 버스/지하철 요금 청구 할인- 점심식사 5% 청구 할.. 2018. 12. 24.