본문 바로가기

AWS Solutions Architect - Associate/이론

AWS Solutions Architect - Associate Study [1]

[ 복원력을 갖춘 아키텍처 설계 ]

 

AWS 글로벌 인프라의 이해

 AWS 글로벌 인프라

- AWS 는 전 세계 21개의 지리적 리전 내의 66개의 가용 영역을 운용하고 있어, 장애 대처에 안정적이며, 확장 가능한 방식으로 설계됨

- 성능, 가용성, 보안, 확장성, 저렴한 비용을 장점으로 들 수 있음.

 

EC2의 지역 및 가용영역 선택

- 리전과 가용영역에 대한 개념을 이해해야 함.

- 각 리전은 개별 지역 내 존재하는 지리적 위치를 의미.

- 가용영역(AZ)은 리전 내 있는 구분된 가용성 영역을 의미, 전용선으로 연결되어 있어 마치 한 클러스터인것처럼 동작함.

- 이렇게 지역별로, 지역 내에서도 가용영역을 분리하여 강력한 내결함성과 안정성을 얻을 수 있음.

 

Amazon CloudFront 글로벌 엣지 네트워크

- 전 세계에 있는 최종 유저에게 짧은 지연시간으로 콘텐츠를 전송할 수 있도록 도와줌.

CDN위치 지도

- 여러 공격으로부터 네트워크 및 어플리케이션 계층을 보호하며, AWS Edge 에서 관문 역할을 함.

- 가용성 향상을 위해 Cloudfront의 엣지 로케이션에 콘텐츠 캐싱하려 오리진 서버의 부하를 줄일 수 있음.

- 여러 오리진을 설정하여 기본 오리진 사용 불가시 자동으로 백업 오리진을 사용하도록 라우팅함.

- 성능 최적화 및 콘텐츠 제공을 위한 여러 네트워크 프로토콜 제공함

- 프로그래밍 가능하게 정식 API제공


클라우드 서비스를 설계하는 방법

AWS 고급 아키텍처 방법론

- 보안 : 전송 및 보관시 암호화, IAM으로 권한 관리, VPC로 인프라 보호, CloudWatch로 감시 제어 활동

- 안정성 : 복구 절차 테스츠 및 자동 복구 설정, 수평 확장이 가능하도록 구성한다.

- 성능 효율화 : AWS에서 최신 기술 쉽게 사용하도록 지원, 글로벌 어플리케이션 지원 및 서버리스 아키텍쳐를 이용한 새로운 아이디어 실험

- 비용 최적화 : 오토 스케일링을 통한 필요한 자원만 사용, 비용 효율적인 지원 사용

 

AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안

 - Monolic 아키텍쳐에서 발견 가능한 여러 단점들(코드 관리, 연쇄적인 오류 발생, 확장성 부재)를 해결할 수 있음

 

마이크로 아키텍쳐의 고려 사항

- 리소스 관리 : EC2 Container 사용해서 유연하고 AWS 응용이 쉬운 상태로 설계, Lamda를 사용하여 Serverless 이벤트 처리방식의

컴퓨팅 서비스 사용

- 모니터링 : AWS Cloudwatch

- 서비스 Discovery : EC2 와 Route53사용

- 배포 : Blue-green 배포, Lambda 배포 사용

 


느슨한 결합을 구현하기 위한 서비스들

ELB FAQ

- 로드 밸런서 선택 시 : 애플리케이션에 맞는 로드 밸런서 선택

- Application load Balancer, Network load Balancer, Classic load balancer 를 적절히 사용

- Application Load Balancer : Http, HTTPS, Websocket등 다양한 프로토콜 지원

- 하이브리드 로드 밸런싱 지원

 

Amazon SQS FQA

- 메세지 대기열 시스템을 손쉽게 구축 가능, 느슨한 FIFO 대기열 사용

- Amazon SNS 와 차이점 - SNS는 폴링할 필요 없이 푸쉬 매커니즘으로 메세지 전송, SQS 에서는 폴링 모델로 메세지 교환

- Amazon Kinesis Streams와 차이점 : kinesis 는 빅데이터 스트리밍 처리시 사용

- 메세지 전달 보장 기능 사용

 


안정적이고 복원력을 갖춘 스토리지 선택하기

EC2 스토리지 - Amazon EBS

- Amazon EBS : EC2에서 사용하는 일종의 하드 디스크. 다른 물리적 하드 드라이브처럼 사용 가능, 다른 인스턴스에 EBS를 분리한 후 다른 인스턴스에 연결하는 것도 가능하다.

 

Amazon EC2 인스턴스 스토어

- 인스턴스 스토어 : 휘발성 스토리지, 인스턴스가 활성화되어 있는 동안 유지되는 스토리지.

                              상대적으로 성능이 낮으니 데이터 분석용으로 주로 사용

 

Amazon EFS

- Amazon EC2 인스턴스에 사용할 수 있는 간단하고 확장 가능한 파일 스토리지

