서버리스 컴퓨팅
‘서버리스’라는 용어는 코드가 서버에서 실행되지만 이러한 서버를 프로비저닝하거나 관리할 필요가 없다는 뜻입니다. 서버리스 컴퓨팅을 사용하면 서버를 유지 관리하는 대신 새로운 제품과 기능을 혁신하는 데 더 집중할 수 있습니다.
서버리스 컴퓨팅의 또 다른 이점은 서버리스 애플리케이션을 자동으로 확장할 수 있는 유연성입니다. 서버리스 컴퓨팅은 처리량 및 메모리와 같은 소비 단위를 수정하여 애플리케이션의 용량을 조정할 수 있습니다.
서버리스 컴퓨팅용 AWS 서비스는 AWS Lambda입니다.
반면 Amazon EC2에서 실행하려는 애플리케이션이 있는 경우 다음과 같이 해야 합니다.
- 인스턴스(가상 서버)를 프로비저닝합니다.
- 사용자 코드를 업로드합니다.
- 애플리케이션이 실행되는 동안 계속해서 인스턴스를 관리합니다.
AWS Lambda
AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서비스입니다.
AWS Lambda를 사용하는 경우 사용한 컴퓨팅 시간에 대해서만 비용을 지불합니다. 코드를 실행하는 동안에만 요금이 부과됩니다. 사실상 모든 유형의 애플리케이션 또는 백엔드 서비스 코드를 실행할 수 있으며 이를 관리할 필요는 전혀 없습니다.
예를 들어 간단한 Lambda 함수로 업로드되는 이미지의 크기를 AWS 클라우드에 맞춰 자동으로 조정하는 함수가 있을 수 있습니다. 이 경우 새 이미지를 업로드할 때 함수가 트리거됩니다.
AWS Lambda 작동 방식
- 코드를 Lambda에 업로드합니다.
- AWS 서비스, 모바일 애플리케이션 또는 HTTP 엔드포인트와 같은 이벤트 소스에서 트리거되도록 코드를 설정합니다.
- Lambda는 트리거된 경우에만 코드를 실행합니다.
- 사용한 컴퓨팅 시간에 대한 요금만 지불합니다. 위의 이미지 크기 조정 예에서는 새 이미지를 업로드할 때 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다. 이미지를 업로드하면 Lambda가 트리거되어 이미지 크기 조정 기능을 위한 코드를 실행합니다.
AWS에서는 컨테이너식 애플리케이션을 빌드하고 실행할 수도 있습니다.
컨테이너
컨테이너는 애플리케이션의 코드와 종속성을 하나의 객체로 패키징하는 표준 방식을 제공합니다. 보안성, 신뢰성, 확장성 요구 사항이 매우 중요한 프로세스 및 워크플로에도 컨테이너를 사용합니다.
회사의 애플리케이션 개발자의 컴퓨터 환경이 IT 운영 직원이 사용하는 컴퓨터의 환경과 다르다고 가정해 보십시오. 개발자는 애플리케이션 환경이 배포와 상관없이 일관되게 유지되기를 원합니다. 따라서 컨테이너식 접근 방식을 사용합니다. 이를 통해 애플리케이션을 디버깅하고 컴퓨팅 환경의 차이를 진단하는 데 드는 시간을 줄일 수 있습니다.
컨테이너식 애플리케이션을 실행할 때는 확장성을 고려하는 것이 중요합니다. 여러 컨테이너가 있는 단일 호스트 대신 수백 개의 컨테이너가 있는 수십 개의 호스트를 관리해야 한다고 가정해 보십시오. 또는 수천 개의 컨테이너가 있는 수백 개의 호스트를 관리해야 합니다. 규모가 커지면 메모리 사용량, 보안, 로깅 등을 모니터링하는 데 시간이 얼마나 걸릴지 상상해 보십시오.
요약
컨테이너 오케스트레이션 서비스는 컨테이너식 애플리케이션을 배포, 관리, 확장하는 데 도움을 줄 수 있습니다.
Amazon Elastic Container Service(Amazon ECS)
Amazon Elastic Container Service(ECS)는 AWS에서 컨테이너식 애플리케이션을 실행하고 확장할 수 있는 확장성이 뛰어난 고성능 컨테이너 관리 시스템입니다.
Amazon ECS는 Docker 컨테이너를 지원합니다. Docker는 애플리케이션을 신속하게 구축, 테스트, 배포할 수 있는 소프트웨어 플랫폼입니다. AWS는 오픈 소스 Docker Community Edition 및 구독 기반 Docker Enterprise Edition의 사용을 지원합니다. Amazon ECS에서는 API 호출을 사용하여 Docker 지원 애플리케이션을 시작 및 중지할 수 있습니다.
Amazon Elastic Kubernetes Service(Amazon EKS)
Amazon Elastic Kubernetes Service(Amazon EKS)는 AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 완전관리형 서비스입니다.
Kubernetes는 컨테이너식 애플리케이션을 대규모로 배포하고 관리하는 데 사용할 수 있는 오픈 소스 소프트웨어입니다. 자원자로 구성된 대규모 커뮤니티에서 Kubernetes를 유지 관리하며, AWS는 Kubernetes 커뮤니티와 적극적으로 협력합니다. Kubernetes 애플리케이션의 새로운 기능이 릴리스되면 Amazon EKS로 관리되는 애플리케이션에 이러한 업데이트를 손쉽게 적용할 수 있습니다.
AWS Fargate
AWS Fargate는 컨테이너용 서버리스 컴퓨팅 엔진입니다. Amazon ECS와 Amazon EKS에서 작동합니다.
AWS Fargate를 사용하는 경우 서버를 프로비저닝하거나 관리할 필요가 없습니다. AWS Fargate는 자동으로 서버 인프라를 관리합니다. 애플리케이션 혁신과 개발에 더 집중할 수 있으며, 컨테이너를 실행하는 데 필요한 리소스에 대해서만 비용을 지불하면 됩니다.
[출처]
AWS Cloud Practitioner Essentials
'자격증 > AWS - CLF' 카테고리의 다른 글
AWS 글로벌 인프라 (0) | 2023.10.24 |
---|---|
Elastic Load Balancing을 사용하여 트래픽 리디렉션 (0) | 2023.10.18 |
Amazon EC2 크기 조정 (0) | 2023.10.18 |
Amazon EC2 요금 (0) | 2023.10.18 |
Amazon EC2 인스턴스 유형 (1) | 2023.10.18 |