1. AWS 컴퓨팅 서비스
계정에서 컴퓨팅 용량을 생성하는 데 사용되는 AWS 서비스를 파악합니다.
컴퓨팅 서비스와 이점:
가상화 | EC2 | - 하드웨어 독립성 - 더 빠른 프로비저닝 속도(분 또는 시간 단위) - 하드웨어 구매 대신 종량제 요금 모델 - 더 큰 스케일링 규모 - 탄력적 리소스 - 향상된 민첩성 - 유지관리 축소 |
컨테이너화 | ECS, EKS | - 플랫폼 독립성 - 일관된 런타임 환경 - 리소스 사용 증가 - 편하고 빠른 배포 - 격리 및 샌드박싱 - 더 빠르게 시작하여 몇 초 만에 배포 |
서버리스 | AWS Lambda | - 지속적인 크기 조정 가능 - 내장형 내결함성 - 종량제 요금 - 유지관리 불필요(EC2 인스턴스 프로비저닝X, 관리X) |
서버리스 컨테이너화 | AWS Fargate | - ECS 및 EKS와 연동되는 컨테이너용 서버리스 컴퓨팅 엔진 |
2. Amazon EC2에 신규 및 기존 서버를 배포
Amazon EC2의 AMI, 인스턴스 유형과 크기, 인증, 배치, 테넌시, 스크립팅, 메타데이터 등을 고려합니다
EC2 시작 시 고려사항:
이름 및 태그 | - 인스턴스를 식별할 방법 - 태그를 사용하여 리소스 필터링, 리소스 액세스 제어 관리, 비용 추적, 태스크 자동화, 조직 관리 가능 |
애플리케이션 및 운영체제(OS) 이미지 |
- 인스턴스를 시작하는 데 필요한 정보 제공 - 한 AMI에서 여러 인스턴스를 시작 가능 - AMI에 포함되는 속성: - 인스턴스 루트 볼륨의 템플릿(예: OS, 애플리케이션 서버 및 애플리케이션) - 시작 허용 권한(해당 AMI를 사용할 수 있는 AWS 계정을 제어) - 시작될 때 인스턴스에 첨부할 볼륨을 지정하는 블록디바이스 매핑 |
인스턴스 유형 및 크기 | - 기술적 요구사항에 맞게 선택 |
인증 및 키 페어 | - 인스턴스에 연결하기 위한 보안 자격 증명 - 퍼블릭 키는 Amazon EC2에 저장, 프라이빗 키는 사용자가 저장 - 암호 대신 프라이빗 키를 사용하여 인스턴스에 안전하게 액세스 가능 |
네트워크 설정 및 보안 | 사용할 Virtual Private Cloud(VPC), 서브넷 및 보안 그룹 |
스토리지 구성 | 사용 사례에 가장 적합한 블록 스토리지 유형 |
테넌시 | - EC2 인스턴스가 물리적 하드웨어에 분산되는 방식을 정의 - 테넌시 옵션: 1.공유 테넌시 - 기본값 - 여러 AWS 계정이 같은 물리적 하드웨어를 공유 2. 전용 인스턴스 - 호스트 하드웨어 수준에서 물리적으로 격리 - 인스턴스 단위 결제 3. 전용 호스트 - 사용자가 구성을 제어할 수 있는 격리된 서버 제공 - EC2 인스턴스 용량을 완전히 전용으로 사용하는 물리적 서버에서 실행 - 호스트 단위 결제 |
배치 그룹 |
- 인스턴스 간의 거리를 선택할 수 있음 - 배치 그룹 종류 1. 클러스터 배치 그룹 - 낮은 네트워크 지연시간, 높은 네트워크 처리량 제공 - 대부분의 네트워크 트래픽이 그룹의 인스턴스 간에 전송되는 경우에 권장 - 예: 고성능 컴퓨팅(HPC) 2. 분산형 배치 그룹 - 서로 분리한 상태로 유지해야 하는 소수의 중요 인스턴스가 포함된 애플리케이션에 권장됨 - 최대 가동 시간이 필요한 서비스에서 사용하면 내 결함성을 높일 수 있음 - 예: 의료기록 시스템 3. 파티션 배치 그룹 - 상관 관계가 있는 하드웨어 장애가 동시에 발생하는 상황 방지 - 대규모 분산 및 복제된 워크 로드 배포 가능 - 예: 대규모 분산 및 복제 워크로드(Kafka, Hadoop, Cassandra) |
사용자 데이터 | - 인스턴스 시작 후 루트 또는 관리자 권한으로 스크립트 실행 - 일반적인 자동 구성 테스크를 수행하는데 사용 - 사용자 데이터를 인스턴스에 전달할 수 있는 옵션을 사용하여 인스턴스 시작 완료를 자동화 - 사용 예: - 인스턴스 AMI 패치 및 업데이트 - 소프트웨어 라이선스 키 설치 - 추가 소프트웨어 설치 |
메타데이터 | - 실행중인 인스턴스를 구성 또는 관리 - 인스턴스 메타데이터는 호스트이름, 이벤트, 보안 그룹 등의 범주로 구분 |
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
3. EC2 인스턴스에 연결할 볼륨의 유형
Amazon EBS:
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/AmazonEBS.html
Amazon EBS 볼륨은 Amazon EC2 인스턴스를 위한 안정적이고 분리 가능한 블록 수준 스토리지입니다.
하나 이상의 EBS 볼륨을 하나의 인스턴스에 연결합니다.
데이터가 저장된 위치와 인스턴스에서 사용되는 위치 간에 매우 짧은 지연시간을 제공합니다.
이러한 이유로 Amazon EBS 볼륨은 Amazon EC2 인스턴스를 사용해 데이터베이스를 실행하는 데 사용할 수 있습니다.
데이터의 특정 시점 복사본으로 Amazon EBS 스냅샷을 생성할 수 있습니다.
이는 AMI의 데이터를 저장하는 데 사용됩니다.
스냅샷은 Amazon S3에 보관되며 나중에 새 EC2 인스턴스를 생성하는데 재사용할 수 있습니다
Amazon EBS 볼륨 유형 및 특성:
1. Solid State Drive(SSD) 볼륨
2. 하드 디스크 드라이브(HDD) 볼륨
인스턴스 스토어:
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/InstanceStorage.html
인스턴스 스토어는 인스턴스에 블록 수준의 임시 스토리지를 제공합니다.
이 스토리지는 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치합니다.
인스턴스 스토어는 HDD, SSD, Non-Volatile Memory Express SSD(NVMe SSD) 등의 다양한 유형으로 제공됩니다.
인스턴스 스토어 사용 사례:
- 버퍼, 캐시, 스크래치 데이터 및 기타 임시 콘텐츠와 같이 자주 변경되는 정보를 임시로 저장하는 경우
- 웹서버의 로드 밸런싱된 풀과 같이 인스턴스 플릿 전체에 복제되는 데이터인 경우
인스턴스 스토어의 특성:
- 직접 연결된 블록 수준 스토리지
- 짧은 대기시간
- 높은 IOPS(Input/Output Operations Per Second) 및 처리량
- 인스턴스가 중지되거나 종료되면 회수됨
4. 컴퓨팅 리소스 비용 최적화
Savings Plans, Spot Instances, 온디맨드 인스턴스를 함께 고려하여 컴퓨팅 비용을 계획합니다.
온디맨드 | Savings Plans | Spot Instances | |
특징 | 시간 또는 초 단위로 컴퓨팅 용량에 대해 지불 | - 1년 또는 3년 기간으로 일정 사용량 약정(시간당 USD로 측정) - 온디맨드 요금 대비 청구액을 최대 72%까지 절감 |
- 여분의 EC2 호스트 용량을 사용 - 미사용 EC2 용량을 온디맨드 요금과 비교하여 최대 90% 절감 |
추천 사례 |
- 선결제 금액이나 장기 약정 없이 사용하기 원하는 경우 - 변화가 심하고 예측할 수 없는 애플리케이션 - EC2에서 처음으로 개발 또는 시험 중인 애플리케이션 |
- 약정 사용량 및 안정적이고 꾸준한 사용량 - Amazon EC2, AWS Lambda 및 AWS Fargate를 사용하는 경우 |
- 이미지 및 미디어 렌더링 - 웹 서비스 - 빅데이터 및 분석 - 컨테이너화된 워크로드 - 지속적 통합/지속적 전달(CI/CD) 및 테스트 - HPC |
5. 서버리스 컴퓨팅 옵션
AWS Lambda를 사용해 개발자의 수동 작업을 줄이고 비용을 관리합니다
서버리스 컴퓨팅:
https://aws.amazon.com/ko/serverless/
서버리스 컴퓨팅을 사용하면 서버를 생각하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있습니다.
사용자가 서버를 프로비저닝, 크기 조정, 관리할 필요가 없으며,
거의 모든 유형의 애플리케이션 또는 백엔드 서비스용으로 애플리케이션을 구축할 수 있습니다.
애플리케이션을 고가용성으로 실행하고 확장하는 데 필요한 모든 작업은 자동으로 처리됩니다.
즉, 서버리스 컴퓨팅을 사용하는 이유는 서버 또는 런타임 관리와 운영에 대해 걱정하기보다는 핵심 제품에 집중하여 시간과 에너지를 절약할 수 있기 때문입니다.
AWS Lambda:
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/applications-usecases.html
Lambda를 사용하면 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다.
Node.js, Java, C#, Python, Go, Ruby, PowerShell 등이 지원됩니다.
최대 15분 동안 실행되고, 최대 10GB 메모리를 지원합니다.
다음과 같은 컴퓨팅 리소스 관리 작업을 수행할 수 있습니다:
- 서버 및 OS 유지관리
- 용량 프로비저닝 및 자동 크기 조정
- 코드 모니터링 및 로킹
Architecting on AWS 7.4.6 (KO): Student Guide 참고
'AWS > AWS Architecting' 카테고리의 다른 글
[AWS Architecting]데이터베이스 (0) | 2023.07.01 |
---|---|
[AWS Architecting]스토리지 (0) | 2023.07.01 |
[AWS Architecting]네트워킹 (0) | 2023.06.29 |
[AWS Architecting]계정 보안 (0) | 2023.06.28 |
[AWS Architecting]아키텍팅 기본 사항 (0) | 2023.06.28 |