1 Compute
What is AWS EC2?
EC2 : Elastic Compute Cloud (IaaS)
- 서버를 제공하는 IaaS 서비스
- 서버랙, 네트워크 인프라, 서버 OS 등을 가상화하여 제공한다.

How can we make EC2?
<EC2를 만들기 위해 필요한 것들>
- Amazon Machine Image(AMI)
- Instance Type
- Network to be deployed
- Stoarge Capacity to Store Data
- Security Group

Amazon Machine Image (AMI)
- 이미지 = 템플릿파일
- 템플릿 안에는 OS, SW 설정 등이 있고, 아마존에서는 pre-configured 된 AMI들을 제공한다.
- 사용자는 EC2를 만들때 원하는 AMI의 이미지를 선택한다. (macOS, 아마존 리눅스 등)

Instance Type
- EC2의 컴퓨팅에 대한 유형
- 유형에 나오는 문자열별로 의미하는 바가 있음

Pricing Plan
- EC2는 IaaS로, 서버를 빌리는 서비스
- 서버를 빌리는 유형이 Pricing plan에 따라 다르다

- On demand Instance
- Reserved 예약 인스턴스
- Saving Plan Instance
- Spot 인스턴스
- Dedicated 인스턴스
Auto Scaling
- 서버 추가 및 제거를 상황에 맞게 자동으로 수행할 수 있음
- Launch Templete에 AMI와 서버가 추가될 조건을 명시해두면, 서버가 조건에 맞게 자동으로 추가된다.
- 기능은 무료이며, 사용자는 늘어난 인스턴스 비용만 지불하면 된다.
- RDS, ECS 등 EC2외의 서비스에도 auto scaling 기능을 사용할 수 있다.
- CPU 사용률에 따라 Auto Scaling → Target Tracking Policy

AWS Batch
- 배치 컴퓨팅 서비스로, 필요한 시점에 최적의 컴퓨팅 리소스를 동적으로 프로비저닝함으로써 자원을 효율적으로 사용할 수 있다.
- 크롬잡 → AWS 서비스로 제공할 수 있는 것이 AWS Batch
- 해당 서버의 리소스를 고려해야하는데, 이를 AWS에서 동적으로 프로비저닝해주는 것
- 배치 컴퓨팅 소프트웨어나 서버를 직접 관리할 필요 없이 배치를 운용할 수 있도록 서비스를 제공해준다 → 관리부담을 줄여주고, 비용효율적인 spot instance를 사용하여 예상절감 옵션도 제공
Elastic Beanstalk
- 용량, 로드밸런싱, 스케일링, 상태 모니터링을 자동화해주는 컴퓨팅 리소스
- PssS 형태로, 개발자들은 어플리케이션을 업로하기만 하면 되며, Elastic Beanstalk 에서 배포과정을 모두 관리한다.
- EC2와 비교했을 때, 서버 운영과 운영 오버헤드를 현저히 줄일 수 있다.
- 서비스는 인프라 담당 인력이 부족한 소규모 회사에서 유용하게 사용할 수 있다.
AWS Outpost
- 사용자가 온프레미스 환경에서 AWS 환경과 같은 서비스를 사용할 수 있도록 해주는 것
- 즉, AWS를 프라이빗 클라우드화 하여 제공하는 서비스이다.
- 데이터센터에 설치할 수 있는 서버기기 세트가 제공되며, 내부에는 EC2, ECS, RDS, S3와 같은 서비스가 동작하도록 만들어져있다. → 이를 통해 AWS와 인터넷으로 연결하면 AWS outpost를 AWS의 새로운 가용영역 AZ로 사용할 수 있다.
- 보안이 중요하여 데이터가 외부 서버로 이전되면 안되는 서비스에 사용할 수 있다.

VMware cloud on AWS
- AWS를 통한 VMware 기반 워크로드 마이그레이션 최적화를 위한 VMware Cloud on AWS
- vmware 전통적인 가상화 솔루션으로, 온프레미스 환경에서 가상화를 제공하는 솔루션임
- 이를 aws 서비스로 마이그레이션을 할 수 있는데, aws는 대규모 vmware 고객을 지원한 풍부한 경험을 가진 가장 오래된 클라우드 제공업체
- aws에서는 cloud로의 전환을 단순화할 수 있는 검증된 마이그레이션 및 현대화 옵션을 제공한다.
AWS Wavelength
- 5G 엣지 컴퓨팅 인프라이다. 5G 네트워크의 고대역폭과 초저지연성 aws 컴퓨팅 및 스토리지 서비스와 결합하여 혁신적인 어플리케이션을 지원
- 게임스트리밍, AR, VR 등 초저지연이 필요한 고성능 모바일 어플리케이션에 이상적이다
- IoT, 라이브 미디어 제작산업 자동화 등 저지연이 필요한 엔터프라이즈 용도에 적합하다
- 추론, 반응형 분석 등을 데이터 소스 근처에서 처리할 수 있도록 지원하는 서비스
M5, R5 EC2 인스턴스
M5 인스턴스:
- 용도: 범용(General Purpose) 인스턴스.
- 특징:
R5 인스턴스:
- 용도: 메모리 최적화 인스턴스.
- 특징:
2 Container
What is Container?
- 어떤 응용프로그램을 실행할지 미리 정의해둔 파일을 바탕으로 실행하는 것이 컨테이너 이미지
- 유저가 담당하는 부분으로, 컨테이너 이미지를 생성할 수 있는 컨테이너 런타임관리에는 ‘도커’라는 솔루션
- 컨테이너는 서버 가상화보다 훨씬 가볍고 빠르다. (컨테이너 안에 든것이 VM보다 가볍기 때문에)