- 파일이 추가되고 제거됨에 따라 자동으로 증가하고 줄어든다.

- 저장 사용량만큼만 비용이 발생하기 때문에, 전체적인 Cost를 아낄 수 있다.

 

Amazon S3 

- Simple Storage Service의 약자로 파일 서버의 역할을 하는 서비스

- 일반적인 파일 서버는 트래픽이 증가함에 따라서 장비를 증설하는 작업을 해야 하는데 S3는 이와 같은 거슬 대행한다.

- 저장할수 있는 파일 개수의 제한이 없으며, 데이터 손실이 발생할 경우 자동으로 복구하며, 정보에 중요도에 따라 보호 수준을 설정해 비용을 절감할 수 있다.

 

 

주요 특징 모음

AWS 사용 모범 사례

EC2 모범사례

- 보안 및 네트워크 : 자격 증명 연동 및 IAM 역할을 사용해서 리소스 및 API 액세스를 관리한다.

- 스토리지 : 운영체제에 대해 별도의 EBS 볼륨을 사용하고, 임시 데이터를 저장할 수 있는 인스턴스 스토어를 사용한다.

- 리소스 관리, 백업 및 복구 : AWS EBS 스냅샷을 이용해 EBS 볼륨을 정기적으로 백업, 개인 AMI를 만들어 추후 인스턴스 시작을 위한 템플릿으로 구성 저장한다 .

 

 

RDS 모범 사례

- RAM을 충분히 할당하여 작업 집합이 메모리에 상주하도록 한다.

- Cloudwatch모니터링을 사용하여 DB 인스턴스에 대한 측정치를 확인한다.


가격 / 비용을 비롯한 클라이언트 사양 개발

Amazon EC2 요금

- 온 디맨드 : 실행하는 인스턴스에 따라 시간당 혹은 초당 비용 지불

   ㄴ 유연하고 저렴하게 인스턴스를 사용하거나, 단기간 혹은 첫 개발, 시험중인 경우 사용하면 좋다

- 스팟 인스턴스 : 입찰 가격을 정해두고 저렴할 때 이용가능

   ㄴ 시작과 종료시간이 자유롭거나, 컴퓨팅 가격이 매우 쌀때 수익이 나는 애플리케이션에 경우에 사용

- 예약 인스턴스 : 계약 기간에 따라 60%까지 저렴하게 이용 가능

   ㄴ 수요가 꾸준하거나, 예약 용량이 필요할 수 있는 애플리케이션에 사용

 


 

아키텍처적 트레이드오프(RDS vs EC2)

Amazon Relational Database Service(Amazon RDS)는 무엇인가?

- 아마존 클라우드에서 관계형데이터베이스를 사용할 수 있는 서비스

- DB 관리 작업을 대신해줌 - 각 서버 구성 요소 독립적 확장, 백업 및 복구 관리, 스냅샷 관리 및 보조 인스턴스로 가용성 향상

- 각 DB 인스턴스당 익숙한 MySQL, MariaDB, PostgreSQL, Oracle 및 Microsoft SQL Server DB 엔진 사용 가능

- VPC를 사용하여 가상 사설 클라우드에서 인스턴스 실행 가능

- 다중 AZ: 데이터 중복 및 장애 조치 지원, 다른 가용 영역에서 자동으로 프로비저닝하고 유지하는 기능


기존 개발 환경과의 통합 및 확장형 아키텍처 구축

AWS Enterprise Summit : 하이브리드 클라우드 인프라를 통한 데이터센터 확장과 마이그레이션 방안

- 기존 환경을 유지하며 클라우드 추가 통합 : 클라우드와 기존 환경을 통합해 하이브리드 구성 가능


탄력성 및 확장성

AWS 클라우드에서의 웹 애플리케이션 호스팅

기존 웹 애플리케이션 아키텍처

 

AWS에서 웹 호스팅 아키텍처의 사례

RDS의 고가용성(다중 AZ)

- 서로 다른 가용 영역에 예비 복제본 프로비저닝 및 유지

- RDS 콘솔을 사용해 다중 AZ 배포를 간편하게 사용 가능 

 

Amazon CloudWatch를 사용하여 Auto Scaling 인스턴스 및 그룹 모니터링

- 모든 EC2 지표 인스턴스를 통계로 사용하여 시스템이 예상대로 수행되는지 확인 가능

- 주로 평균 cpu 사용률에 대해 지표를 생성하여 감시하는게 가능

- 무료는 5분단위로 가능, 비용을 더 지불하면 1분단위로 감시 가능

 

Auto Scaling 그룹에 로드 밸런서 사용

- 수요 증가시 EC2 그룹에 크기 자동으로 늘리고, 줄이는 역할을 함

- 로드 벨런서는 웹 트래픽에 대한 접점 역할을 하여, 인스턴스가 늘어났을 경우 로드 밸런서에 등록하여 자동으로 트래픽이 들어가게 하고, 제거되면 자동으로 해제하여 트래픽이 오지 않도록 함