분류 전체보기 167

[AWS] AWS's containers - AWS App2Container (A2C)

AWS App2ContainerJava 및 .NET 웹 애플리케이션을 Docker 컨테이너로 마이그레이션하고 현대화하는데 사용되는 CLI 도구이다.마이그레이션을 하고 싶다고 가정해 보면 이를 Lift-and-shift라고 하는데, bare metal, 가상 머신 등 온프레미스에서 앱을 실행한 후, AWS로 마이그레이션하는 방식이다.현대화를 가속화하되, 코드를 변경하지 않고 이러한 방식으로 레거시 앱을 아무 코드변경 없이 클라우드로 마이그레이션하는 것이다.컴퓨팅, 네트워크 등을 위한 CloudFormation 템플릿을 생성한다.또한 생성된 Docker 컨테이너를 Amazon ECR에 등록하며, ECS, EKS 또는 App Runner에 배포하도록 선택할 수 있다.사전 구축된 CI/CD 파이프라인도 지원한다..

[AWS] AWS's containers - App Runner

AWS App Runner완전 관리형 서비스로 규모에 따라 웹 애플리케이션, API 배포를 돕는다.  - 이 서비스로 누구나 AWS에 배포를 할 수 있다.인프라나 컨테이너, 소스 코드 등을 알 필요가 전혀 없다.  - 소스 코드나 Docker 컨테이너 이미지를 가지고 원하는 구성을 설정한다.  - vCPU의 수나 컨테이너 메모리의 크기 오토 스케일링 여부 상태 확인을 설정하면 된다.  - 웹 애플리케이션이나 API에 들어갈 기본 설정을 설정하는 것이다.다음 작업은 자동으로 이루어진다.  - App Runner 서비스가 웹 앱을 빌드하고 배포한다.  - 컨테이너가 생성되고 배포된다.API나 웹 앱이 배포된 다음엔 URL을 통해 바로 액세스할 수 있다.이처럼 배후에서 어떤 작업이 이뤄지는지 전혀 몰라도 배포..

[AWS] AWS's containers - EKS

Amazon EKSElastic Kubernetes Service의 약자이다.AWS에 관리형 Kubernetes 클러스터를 실행할 수 있는 서비스이다.Kubernetes는 오픈 소스 시스템으로 Docker로 컨테이너화한 애플리케이션의 자동 배포, 확장, 관리를 지원한다.컨테이너를 실행한다는 목적은 ECS와 비슷하지만 사용하는 API가 다르다.ECS는 오픈 소스가 아닌 반면 Kubernetes는 오픈 소스이고, 여러 클라우드 제공자가 사용하므로 표준화를 기대할 수 있다.두 가지 실행 모드가 있다.  - EC2 시작모드 : EC2 인스턴스에서처럼 작업자 모드를 배포할 때 사용한다.  - Fargate 모드 : EKS 클러스터에 서버리스 컨테이너를 배포할 때 사용한다.사용 사례  - 회사가 온프레미스나 클라우..

[AWS] AWS's containers - ECR

Amazon ECRElastic Container Registry의 줄임말이다.AWS에 도커 이미지를 저장하고 관리하는 데 사용된다.Docker Hub 등의 온라인 저장소를 활용하기도 하고, 이미지를 Amazon ECR에도 저장할 수 있다.두 가지 옵션이 있다.  - 첫 번째 : 계정에 한해 이미지를 비공개로 저장하는데 여러 계정으로 설정할 수 있다.  - 두 번째 : 퍼블릭 저장소를 사용해 Amazon ECR Public Gallery에 게시하는 방법이 있다.ECR은 Amazon ECS와 완전히 통합되어 있고, 이미지는 백그라운드에서 Amazon S3에 저장된다.ECR 저장소에 여러 도커 이미지가 있는데 ECS 클러스터의 EC2 인스턴스에 이미지를 끌어오기 위해서는 EC2 인스턴스에 IAM 역할을 지정..

[AWS] AWS's containers - ECS 솔루션 아키텍트

Amazon ECS를 사용할 때, 접할 수 있는 몇가지 솔루션 아키텍처에 대해 알아보자. ECS tasks invoked by Event Bridge첫 번째는 EventBridge에 의해 호출된 ECS 태스크이다.예를 들어, Amazon ECS 클러스터가 있고, 그걸 AWS Fargate가 지원하고 있다. S3 버킷이 있고, 사용자들은 객체들을 우리 S3 버킷에 업로드할 것이다. 이 S3 버킷은 예를 들어 Amazon EventBridge와 통합되어서 모든 이벤트를 전송할 수있다. 그리고 Amazon EventBridge는 항상 ECS 태스크를 실행하기 위한 규칙을 갖고 있을 수 있다. 이제 ECS 태스크가 생성될 것이고, 그것에 관련된 ECS 태스크 역할이 있을 것이다. 태스크 자체로부터 직접 객체를 ..

[AWS] AWS's containers - ECS Service Auto Scaling

