[ 복원력을 갖춘 아키텍처 설계 ]
AWS 글로벌 인프라의 이해
AWS 글로벌 인프라
- AWS 는 전 세계 21개의 지리적 리전 내의 66개의 가용 영역을 운용하고 있어, 장애 대처에 안정적이며, 확장 가능한 방식으로 설계됨
- 성능, 가용성, 보안, 확장성, 저렴한 비용을 장점으로 들 수 있음.
EC2의 지역 및 가용영역 선택
- 리전과 가용영역에 대한 개념을 이해해야 함.
- 각 리전은 개별 지역 내 존재하는 지리적 위치를 의미.
- 가용영역(AZ)은 리전 내 있는 구분된 가용성 영역을 의미, 전용선으로 연결되어 있어 마치 한 클러스터인것처럼 동작함.
- 이렇게 지역별로, 지역 내에서도 가용영역을 분리하여 강력한 내결함성과 안정성을 얻을 수 있음.
Amazon CloudFront 글로벌 엣지 네트워크
- 전 세계에 있는 최종 유저에게 짧은 지연시간으로 콘텐츠를 전송할 수 있도록 도와줌.
- 여러 공격으로부터 네트워크 및 어플리케이션 계층을 보호하며, 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 클라우드에서의 웹 애플리케이션 호스팅
RDS의 고가용성(다중 AZ)
- 서로 다른 가용 영역에 예비 복제본 프로비저닝 및 유지
- RDS 콘솔을 사용해 다중 AZ 배포를 간편하게 사용 가능
Amazon CloudWatch를 사용하여 Auto Scaling 인스턴스 및 그룹 모니터링
- 모든 EC2 지표 인스턴스를 통계로 사용하여 시스템이 예상대로 수행되는지 확인 가능
- 주로 평균 cpu 사용률에 대해 지표를 생성하여 감시하는게 가능
- 무료는 5분단위로 가능, 비용을 더 지불하면 1분단위로 감시 가능
Auto Scaling 그룹에 로드 밸런서 사용
- 수요 증가시 EC2 그룹에 크기 자동으로 늘리고, 줄이는 역할을 함
- 로드 벨런서는 웹 트래픽에 대한 접점 역할을 하여, 인스턴스가 늘어났을 경우 로드 밸런서에 등록하여 자동으로 트래픽이 들어가게 하고, 제거되면 자동으로 해제하여 트래픽이 오지 않도록 함
'AWS Solutions Architect - Associate > 이론' 카테고리의 다른 글
AWS Solutions Architect - Associate Study [2] (0) | 2022.09.05 |
---|