[AWS Certified Solutions Architect 는 AWS의 공인 자격증인 Solutions Architect 자격증을 취득하기 위해서 공부한 내용을 정리할 것이다.
본 정리는 "AWS Certified Solutions Architect Study Guide Associate Exam"(저자: David Clinton, Ben Piper) 책의 내용을 기반으로 한 것이다.
이 책은 2부로 구성되어 있고 AWS Core Service(1부), 2부 AWS의 Well-Archited Framework(2부)로 구성되어 있다.
1. 클라우드 컴퓨팅과 AWS 소개
1.1 클라우드 컴퓨팅과 가상화
클라우드 컴퓨팅과 다른 애플리케이션 및 클라이언트-서버 모델의 차이점, AWS 플랫폼의 가상-네트워크 환경, AWS 서비스 안전성, AWS 기반 리소스 액세스와 관리, AWS 배포에 관한 문서와 지원 내용에 대해서 정리한다.
- 가상화: 클라우드 운영 기술의 기반으로 가상화 기술을 사용하면 단일 물리 서버의 하드웨어 자원 더 작은 단위로 나눌 수 있어 단일 물리 서버에 가상 머신(가상 서버) 여러 개를 호스팅할 수 있다.
- 가상화의 장점: 가상머신을 단 몇 초 만에 프로비저닝해서 프로젝트에 필요한 시간만 정확하게 실행하고 언제든지 종료해서 사용하던 자원을 다른 워크로드(다른 가상머신의 작업)에 즉시 활용 가능하다.
- 가상머신(가상 서버): 독자적으로 메모리, 스토리지, 네트워크를 지니고 있으면서 별도의 운영체제를 독자적으로 실행할 수 있는 가상 컴퓨팅 머신
1.2 클라우드 컴퓨팅 아키텍처
클라우드 제공 업체는 수십만 대의 서버 및 데이터 스토리지, 이를 연결할 수 있는 네트워크를 소유하고 거대한 데이터 센터에 설치하고 가상화 환경을 잘 구현하여 컴퓨팅 성능, 메모리, 스토리지, 네트워크 대역폭 등의 자원을 가장 효율적으로 조합한 가상서버를 제공한다.
클라우드 컴퓨팅 플랫폼은 컴퓨팅 자원 풀(pool)을 구축하여 온디멘드, 셀프서비스 방식으로 서비스를 제공한다.
- 온디맨드: 사용량을 측정하고 사용량에 따라 비용을 청구하는 방식
1.3 클라우드 컴퓨팅 최적화
클라우드는 확장성, 탄력성을 가지며 온프레미스(Onpremise)보다 저렴하기 때문에 기업의 중요 워크로드에 널리 사용된다. 클라우드 플랫폼은 확장성, 탄력성, 비용관리의 특징을 가진다.
- 확장성: 예기치 않은 수요가 발생하여도 자동으로 애플리케이션에 자원을 추가하여 효과적으로 대응하는 개념으로 이를 위해 실행하는 가상머신의 수를 동적으로 늘릴 수 있는 체계를 마련하는 것이다.
- AWS에서는 가상머신을 인스턴스라 하고 수요 변화에 능동적으로 대처할 수 있도록 Auto Scaling 서비스를 제공하고 있다.
- 탄력성: 확장성과 같이 수요 변화에 대응하는 것으로 수요가 떨어질 때 용량을 자동으로 줄이는 개념, 탄력성을 통해 필요한 자원을 할당하여 비용을 효과적으로 절감할 수 있다.
- 비용관리: 사용 자원을 엄격하게 관리해서 비용을 통제할 수 있으며 IT 지출 내용을 자본 지출(CAPEX) 에서 운영 비용(OPEX)롤 전환한다.
- CAPEX: 온프레미스 환경을 구축하기 위해 관련 H/W를 구입하기 위한 지출
- OPEX: 애플리케이션의 실행 기간에 해당하는 금액 만 지출
1.4 AWS 클라우드
AWS 서비스의 범주는 컴퓨팅(computing), 네트워킹(networking), 스토리지(storage), 데이터베이스(database), 애플리케이션 관리(application management), 보안과 자격증명(security and credentials), 애플리케이션 통합(application integration) 으로 구분하여 서비스를 제공하고 있다.
- 컴퓨팅: 데이터 센터에서 물리 서버가 하는 역할을 하는 클라우드 서버스, Auto Scaling, Load Balancing, Serverless Architrecture
서비스 | 기능 |
Elastic Compute Cloud(EC2) | - 로컬 데이터 센터에서 실행되는 서버의 가상버전 , EC2 인스턴스는 CPU, 메모리, 스토리지, 네트워크 인터페이스 프로파일로 프로비저닝 - EC2 인스턴스는 가상화 기반으로 훨씬 효율적이고 빠르게 배포 |
Lambda | - 서버리스 애플리케이션 아키텍처, 이를 이용하어 서버를 구축하고 연중무효르 운영하지 않아도 요청을 처리할 수 있는 퍼블릭 서비스를 제공 가능 - 최대 15분의 작업이 완려되면 Lambda 이벤트는 종료되고 모든 자원은 자동으로 해지 |
Elastic Load Balancing | - 여러 개의 서버가 운영될 때 클라이언트의 요청들이 특정 서버에 몰리지 않도록 여러 서버로 분산시키는 기능 |
Auto Scaling | - 인스턴스 사본을 이마지 템플릿으로 정의하고 기존 인스턴스가 클라이언트의 수요에 대응할 수 없을 때 자동으로 인스턴스를 시작해주는 기능 - 수요가 감소하면 사용하지 않는 인스턴스를 종료 뜨는 축소 가능 |
Elastic Beanstalk | - AWS 컴퓨팅과 네트워킹 인프라를 프로비저닝하는 작업을 추상화한 관리형 서비스 - 애플리케이션 코드를 입력하는 것 외에 아무것도 할 필요가 없도록 Beanstalk 가 필요한 모든 서비스를 자동으로 시작하고 관리 |
- 네트워킹: 애플리케이션 연결, 액세스 제어, 향상된 원격 연결
서비스 | 기능 |
Virtual Private Cloud (VPC) | - 높은 수준까지 구성할 수 있는 네트워크 환경으로 EC2나 RDS 인스턴스를 호스팅 - VPC 도구를 사용하여 인스턴스의 인바운드 및 아웃바운드 네트워크 액세스나 인스턴스 간 네트워크 액세스를 세밀하게 제어 |
Direct Connect | - 타사 공급자가 제공하는 네트워크를 통해 AWS에 빠르고 안전하게 연결할 떄 사용 - 로컬 데이터 센터 또는 사무실, AWS VPC 간에 향상된 직통 터널을 구축 |
Route 53 | - 도메인 등록, 레코드 관리, 라우팅 프로토콜, 상테 검사를 관리할 수 있는 AWS DNS 서비스 - AWS 자워노가 완벽하게 통합 |
CloudFront | - AWS이 제공하는 분산 글로벌 콘텐츠 전송 네트워크 - 콘텐츠의 캐싱 버전을 전 세계 엣지 영역에 저장하고 사용자가 요청할 때 최고 효율성과 짧은 지연 시간으로 콘텐츠를 제공 |
- 스토리지: 빠른 액세스와 장기적인 백업 요구에 모두 적합하게 설계된 여러 종류의 스토리지 플랫폼
서비스 | 기능 |
Simple Storage Service (S3) | - 저렴하고 안정적인 다목적 객체 스트로지, 데이터 스토리지와 백업 용도에 적합 - 스크립트, 템플릿, 로그 파일을 저장할 수 있어 AWS 프로덱션 프로세스에 사용 |
Glacier | - 저렴하게 장기 저장할 수 있는 데이터 데이터 아카이브를 제공 - 데이터를 추출할 때 몇 시간이 걸려도 무방할 때 적합 - Gracier의 수명 주기 관리는 S3와 밀접하게 통합 |
Elastic Block Store (EBS) | - EBS는 EC2 인스턴스 OS와 작업 데이터를 호스팅하는 가장의 데이터 드라이브 - 물리 서버의 스토리지 드라이브와 파티션아라는 개념을 사용 - EC2 인스턴스의 파일 시스템을 위한 영구 스토로지로 사용 가능 |
Storage Gateway | - AWS 클라우드 스토리지를 로컬 온프레미스 애플리케이션처럼 사용하는 하이브리드 스토리지 시스템 - 마이그레이션 및 데이터 백업에 훌륭한 도구이며 재해 복구 작업에 사용 가능 |
- 데이터베이스: 데이터 형식이 필요한 사용 사례에 사용할 수 있는 관리형 데이터 솔루션: 관계형 데이터베이스, NoSQL, 캐싱 등
서비스 | 기능 |
Relational Database Service (RDS) | - 안정적이고, 안전하며, 신뢰서 있는 데이터베이스 인스턴스를 구축할 수 있게 하는 관리형 서비스 - MySQL, Microsoft SQL Server, Oracle, Amazon이 자체 개발한 Aurora 등 다양한 SQL 데이터 베이스 엔진을 RDS에서 실행 |
DynamoDB | - 빠르고 유연하고 확장성이 뚸어난 관리형 서비스 - 비관계형 데이터베이스 워크로드에 적합 |
- 애플리케이션 관리: AWS 계정 서비스와 운영 자원 모니터링, 감사, 구성 , 애플리케이션 배포는 지속적인 모니터링 없이 완성되지 않는다. 끝없이 로그 파일을 생성하고 모니터링을 하여야 함
서비스 | 기능 |
CloudWatch | - 이벤트를 통해 프로세스 성능 및 활용률을 모니터링하고 사전 설정된 임계 값에 도닥하면 메시지 발송이나자동화된 작업을 트리거하도록 설정 |
CloudFormation | - AWS 자원 사용을 스크립트화 할 수 있도록 하여 애플리케이션 시작 프로세스를 더 쉽고 매력적으로 자동화, 표준화, 가속화 가능 |
CloudTrail | - 계정 내 모든 API 이벤트 기록을 수집하여 게정을 감사하고 문제를 해결하는데 유용 |
Config | - AWS 계정에서 변경 관리와 규정 준수를 지원하도록 설계 - 처음에 목표 구성 상태를 정의한 후 변경된 모든 상태와 목표 상태의 차이를 평가하고 변경된 구성 상태가 목표 범위를 벗어나면 알림이 발송 |
- 보안과 자격 증명
서비스 | 기능 |
Identity and Access Management (IAM) | - AWS 게정의 사용자, 프로그래밍 방식 액세스, 인증을 관리 - 사용자, 그룹, 역할, 정책을 사용해서 AWS 자원에 액세스하고 작업할 수 있는 사람과 대상을 정확하게 제어 |
Key Management Service (KMS) |
- AWS 자원의 데이터를 보호하는 암호화 키를 생성하고 키 사용을 관리하는 관리형 서비스 |
Directory Service | - AWS 환경에서 자격 즘명이나 관계를 관리 - AWS 자원을 Amazon Cognito나 Microsoft AD 도메인과 같은 자격 증명 공급자와 통합 |
- 애플리케이션 통합: 결합 해제, 통합, API를 사용한 애플리케이션 개발 프로케스를 설계하기 위한 도구
서비스 | 기능 |
Simple Notification Service (SNS) |
- 주제에 관한 알림을 자동으로 다른 서비스, 모바일 디바이스, 전자메일, SMS를 사용하는 수신자에게 보내도록 하는 알림 도구 |
Simple WorkFlow (SWF) |
- 수행해야하는 일련의 작업을 즈정 - 복잡한 프로세스의 속도를 높이고 각 구성 부분을 연결 |
Simple Queue Service (SQS) |
- 분산 시스템 내에서 이벤트 중심 메시징으로 결합을 해제해서 대형 프로세스의 개별 단계를 조정 - SQS 메시지에 포함된 데이터는 안정적으로 전달되기 때문에 애플리케이션의 내결함성을 향상 |
API Gateway | - AWS에 구현한 애플리케이션을 위해 안전하고 안정적으로 API를 생성, 관리 |
1.5 AWS 플랫폼 아키텍처
AWS는 전세계에 걸쳐 물리적 서버를 위한 데이터 센터를 유지, 관리하고 있어 사용자는 지리적으로 가까운 데이터 센터에 서비스를 호스팅해서 네트워크 전송 지연 시간을 줄일 수 있다.
데이터 센터는 전 세계에 위치한 AWS 리전(region)내에 존재한다. 리전마다 요금이 다르고 선택한 리전에 필요한 서비스가 없을 수 있기 때문에 AWS 자원을 시작할 때 리전 선택에 주의하여야 한다. 가용 영역(Avaliable Zone)은 AWS 계정 내의 물리적 AWS 데이터 센터를 가진다.
2023년 4월 기준 33개의 리전과 105개의 가용 영역, 600개 이상의 CloudFront POP을 제공한다. (https://aws.amazon.com/ko/about-aws/global-infrastructure/)
글로벌 인프라 - AWS
aws.amazon.com
리전 내에는 일종의 네트워크 주소 공간인 VPC가 있고 AWS 자원은 이 VPC에 배포된다. VPC는 그 안에 네트워크 서브 네트워크를 만들 때 가용 영역과 연결된다.
1.6. AWS 공동 책임 모델
AWS AWS 클라우드 인프라를 안정적으로 관리하는 일을 담당하고 AWS 사용자는 AWS 플랫폼과 자원의 보안에 대한 책임을 가진다.
- AWS: 클라우드 자체의 안전하고 중단없는 운영을 보장, 물리적인 서버, 스트로지 장치, 네트워크 인프라, AWS 글로벌 인프라, 관리형 서비스가 중단없이 운영하는 것을 보장한다.
- AWS 사용자: 운영체제, 네트워크, 액세스 구성, 사용자 데이터, 사용자 애플리케이션, 엑세스 관리, 데이터 암호화 등 사용자가 구성한 클라우드 내부 보안에 대한 책임을 가진다.
'클라우드 컴퓨팅' 카테고리의 다른 글
[AWS Certified Solutions Architect]AWS Compute Services - Virtual Machne EC2 (0) | 2024.04.24 |
---|---|
[AWS] AWS Identity and Access Management(IAM) (0) | 2024.02.20 |
[Docker] 우분투 컨테이너(ubuntu container)에 package 설치 (0) | 2022.11.02 |
[클라우드]도커 네트워킹 구성 (0) | 2022.10.26 |
[클라우드] 클라우드 서비스 분류 (0) | 2021.12.24 |