본문 바로가기

ECS

AWS에서 Serverless 배포 생각정리 고전적인 시스템환경의 APP의 배포방식은 기본적으로 다음의 방법을 따른다. APP 배포/업데이트 개발이 완료된것을 빌드(Jenkins,수동) , Repository(Nexus)에 등록 ALB(nginx와 같은 L7레이어)에서 배포할 인스턴스 타겟 제거 인스턴스에 앱 배포 ALB에 인스턴스 다시 추가 Scale out 늘리는 경우 새로운 인스턴스를 생성, 앱 배포후 ALB에 등록만 해주면 끝 줄이는 경우 ALB에서 인스턴스를 제거후, 앱의 동작이 완료된 시점에 앱 정지, 인스턴스 제거 일반적인 APP의 경우 APP 자체에서 외부 인터넷과 연결될 필요가 없기 때문에, Private Subnet안에 있어도 무방하며, 접근이 필요한 endpoint만 ELB에 연결되어 있어도 큰 문제가 되지 않는다. (cf. 외.. 더보기
ECS with ALB CDK로 ECS를 구현하다보면 AWS 서비스들과 상당부분 유기적으로 연계가 되어 있다는 것을 알 수 있다. 단순히 ECS를 활용해서 AutoScale을 해볼려고 코드 몇 줄만 추가했는데, SNS와 Lambda를 이용하여 Count를 조절하는 함수를 생성하기도 하고... 전반적으로 AWS에서 제공한 메뉴얼이나, API Doc을 읽어도 잘 나와있지 않는 경우들이 있다. 오늘은 이런 것중 하나를 소개하고자 한다. CDK를 살펴보면 ECS에서는 기본적인 패턴들을 제공하고 있다. (ecs_pattern) 거기에는 ApplicationLoadBalancer를 이용하여 EC2 Instance나 Fargate로 배포하는 것이 어느정도 구성되어 있다. 생각해보자. ECS를 쓰는 이유는 여러가지가 있겠지만, 나의 경우에는.. 더보기
EC2, Fargate, Lambda. 뭐쓰지? 서비스를 준비중인 상황에서, 가능한 서비스 기반을 검토해보았다. (Fargate, ECS Anywhere까지 몽땅 테스트는 해봤다. 🤗) (기본적인 EC2, Lambda는 나중에 좀더 구체적으로 정리할 일이 있을 것 같다. ) ECS는 기본비용이 없다. 사용한 Resource에 대한 비용만 내면 된다. 사용가능한 Resource는 EC2 Instance, Fargate, External(외부 머신) External은 ECS Anywhere라고 AWS 외부에 생성되어있는 서버들에 Agent를 설치해서 ECS 서비스를 배포할때 해당 위치들로 배포할 수 있게 해준다. 아직 ELB와 같이 연계된 서비스들은 지원하지 않는다. (지금은 걍 도커 명령 대신 날려주는 수준이다. 🤨) Fargate는 얼핏 비교하면 La.. 더보기