- 주의할 점 : 컨테이너가 종료되면 안에 저장된 내용도 사라지므로, 컨테이너가 실행될 호스트서버를 마운트해서 작업내용을 저장해야한다.
What is Amazon ECS, EKS, ECR
- ECS(Elastic Container Service) : 도커 컨테이너의 실행, 중지를 간소화하는 완전 관리형 컨테이너 오케스트레이션 서비스
- EKS(Elastic Kubernetes Service) : AWS에서 쿠버네티스를 쉽게 실행할 수 있는 관리형 서비스
- ECR(Elastic Container Registry) : 개발자가 컨테이너 이미지를 저장, 관리, 배포를 쉽게 해주는 완전 관리형 도커 컨테이너 저장소
*여러 컨테이너를 유기적으로 결합해 하나의 컨테이너처럼 관리 →컨테이너 오케스트레이션으로 운영부하를 줄일 수 있다.

- ECS, EKS의 가장 큰 차이점 → 컨테이너 오케스트레이션 기능을 AWS가 담당하는지, 쿠버네티스가 담당하느냐의 차이
- ECR은 컨테이너 이미지 레지스트리로, 사용자가 정의된 컨테이너 이미지를 AWS에서 관리할 수 있고 ECS, EKS에 쉽게 배포할 수 있다.
- 각 컨테이너는 노드에 포함되며, 노드는 컨테이너를 실행하는 서버라고 보면 된다. 이 서버는 EC2, Fargate를 활용할 수 있다.
IAM - taskRoleArn
- Amazon ECS 작업(Task)이 실행중에 AWS 서비스(S3, DynamoDB 등)에 접근할 때 사용하는 IAM 역할
- 작업에서 실행되는 컨테이너가 AWS 리소스에 접근하려면, 이 IAM 역할에 해당 리소스에 대한 권한이 명시되어있어야함
기본 원리
- ECS 작업은 기본적으로 AWS 리소스에 대한 접근 권한이 없음
- Amazon ECS는 IAM 역할을 사용하여 작업이 AWS 리소스에 접근할 수 있도록 권한을 위임
- taskRoleArn은 작업에 특정 권한을 부여하기 위한 IAM 역할을 지정하는 속성
예시 시나리오
- Amazon ECS 작업(Task)이 Amazon S3에서 데이터를 읽거나 쓰는 작업 수행.
- Amazon ECS 작업(Task)이 Amazon DynamoDB에서 데이터를 읽는 작업 수행.
- Amazon ECS 작업(Task)이 AWS Secrets Manager에서 데이터베이스 자격 증명을 가져오는 작업 수행.
3 Serverless

- 서버리스란, 서버가 없다는 뜻이 아니라 AWS가 논리 서버와 서버 관련 인프라를 관리하므로 사용자가 서버를 관리할 필요가 없다는 뜻
- 사용자는 로직에만 집중하면 된다.
AWS Lambda

- AWS Lambda는 서버를 프로비저닝 또는 관리하지 않고도 실제 모든 유형의 어플리케이션과 백엔드서버에 대한 코드를 실행할 수 있는 이벤트 중심의 컴퓨팅 서비스
- 람다 사용자는 람다가 지원하는 언어 런타임 중 하나로 코드를 작성하기만 하면 된다.(파이썬, C#, java, powershell 등)
- 사용자는 람다의 원하는 함수를 작성하고, 필요시에 함수를 사용할 수 있다. 람다는 이벤트에 의해 자동으로 트리거되는 코드실행환경을 제공하며, 이 기능을 구현하기 위해 SNS, SQS 환경과 같이 사용한다.
- 서버리스 워크로드를 ‘배포’하는 경우, ‘함수실행 역할을 추가’하는 것보다 다른 계정에서도 쓸 수 있는 ‘리소스 기반 정책’이 유리함
- Lambda는 짧은 작업에 적합하며 초 단위로 과금됩니다.
AWS Fargate
- 서버리스 서비스로, 서버 인프라는 AWS에서 관리한다.
- Node를 EC2가 아닌 Fargate로 사용하면, 훨씬 더 ECS EKS를 운용 오버헤드를 줄이면서 사용할 수 있다.

AWS Appsync
- 서버리스 완전 관리형 GraphQL 서비스
- 앱싱크를 사용하면 클라이언트 어플리케이션과 서버 사이의 데이터 통신을 간편하게 할 수 있다.
- GraphQL은 클라이언트가 필요한 데이터만 요청하고 받을 수 있는 쿼리 언어
- AWS 앱싱크는 이러한 GraphQL API를 쉽게 생성하고 관리할 수 있도록 도와준다.
- 예를 들어, 도서관 모바일앱에서 사용자들이 책과 저자 정보를 조회하고 싶을 때 REST API를 사용할 떄 책 정보와 저자정보를 얻기 위해서는 두개의 서로 다른 엔드포인트를 호출해야할 수 있지만, GraphQL을 사용하면 클라이언트는 필요한 모든 데이터를 한번의 요청으로 받을 수 있다. 이를 서버리스로 관리해주는 서비스가 AWS 앱싱크이다.

'SAA-C03' 카테고리의 다른 글
[SAA-C03] 3. Database (0) | 2024.12.26 |
---|---|
[SAA-C03] 2. Storage (3) | 2024.12.20 |
[SAA-C03] 0. What is AWS? (0) | 2024.12.20 |
[SAA-C03]시험범위, Service Overview (0) | 2024.12.20 |
[SAA-C03] SAA-C03 합격 후기 (1) | 2024.12.20 |