728x90
728x90
ECS 스케일링 오토 스케일링 그룹에서 처럼 임계값을 설정하고 해당 임계값을 넘어가는 순간 오토 스케일링이 되도록 설정할 수 있다. CloudWatch metric 을 사용하여 사용 중인 ECS 서비스 전체 CPU 의 평균 사용량을 체크하여 오토 스케일링 할 수도 있다. Fargate 와 EC2 인스턴스 모두 동일하게 작동한다. EC2 인스턴스의 ECS 클러스터를 스케일링하려면 ECS Capacity Provider 를 사용하여 스케일링을 진행한다. EC2 인스턴스 실행 유형에서만 선택할 수 있는 옵션이다. 위 과정을 다시 설명하자면, ECS 스케일링은 태스크를 실행할 충분한 용량이 없을 경우 오토 스케일링 그룹을 실행하고 ECS 클러스터에 EC2 인스턴스를 추가한다. 즉, 일반적인 ECS 스케일링과 E..
ECS Services & Tasks Amazon ECS 클러스터가 있다. ECS 컨테이너들은 EC2 인스턴스 위에서 동작한다. 여러 개의 가용 영역에서 여러 개의 태스크를 실행할 수 있다. 여러 개의 태스크를 여러 대의 EC2 인스턴스에 걸쳐 실행하는 서비스 A가 있다. 이 태스크를 사용자들에게 노출시키고 싶다면 애플리케이션 로드 밸런서를 생성해서 태스크에 통합시킬 수 있다. 혹은, 사용자들에게 애플리케이션 로드 밸런서의 DNS 나 URL 만 주는 방법도 있다. 로드 밸런서는 컨테이너에 오는 모든 요청을 포워딩한다. ECS 클러스터에서 여러 개의 서비스를 실행할 수 있다. 만약, 서비스 B라는 또 다른 서비스를 생성하고 태스크를 가동한다고 가정한다. 이 서비스 B는 두개의 태스크만 실행시키고 있고, 서..
ECS ECS = Elastic Container Service 를 뜻하며, AWS 에서 도커 컨테이너를 실행하게 해주는 서비스이다. 인프라를 유지하기 위해서 프로비저닝이 필요하고 EC2 인스턴스가 ECS 클러스터를 지원해준다. ECS 는 한 번 컨테이너를 생성하게 되면 로드 밸런서와 합쳐지고 서비스와 태스크를 노출시킨다. ECS 서비스는 새 도커 컨테이너를 어떤 EC2 인스턴스에서 띄울지 찾는다. 도커 컨테이너를 띄우기 위해서는 특정값 이상의 CPU 와 RAM 용량을 필요로 한다. Amazon ECS Launch Type for ECS ECS 에는 두 가지 실행 유형이 있고 첫 번째로 Amazon EC2 실행 유형이다. 리전과 VPC 두 개의 가용 영역에 Amazon ECS 클러스터가 존재한다. 클러스..
Amazon MQ 온프레미스에서 클라우드로 SQS 나 SNS 를 사용하는 애플리케이션을 마이그레이션 할 때 아키텍쳐를 재설계하지 않고 옮길 때 Amazon MQ 를 사용한다. Amazon MQ 는 클라우드에서 Apache Active MQ 를 관리한다. SQS 나 SNS 만큼 확장성이 좋지는 않다. 프로비저닝이 필요하고 전용 머신에서 실행된다. 장애 조치에 대해 고가용성을 설정할 수 있다. Amazon MQ 는 SQS 대기열 기능이 있고, SNS Topic 기능도 있다. 그래서 온프레미스에서 클라우드로 애플리케이션을 마이그레이션할 때 그 앱이 MQTT 나 MQP 같은 표준 프로토콜을 사용한다면 Amazon MQ 를 사용하여 마이그레이션할 수 있다. Amazon MQ - High Availability 예..
SNS + SQS: Fan Out 여러 SQS 대기열에 메시지를 보내고 싶을 때 모든 SQS 대기열에 개별적으로 메시지를 전송하면 문제가 발생한다. 애플리케이션에서 충돌이 발생하여 전송이 실패될 수도 있는 등 문제가 있기 때문이다. 즉, 여러 대기열에 메시지를 보내고 싶을 때는 Fan Out 패턴을 사용하면 좋다. Fan Out 패턴은 SNS 토픽으로 메시지를 전송하면 해당 토픽을 구독하고 있는 SQS 대기열로 메시지를 전송하게 하는 패턴이다. 예를 들어, 어떤 물건을 구매했을 때 두 개의 대기열로 메시지를 전송하고 싶은 상황이다. 각각의 대기열에 메시지를 전송하지 말고 SNS Topic 에 메시지를 전송하고 해당 Topic 을 메시지를 전달하고자 하는 두개의 대기열이 구독하게 하면 메시지 하나를 SNS..
Kinesis Kinesis 를 통해 스트리밍 데이터를 실시간으로 쉽게 수집, 처리, 분석할 수 있다. 주로 애플리케이션 로그, metrics, 웹사이트 스트림, IoT 데이터 등을 처리할 때 사용한다. Kinesis Data Streams: 데이터 스트림으로 스트리밍 데이터를 수집한다. Kinesis Data Firehose: 데이터 전송 스트림으로 스트리밍 데이터를 처리 및 전송한다. Kinesis Data Analytics: 데이터 분석 애플리케이션을 사용하여 스트리밍 데이터를 분석한다. Kinesis Video Streams: 동영상 스트림을 수집, 처리, 저장한다. Kinesis Data Streams 대량의 데이터를 실시간으로 수집, 처리하는 서비스로 내부적으로 샤드로 구성되어 있으며 이를 동..