본문 바로가기

전체 글847

ECS Blue/Green CodeDeploy 연동 배포 자동화 스크립트 이전에 AWS ECS를 사용할 때 Deployment Type을 Blue/Green Deployment로 지정하여 배포하는 방법에 대해 포스팅했었다. (https://hides.tistory.com/1013) 해당 포스팅을 통해 서비스를 생성하면 CodeDeploy의 애플리케이션쪽에 자동으로 연관된 애플리케이션과 배포 그룹이 생성된다. ECS콘솔에서 서비스를 선택하고 직접 업데이트 버튼을 눌러서 배포를 진행할수도 있지만 명령어를 한번 실행시키는 형태로 배포를 자동화시키고 싶었다. 그래서 awscli쪽을 알아보던 중 CodeDeploy관련 create-deployment를 이용하면 쉽게 가능할 것이라고 생각했다. 자세한 문서는 https://docs.aws.amazon.com/cli/latest/refer.. 2019. 6. 21.
Python zip으로 병렬처리 시 리스트의 크기가 다른 경우 일반적으로 두개의 리스트를 병렬로 다루고 싶을 때 zip() 메소드를 이용한다. 나같은 경우 두개의 리스트를 하나하나 루프를 돌며 비교하는 검증 작업을 진행하고 있었다. 작업 도중 한가지 문제점을 발견했는데, 바로 사이즈가 다를 때였다. zip()을 사용하여 두개의 리스트를 순회하면 사이즈가 다른 경우 사이즈가 작은 리스트의 작업까지만 순회하고 루프를 종료한다. a = [1, 2, 3] b = [4, 5] for x, y in zip(a, b): print(f'x: {x} / y: {y}') 예를 들어 위와 같이 사이즈가 다른 두개의 리스트를 zip을 통해 순회하면 결과는 다음과 같다. x: 1 / y: 4x: 2 / y: 5 나는 마지막 값까지 순회하며 처리하고 싶었다. 그렇다면 무언가 특정 값으로 P.. 2019. 6. 14.
MongoEngine과 Pymongo 같은 Connection 유지하는 방법 보통 파이썬으로 MongoDB에 접근하여 작업할 때 MongoEngine을 자주 사용했었다. 형태가 Django의 모델과 상당히 유사하고 사용법또한 간단했다. 또한 가장 눈여겨봤던 점은 커뮤니티 활성도였다. 타 ODM보다 깃허브 스타가 많았으며 스택오버플로우 등에서 관련 자료를 찾기 쉬웠다. MongoEngine은 PyMongo를 좀 더 사용하기 쉽게 Wrapping해놓은 라이브러리이다. PyMongo를 사용해보면 알겠지만 문법이 간결하지않고, 조금 더 Raw한 느낌이다. 실제로도 가장 네이티브에 근접하게 만들어진 라이브러리이기에 속도 또한 빠르다. 그렇기에 MongoEngine이란 ODM을 사용하고 있었는데, 아무래도 PyMongo의 모든 기능을 제공하진 않는다. 일반적인 작업은 그냥 몽고엔진만을 통해.. 2019. 6. 13.
AWS AMI이미지에 Redis-cli 설치하는 방법 현재 나는 AWS ECS를 사용하고 있다. 해당 환경을 통해 서버를 구동하면 자동으로 AWS AMI(Amazon Machince Image)를 사용하여 인스턴스를 구동하게 된다. 또한 Redis를 사용하기 위해 Elasticache를 사용하고 있는데, 일반적으로 Elasticache는 외부에서 접근이 불가능하다. 따라서 같은 VPC내에 있는 EC2 인스턴스 내부에서 접근해야한다. 위 과정에서 나는 기존에 ECS를 통해 생성되어있던 인스턴스를 통해 Elasticache에 붙기로 했고, 해당 인스턴스내에서 redis-cli를 설치하는 방법에 대해 간략하게 정리한다. 1. AMI에서 설치하는 방법sudo yum install -y gcc sudo yum install -y wget wget http://dow.. 2019. 6. 13.
ECS Fargate docker-compose 배포 방법(Blue/Green Deployment) 기존에 ECS를 사용하여 docker-compose를 배포하는 방법(https://hides.kr/1016)에 대해 포스팅했었다. 일반적인 ECS는 EC인스턴스 위에 컨테이너가 돌아가는 형태이므로 EC2에 대한 디펜던시를 가져갈 수 밖에 없다. 하지만 큰 문제가 없어서 계속 사용을 하던 중 Fargate 비용 인하 소식을 듣게 되었다. (https://aws.amazon.com/ko/about-aws/whats-new/2019/01/announcing-aws-fargate-price-reduction-by-up-to-50-) 최대 50% 요금을 인하한다고 하는데, 그래도 EC2를 이용하는 방법보다는 비용이 비싼 편이다. EC2 Container Service와 Fargate Container Servic.. 2019. 6. 5.
Python 일급함수/클로저/Decorator에 관해서 파이썬에서의 일급함수, 데코레이터를 구현하는 방법은 알고 있었지만 그것이 무엇인지 명확하게 하나의 문장으로 설명할 수 있을까? 라는 질문을 나에게 던져본다면 잠시 망설일 것 같다. 평소에 이론적인 지식보다는 실무적으로 실제 구현 능력을 키우는 것에 좀 더 집중했기 때문인데 기본기를 다시 한번 다지자라는 마음으로 이렇게 포스팅으로나마 정리해본다. (최대한 간단한 예제를 통해 설명할 예정이다)첫 번째로 일급 함수에 대해 설명할 것이며 두 번째로 클로저에 대해서, 최종적으로 이 모든 특성을 결합하여 데코레이터를 만들어본다. 일급 함수(First citizen function)파이썬에서의 함수는 일급 함수이다. 일급 함수는 다음과 같은 조건에 만족해야한다. 1. 하나 또는 여러개의 함수를 인자로 받을 수 있다... 2019. 6. 4.