ECS Service Auto Scaling태스크 수를 자동으로 늘리거나 줄일 수 있다.ECS 서비스의 CPU 사용률을 확장할 수 있고, 메모리 사용률 즉 ECS 서비스의 RAM이나 ALB 관련 지표인 타겟당 요청 수를 확장할 수 있다.세 개의 지표만 기억하면 다양한 오토 스케일링을 설정할 수 있다.특정 타겟을 추적하는 대상 추적(Target Tracking) 스케일링이나 단계(Step) 스케일링 혹은 ECS 서비스 확장을 설정하는 예약(Scheduled) 스케일링 등이 있다.EC2 시작유형이라면 태스크 레벨에서의 ECS 서비스 확장이 EC2 인스턴스 클러스터의 확장과 다르다는 사실을 기억해야 한다.따라서, EC2 오토 스케일링이 필요하지 않다면, 백엔드에 EC2 인스턴스가 없다면 Fargate를 사용하..

[AWS] AWS's containers - ECS

Amazon ECS(Elastic Container Service)AWS에서 컨테이너를 실행하면 ECS 클러스터에서 ECS 태스크를 실행하는 것이다.EC2 Launch 유형으로 EC2 클러스터를 사용할 때는 인프라를 직접 프로비저닝하고 유지해야 한다.ECS 및 ECS 클러스터가 여러 EC2 인스턴스로 구성되는데, ECS 인스턴스는 특별하게 각각 ECS Agent를 실행해야 한다.그럼 ECS 에이전트가 각각의 EC2 인스턴스를 Amazon ECS 서비스와 지정된 ECS 클러스터에 등록한다.이후에 ECS 태스크를 수행하기 시작하면 AWS가 컨테이너를 시작하거나 멈출 것이다. - 즉, 새 도커 컨테이너가 생기면 도식에서 볼 수 있듯 시간에 따라 EC2 인스턴스에 지정될 것이다.ECS 태스크를 시작하거나 멈추면..

[AWS] AWS's containers

What is Docker?도커는 앱 배포를 위한 소프트웨어 개발 플랫폼이고, 컨테이너 기술이다.컨테이너에 앱이 패키징되는데 컨테이너는 표준화되어 있어서 아무 운영체제에나 실행할 수 있다.앱이 컨테이너에 패키징되면 어느 운영체제에서든 같은 방식으로 실행된다.행위 특성도 예측 가능해서 작업을 덜어주고 유지 및 배포가 쉽고 언어, 운영체제, 기술에 상관 없이 실행이 가능하다.사용 사례  - 마이크로서비스 아키텍처가 있다.  - 온프레미스에서 클라우드로 앱을 리프트-앤-시프트하기도 하고 컨텐이너를 실행하는 어떤 경우에도 사용할 수 있다. Docker on an OS도커는 운영체제에서 어떻게 작동할까?우선 서버가 있고, EC2 인스턴스를 예를 들었는데 어떤 유형의 서버든 똑같다.도커 에이전트를 실행하면 도커 컨..

[AWS] AWS Integration & Messaging - Amazon MQ

Amazon MQSQS와 SNS는 AWS의 독접 기술이기 때문에 클라우드 네이티브 서비스이다.온프레미스에서 기존 애플리케이션을 실행하는 경우, 개방형 프로토콜인 MQTT, AMQP, STOMP, WSS, Openwire 등을 사용하면 된다.애플리케이션을 클라우드에 마이그레이션하는 경우에는 SQS, SNS 프로토콜 혹은 API를 사용하기 위해 애플리케이션을 다시 구축하고 싶지 않고 MQTT, AMOP 등과 같은 기존에 쓰던 프로토콜을 사용하고 싶을 수 있는데 이때 'Amazon MQ'를 사용하면 된다.상당한 간단한 서비스로 RabbitMQ와 ActiveMQ 두 가지 기술을 위한 관리형 메시지 브로커 서비스이다.RabbitMQ와 ActiveMQ는 온프레미스 기술로 앞서 설명했던 개방형 프로토콜 액세스를 제공..

[AWS] SQS vs SNS vs Kineseis

SQS소비자가 SQS 대기열에서 메시지를 요청해서 데이터를 가져오는(pull) 모델이다.데이터를 처리한 후 소비자가 대기열에서 삭제해서 다른 소비자가 읽을 수 없도록 해야 한다.작업자와 소비자가 함께 소비하고 대기열에서 삭제하니깐 작업자나 소비자 수는 제한이 없다.관리된 서비스이므로 처리량을 프로비저닝할 필요가 없고 아주 빠르게 수백 수천 개의 메시지로 확장할 수 있다.순서를 보장하려면 FIFO 대기열 즉, 선입선출 대기열을 활성화해야 한다.각 메시지에 지연 기능이 있어 30초 등 일정 시간 뒤에 대기열에 나타나도록 할 수도 있다. SNS게시/구독 모델로 다수의 구독자에게 데이터를 푸시하면 메시지의 복사본을 받게 된다.SNS 주제별로 1,250만 명의 구독자까지 가능하며 데이터가 한 번 SNS에 전송되면..