본문 바로가기

Coding/DevOps22

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.
ECS Fargate Cronjob형태로 작업 실행하는 방법 0. ECR 푸시Fargate로 실행시킬 도커 이미지를 빌드하고 ECR에 푸시해놓은 상태로 진행한다고 가정한다. ECR 푸시 과정은 이전 포스팅에 담겨있다. 1. 클러스터 생성먼저 ECS콘솔로 들어간 후 클러스터 생성을 누른다. 첫번째가 Fargate용 클러스터이므로 선택하고 다음 단계를 누른다. 나는 기존에 존재하는 VPC를 그대로 사용할 것이므로 VPC 생성은 체크하지 않았다. 원하는 클러스터 이름을 적고 생성을 누른다. 위와 같이 나온다면 성공적으로 클러스터를 생성한 것이다. 2. 작업 정의(Task Definition) 생성다음으로 작업 정의를 생성해줘야 한다. ECS콘솔 - 작업정의로 들어가서 새 작업 정의 버튼을 클릭한다. 왼쪽에 있는 FARGATE 전용 작업 정의를 선택하고 다음 단계로 넘어.. 2019. 5. 2.
AWS ECS Fargate에 docker-compose 배포하는 방법 기존에 ECS를 사용하여 docker-compose를 배포하는 방법(https://hides.tistory.com/1016)에 대해 포스팅했었다. 일반적인 ECS는 EC2 인스턴스 위에 컨테이너가 돌아가는 형태이므로 EC2에 대한 디펜던시를 가져갈 수 밖에 없다. 하지만 큰 문제가 없어서 계속 사용을 하던 중 Fargate의 비용 인하 소식을 듣게 되었다. (https://aws.amazon.com/ko/about-aws/whats-new/2019/01/announcing-aws-fargate-price-reduction-by-up-to-50-/) 최대 50% 요금을 인하한다고 하는데, 그래도 EC2를 이용하는 ECS보단 가격이 있는 편이다. EC2 Container Service와 Fargate Con.. 2019. 3. 25.
AWS ECS에 docker-compose 배포하는 방법(ALB+Auto Scailing) 목적아마존 AWS에 Docker-compose.yml파일을 통해 배포하는 방법에 대해 기술한다. 추가적으로 ALB(Application Load Balancer)를 통해 로드밸런싱을 진행하고 서비스/인스턴스에 Auto Scailing을 걸어서 자동으로 스케일업/다운할 수 있도록 한다. 작업 순서1. ECS 클러스터 생성2. ALB(Application Load Balancer) 생성3. 도커 이미지 ECR에 저장4. 작업 정의(Task Definition) 생성5. CloudWatch 경보 생성6. 서비스(Service) 생성7. 인스턴스 스케일링 적용 1. ECS 클러스터 생성먼저 ECS클러스터부터 생성해야한다. 클러스터를 생성할 때 지정한 인스턴스의 개수에 따라 EC2 인스턴스가 실행되며 해당 인스턴.. 2019. 3. 20.
AWS Codedeploy로 ECS Blue/Green 배포하는 방법 운영중인 서비스에 업데이트 사항이 생기고 배포를 진행하다보면 지속적인 배포를 어떻게 해야할까 라는 의문점이 들기 마련이다. 가장 중요한점은 사용자가 서버의 중단을 느끼지 못하는 것이기에 관련된 사항을 찾아보던 중 Blue/Green Deploy라는 것을 발견했다. 예를 들어 총 4대의 서비스가 존재한다면 2대의 서비스를 로드밸런서에서 끊고 서비스를 업데이트한 이후 다시 로드밸런서에 붙임과 동시에 기존 서비스 2대를 로드밸런서에서 끊는다. 마찬가지로 2대의 서비스도 업데이트를 진행하고 다시 로드밸런서에 붙인다. 이렇게 된다면 실제로는 서비스의 중단이 일어났다고 볼 수 있겠지만 사용자의 경험에서는 서비스의 중단을 느낄 수 없다. Blue/Green에 대한 자세한 사항은 인터넷에 많이 나와있으니 찾아보도록 하.. 2019. 3. 14.