Terraform 시작하기

인프라 관리를 시작하고 처음 든 생각은 이것이었습니다. 왜 배포 환경 (이하 스테이지)마다 인프라 형상이 다른가? 같은 형상으로 배포하는 것은 정말로 어려운 일인가? 원인은 크게 두 가지라고 생각합니다. 첫째는 인프라 구축을 담당하는 팀이 따로 있었는데, 능동적으로 서비스 개발에 참여하는 것이 아니라서 인프라를 잘 모르는 개발팀의 요건을 그대로 수용하였던 것입니다. 둘째는 이러한 상황에서 개별 이슈 처리를 위해…

Continue reading Terraform 시작하기

ECS 서비스 배포 파이프라인 구축하기

제가 OpsNow의 레거시 환경을 개선하기 위해서 가장 처음 도입하고자 마음먹은 것은 어쩌면 당연하게도 개별 서비스를 컨테이너로 만드는 것입니다. 그리고 이렇게 생성된 컨테이너 이미지를 ECS에서 Fargate에 배포함으로써 Serverless 서비스를 만들고자 하였습니다. 많은 시간과 노력을 들인 끝에, 코드에서부터 서비스 배포까지 이어지는 CI/CD 파이프라인을 구축할 수 있었습니다. 이번 글을 통해서 어떻게 OpsNow의 레거시 서비스가 Serverless로 나아갈 수 있었는지…

Continue reading ECS 서비스 배포 파이프라인 구축하기

ECS의 Service Discovery 소개

ECS에서 Fargate로 서비스를 생성하고 로드 밸런서에 연결하게 되면, 추후 서비스 배포를 위해서는 반드시 CodeDeploy를 이용해야 합니다. 그리고 블루/그린 배포는 선택이 아닌 필수가 됩니다. 그리고 의외로, 이러한 설정 과정은 결코 쉽지가 않습니다. ECS의 구성으로 EC2를 선택하면 Rolling Update 같은 방식을 제공하지만, Fargate는 그렇지가 않았기 때문입니다. 그렇다고 배치성 작업이라 할지라도 호출이 필요한 서비스를 로드 밸런서에 연결하지 않을…

Continue reading ECS의 Service Discovery 소개

AWS SAM으로 개발하기

클라우드 컴퓨팅 서비스가 점차 다양한 형태로 발전하면서 단순히 공유 인프라를 제공하던 IaaS (Infrastructure as a Service)를 뛰어넘어 인프라 관리를 신경 쓸 필요가 없는 PaaS (Platform as a Service) 형태의 서비스가 널리 퍼져나가고 있습니다. 개발자가 컴퓨팅 자원, 즉 서버에 대한 관리를 할 필요가 없기 때문에 흔히 Serverless라고 불립니다. 이처럼 애플리케이션을 개발/운영하는데 인프라의 경계가 사라지고 Serverless가 등장함으로써…

Continue reading AWS SAM으로 개발하기