728x90
반응형
핵심 내용
- 기본적인 Amazon EC2의 이점 설명
- 서로 다른 Amazon EC2 인스턴스 유형 파악
- Amazon EC2의 다양한 결제 옵션 구분
- Amazon EC2 Auto Scaling의 이점 요약
- Elastic Load Balancing의 이점 요약
- Elastic Load Balancing 사용 사례 제시
- Amazon Simple Notification Service(Amazon SNS)와 Amazon Simple Queue Service(Amazon SQS)의 차이점 요약
- 그 외 AWS 컴퓨팅 옵션 요약
Amazon Elastic Compute Cloud(Amazon EC2)
안전하고 크기 조정이 가능한 컴퓨팅 용량을 Amazon EC2 인스턴스로 클라우드에서 제공
- 몇 분이면 Amazon EC2 인스턴스를 프로비저닝하고 시작 가능
- 워크로드 실행을 완료했다면 인스턴스 사용을 중지 가능
- 인스턴스가 실행 중일 때 사용한 컴퓨팅 시간에 대해서만 비용을 지불하고 인스턴스가 중지 또는 종료된 상태에서는 비용을 지불하지 않음
- 필요한 서버 용량에 대해서만 비용을 지불하므로 비용을 절감 가능
Amazon EC2 작동 방식
1. 시작
- 기본 구성 인스턴스가 포함되어 있는 템플릿을 선택하여 시작(운영 체제, 애플레케이션 서버, 애플린케이션 포함)
- 인스턴스의 특정하드웨어 구성인 인스턴스 유형 선택
- 인스턴스 시작을 준비할 때 인스턴스로 들어오고 나가는 네트워크 트래픽을 제어할 보안 설정 지정
2. 연결
- 프로그램과 애플리케이션에는 인스턴스에 직접 연결하고 데이터를 교환하는 여러가지 방법이 존재
3. 사용
- 인스턴스에 연결했다면 바로 사용 가능
Amazon EC2 인스턴스 유형
1. 범용 인스턴스
- 컴퓨팅, 메모리, 네트워킹 리소스를 균형있게 제공
- 애플리케이션 서버, 게임 서버, 엔터프라이즈 애플리케이션용 백엔드 서버, 중소 규모 데이터베이스
- 컴퓨팅, 메모리, 네트워킹에 필요한 리소스가 거의 동일한 애플리케이션이 있다면 범용 인스턴스에서 애플리케이션을 실행하는 것이 좋음
2. 컴퓨팅 최적화 인스턴스
- 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합(배치 처리 워크로드)
- 고성능 웹서버, 컴퓨팅 집약적 애플리케이션 서버, 게임 전용 서버
- 단일 그룹에서 많은 트랜잭션을 처리해야 하는 일괄 처리 워크로드에도 사용 가능
3. 메모리 최적화 인스턴스
- 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계
- 애플리케이션을 실행하기 전에 많은 데이터를 미리 로드해야 하는 워크로드가 있다면 메모리 최적화 인스턴스 사용 고려
- 많은 메모리가 필요한 워크로드를 실행하고 뛰어난 성능을 얻을 수 있음
4. 액셀러레이티드 컴퓨팅 인스턴스
- 하드웨어 액셀러레이터 또는코프로세서를 사용하여 일부 기능(부동소수점계산, 그래픽처리, 데이터패턴일치 등)을 CPU에서 실행되는 소프트웨어에서보다 더 효율적으로 수행
- 컴퓨팅에서 하드웨어 액셀러레이터는 데이터 처리를 가속화할 수 있는 구성요소
- 그래픽 애플리케이션, 게임 스트리밍, 애플리케이션 스트리밍과 같은 워크로드에 적합
5. 스토리지 최적화 인스턴스
- 로컬 스토리지의 대규모 데이터 세트에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계
- 분산 파일 시스템,데이터 웨어하우징 애플리케이션, 고빈도 온라인 트랜잭션 처리(OLTP)
- IOPS(초당 입출력 작업 수) : 스토리지 디바이스의 성능 측정 지표, 디바이스가 1초 내에 수행할 수 있는 입력 또는 출력 작업의 수를 나타냄
- 지연시간이 짧은 임의 IOPS를 애플리케이션에 제공하도록 설계
- 입력 → 데이터 베이스에 입력되는 레코드와 같이 시스템에 투입되는 데이터
- 출력 → 데이터 베이스의 레코드에 대해서 수행되는 분석과 같이 서버에서 생성된 데이터
- IOPS 요구 사항이 높은 애플리케이션이 있는 경우 이 인스턴스는 더 나은 성능 제공 가능
Amazon EC2 요금
1. 온디맨드
- 중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션에 매우 적합
- 선결제 비용이나 최소 약정 적용 x
- 인스턴스는 중지될 때까지 계속 실행
- 사용한 컴퓨팅 시간에 대해서만 비용 지불
- ex) 애플리케이션 개발 및 테스트, 예측할 수 없는 사용 패턴이 있는 애플리케이션 실행
- 1년이상 지속되는 워크로드에 권장하지 않음
2. Amazon EC2 Savings Plans
- 1년 또는 3년 기간동안 일정한 컴퓨팅 사용량을 약정하여 비용 절감
- 최대 72%까지 비용 절감 가능
- 약정을 초과한 사용량은 일반 온디맨드 요금 부과
3. 예약 인스턴스
- 계정에서 온디맨드 인스턴스를 사용할 때 적용되는 결제 할인 옵션
- 표준 예약 및 컨버터블 예약 인스턴스는 1년 또는 3년 약정
- 정기 예약 인스턴스는 1년 약정
- 약정 기간이 끝나면 중단 없이 Amazon EC2 인스턴스를 계속 사용 가능
- 인스턴스 종료, 인스턴스 속성 구입을 수행하면 온디맨드 요금 부과
4. 스팟 인스턴스
- 시작 및 종료 시간이 자유롭거나 중단을 견딜 수 있는 워크로드에 적합
- 미사용 Amazon EC2 컴퓨팅 용량을 사용하며 온디맨드 요금의 최대 90%까지 비용 절감
- 스팟 인스턴스를 시작한 후 용량을 더이상 사용할 수 없거나 스팟 인스턴스에 대한 수요가 늘면 인스턴스가 중단 될 수 있음
- 백그라운드 처리 작업에는 문제가 없을 수 있지만 애플리케이션 개발 및 테스트에서는 예기치 않은 중단을 방지하는 것이 좋기 때문에 이 인스턴스는 적합하지 않음
5. 전용 호스트
- 사용자 전용의 Amazon EC2 인스턴스 용량을 갖춘 물리적 서버
- 기존 소켓당, 코어당 또는 VM당 소프트웨어 라이선스를 사용하여 라이선스 규정 준수 유지 가능
- 온디맨드 전용 호스트와 전용 호스트 예약 구매 가능
- 가장 비용이 많이 듦
Amazon EC2 Auto Scaling
- 변화하는 애플리케이션의 수요에 따라 Amazon EC2 인스턴스를 자동으로 추가하거나 제거 가능 → 애플리케이션 가용성 효과적 유지
- 동적조정 : 수요변화에 대응
- 예측조정 : 예측된 수요에 따라 Amazon EC2 인스턴스를 자동으로 예약
- Auto Scaling 그룹 설정
→최소 용량 : 그룹 생성 직후 시작되는 Amazon EC2 인스턴스의 수(최소 1개의 인스턴스가 실행되고 있어야함)
→희망 용량 : 애플리케이션을 실행하려면 최소 하나의 Amazon EC2 인스턴스가 필요하더라도 희망용량을 Amazon EC2 인스턴스 2개로 설정 가능, 지정하지않으면 최소용량으로 설정됨
→최대 용량 : 수요 증가에 대응하여 확장하도록 Auto Scaling을 구성하되 Amazon EC2 인스턴스 수를 최대 4개로 제한 가능
Elastic Load Balancing
- 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스와 같은 여러 리소스에 자동으로 분산하는 서비스
- 로드 밸런서 : 들어오는 트래픽 양에 맞춰 Amazon EC2 인스턴스를 추가하거나 제거하므로 이러한 요청이 로드밸런서에 먼저 라우팅 됨, 그런 다음 요청을 처리할 여러 리소스로 분산
- Elastic Load Balancing과 Amazon EC2 Auto Scaling은 별도의 서비스이지만 서로 연동하여 Amazon EC2에서 실행되는 애플리케이션이 뛰어난 성능과 가용성을 제공하도록 도움
모놀리식 애플리케이션 및 마이크로서비스
1. 모놀리식 애플리케이션
- 데이터베이스, 서버, 사용자 인터페잇, 비즈니스 로직 등이 포함된 구성요소가 밀결합된 애플리케이션
- 한 구성요소에서 장애가 발생하면 다른 구성 요소에서 장애 발생
2. 마이크로 서비스
- 애플리케이션 구성요소가 소결합됨
- 단일 구성요소에 장애가 발생해도 다른 구성요소들이 서로 통신하기 때문에 계속 작동
Amazon Simple Notification Service(Amazon SNS)
- 게시/ 구독 서비스
- 게시자는 Amazon SNS 주제를 사용하여 구독자에게 메시지를 게시
- 구독자는 웹 서버, 이메일 주소, AWS Lambda 함수 또는 그 밖의 여러 옵션이 될 수 있음
Amazon Simple Queue Service(Amazon SQS)
- 메시지 대기열 서비스
- 메시지 손실이나 다른 서비스 사용 없이 구성요소 간에 메시지를 전송 저장 수신할 수 있음
- 애플리케이션이 메시지를 대기열로 전송 → 사용자 또는 서비스는 대기열에서 메시지을 검색하여 처리한 후 대기열에서 삭제
서버리스 컴퓨팅
- Amazon EC2에서 실행하려는 애플리케이션이 있는 경우 다음과 같은 과정 거침
- 1 인스턴스(가상 서버)를 프로비저닝
- 2 사용자 코드를 업로드
- 3 애플리케이션이 실행되는 동안 계속해서 인스턴스를 관리
- 서버리스 : 코드가 서버에서 실행되지만 이러한 서버를 프로비저닝하거나 관리할 필요가 없다는 뜻
- → 서버리스 애플리케이션을 자동으로 확장할 수 있는 유연성, 애플리케이션 용량 조정
- → 서버를 유지 관리하는 대신 새로운 제품과 기능 혁신하는데 더 집중
AWS Lambda
- 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서비스
- 사용한 컴퓨팅 시간에 대해서만 비용 지불
- 코드를 실행하는 동안에만 요금 부과
- 모든 유형의 애플리케이션 또는 백엔드 서비스 코드를 실행할 수 있으며 이를 관리할 필요는 전혀 없음
AWS Lambda 작동 방식
- 코드를 Lambda에 업로드
- AWS 서비스, 모바일 애플리케이션 또는 HTTP 엔드포인트와 같은 이벤트 소스에서 트리거되도록 코드 설정
- Lambda는 트리거된 경우에만 코드 실행
- 사용한 컴퓨팅 시간에 대한 요금만 지불
컨테이너
- 애플리케이션의 코드와 종소성을 하나의 객체로 패키징하는 표준 방식을 제공
- 보안성, 안정성, 확장성 요구 사항이 매우 중요한 프로세스 및 워크플로에도 컨테이너를 사용
Amazon Elastic Container Service(Amazon ECS)
- AWS에서 컨테이너식 애플리케이션을 실행하고 확장할 수 있는 확장성이 뛰어난 고성능 컨테이너 관리 시스템
- Docker 컨테이너를 지원합니다. Docker는 애플리케이션을 신속하게 구축, 테스트, 배포할 수 있는 소프트웨어 플랫폼
- 오픈 소스 Docker Community Edition 및 구독 기반 Docker Enterprise Edition의 사용을 지원
- API 호출을 사용하여 Docker 지원 애플리케이션을 시작 및 중지할 수 있음.
Amazon Elastic Kubernetes Service(Amazon EKS)
- AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 완전 관리형 서비스
- Kubernetes는 컨테이너식 애플리케이션을 대규모로 배포하고 관리하는 데 사용할 수 있는 오픈 소스 소프트웨어
- 자원자로 구성된 대규모 커뮤니티에서 Kubernetes를 유지 관리하며, AWS는 Kubernetes 커뮤니티와 적극적으로 협력
- Kubernetes 애플리케이션의 새로운 기능이 릴리스되면 Amazon EKS로 관리되는 애플리케이션에 이러한 업데이트를 손쉽게 적용
AWS Fargate
- 컨테이너용 서버리스 컴퓨팅 엔진으로, Amazon ECS와 Amazon EKS에서 작동
- 서버를 프로비저닝하거나 관리할 필요가 없고, 자동으로 서버 인프라 관리
- 애플리케이션 혁신과 개발에 더 집중할 수 있으며, 컨테이너를 실행하는 데 필요한 리소스에 대해서만 비용을 지불
출처
728x90
반응형