본문 바로가기

전체 글

EC2, Fargate, Lambda. 뭐쓰지? 서비스를 준비중인 상황에서, 가능한 서비스 기반을 검토해보았다. (Fargate, ECS Anywhere까지 몽땅 테스트는 해봤다. 🤗) (기본적인 EC2, Lambda는 나중에 좀더 구체적으로 정리할 일이 있을 것 같다. ) ECS는 기본비용이 없다. 사용한 Resource에 대한 비용만 내면 된다. 사용가능한 Resource는 EC2 Instance, Fargate, External(외부 머신) External은 ECS Anywhere라고 AWS 외부에 생성되어있는 서버들에 Agent를 설치해서 ECS 서비스를 배포할때 해당 위치들로 배포할 수 있게 해준다. 아직 ELB와 같이 연계된 서비스들은 지원하지 않는다. (지금은 걍 도커 명령 대신 날려주는 수준이다. 🤨) Fargate는 얼핏 비교하면 La.. 더보기
Gitlab CI/CD 사용하기 현재 회사에서는 Gitlab Free tier로 사용하고 있다. 그러다보니 워낙에 Gitlab의 다른 기능에는 관심이 없었는데, (소스만 Private하게 잘 저장하는 곳 아니였나요.. 🤔) 실제 운영 환경까지 고려하면서 서비스 구조를 바꾸다보니 어느정도 잘 동작하는 CI/CD까지 고려하게되고, 그러다보니 GItlab에 있는 기능들을 살펴보게 되었다. 기존엔 회사 한 구석탱이에있는 일반 PC를 활용해서 Jenkins 빌드서버로 사용하면서, API를 이용하여 반자동의 CI/CD툴을 만들어서 사용해왔다. 사용자가 빌드까지는 직접 진행해두고, 배포할 Application과 인스턴스를 선택해서 배포하면 알아서(정해진 로직에 의해🤫) Gracefully하게 배포되는 방식이다. 그렇지만 이런 방식은 커밋/빌드 단계.. 더보기
AWS CDK - API Gateway, Lambda (1) 회사에서 AWS로 EC2만 주구장창 사용하다가, 비용적인 문제와 Scale up / out 에 대한 고민이 깊어지기 시작했다. Spot Instance를 최대한 활용해보기도 했지만 기본적으로 24시간 EC2를 켜두는 것은 잘못된 방법인것 같았다. 그래서, AWS에서는 쓰는만큼만 사용하면 되는 Serverless한 서비스들로 눈을 돌렸다. 너무나 다양한 서비스들이 있기에, 기존에 사용하던 것들을 하나씩 대체하면서 개발 환경을 구성해보기로 했다. 우선 AWS Console에서는 (비교적🤔) 쉽게 Lambda와 API Gateway 구성을 할 수 있다. 그렇지만 개발자들이 매번 그 구성을 따라하면서 직접 개발하고 배포하기에는 너무나 리스키한 부분이 많다. (AWS Console에 들어와서 뭔가 직접 조작한다는.. 더보기