8. 탄력성과 고가용성 및 모니터링
- 내결함성 : 애플리케이션 구성 요소 내장된 중복성
- 복구성 : 재해 발생 후 서비스 복구와 관련된 프로세스
- 확장성 : 애플리케이션의 설계 변경 없이 성장 수용
- 탄력적인 인프라는 용량 요구사항이 변화함에 따라 지능적으로 확장 및 축소 될 수 있습니다.
- 탄력성 : 시간 기반 : 리소스가 사용되지 않을 때 리소스 끄기
볼륨 기반 : 수요 강도에 맞게 규모 조정
일일 및 주간 추세를 기반으로 향후 트래픽 예측
8.1. 모니터링
- 탄력성 뿐만 아니라 운영 상태, 리소스 활용, 애플리케이션 성능, 보안감사 등에도 사용
- CloudWatch : 인프라 모니터링 시스템
: 리소스에 대한 지표를 수집, 추적
: 경보를 생성하고 알림을 전송
: 규칙에 따라 리소스의 용량 변화를 트리거 할 수 있다.
: 지표 성능에 대한 데이터
: 로그 그룹에 넣어 로그 파일을 한곳에 모아 모니터링 및 액세스 할 수 있다.
: 경보를 이용하여 작업을 자동으로 시작
: 이벤트 : 리소스 상태 변경 시 이벤트를 생성하여 자동 작업을 수행할 수 있습니다.
: 규칙 : 들어오는 이벤트에서 일치하는 것을 찾아 대상으로 라우팅하여 처리
: 대상 : 해당 이벤트를 처리
- Cloudtrail : 사용자 활동 및 API 사용 추적
: IAM의 활동 로그가 저장된다.
:
- VPC Flow Logs : VPC의 네트워크 인터페이스에서 송수신되는 IP 트래픽에 대한 정보를 캡쳐할 수 있게 해주는 기능
8.2. 탄력성 확보 및 아키텍처 확장
- 오토 스케일링 : 지정된 조건에 따라 인스턴스를 시작 또는 종료
: 새 인스턴스를 로드밸런스에 자동으로 등록
: 여러 가용 영역에 걸쳐 시작
: 예약, 동적, 또는 예측을 통해 오토 스케일링
: 조기에 빠르게 확장, 천천히 축소
8.3. 데이터 베이스 조정
- RDS : 노드를 수직적으로 확장 또는 축소
: 경우에 따라 다운 타임 없이 수직적으로 조정
: 다중 AZ : 마스터와 슬레이브 디비를 생성하며 스텐바이 디비로 사용
용량 조정 시 스탠바이 부터 조정 후 마스터를 조정하여 멈춤 없이 사용 가능
: DB Replication : 디비 복제본을 생성하여 마스터 디비에서는 쓰기작업, 복제본에서는 읽기작업을 수행하여
부하를 분산한다.
: 샤딩 : 관계형 데이터베이스 테이블을 분할하여 사용
- DynamoDB : aws 관리형 서비스
: 테이블 자동 분산 처리 가능
: 오토스케일링을 통해 용량을 증가시켜 성능확장
: ( 쓰는 만큼 다 허용 ) 온디맨드로 구성하여 갑작스런 요청에 성능을 확장 ( 프로 비저닝 사용 x )
- DynamoDB 조정 용량 : 특정 파티션에 요청이 많아 용량이 부족하면 사용하지 않는 다른 파티션의 용량을 끌어 쓴다.
8.4. 오토스케일링 실습
- 구성도

- 로드 밸런서 생성 및 오토스케일링 구성, 보안 그룹을 업데이트하여 3티어 아키텍처 적용
- 로드 밸런서는 퍼블릭 서브넷 분산, 앱 서버는 프라이빗 서브넷
- 미리 2개 가용영역을 가진 VPC, 2개의 퍼블릭, 프라이빗 서브넷, 1개의 NAT게이트웨이, RDB 인스턴스 제공
- 최초 VPC 확인


- 작업 2 : Application Load Balancer 생성
- 대상 그룹 생성





- 애플리케이션 로드밸런서 생성





- 오토스케일을 위한 템플릿 생성







- 오토 스케일링 그룹 생성







- 보안 그룹 업데이트

- 각 요청별로 보안 그룹을 생성하며 로드밸런서 보안 그룹 미리 구성
- 애플리케이션 보안 그룹

- 데이터베이스 보안 그룹

- 로드밸런드 dns 로 접속 테스트

- 고가용성 테스트 : ec2 인스턴스중 하나를 중지


- DB 고가용성 : 다중 az 사용


- NAT 게이트웨이를 고가용성으로 만들기 : 양쪽의 nat 생성




9. 자동화
- 지속적 성장을 위해서는 자동화가 필수적
- 자동화 하지 않으면 수동 아키텍처 구축프로세스를 해야해서 오래 걸린다.
9.1. 인프라 배포 자동화 ( configure orchestration Tool (구성 조정 도구) )
- CloudForamation / Terraform
9.2. 애플리케이션 배포 자동화 ( Configuration Management Tool ( 구성관리도구 ))
- Chep / Puppet
9.3. 인프라 자동화 ( IAC 코드형 인프라 )
- AWS CloudFormation : 설명된 리소스를 자동화된 방식으로 생성하고 구축합니다.
: 템플릿 : 생성할 리소스를 설명하는 JSON/YAML 형식 파일
-> 소스 코드 취급 : 리포지토리 저장 -> 기존 리소스 가져오기
- 스택 업데이트 : 원래스택 -> 변경집합 ( 변경내용 ) -> 변경 검사 -> 변경집합 실행
- AWS Quick Start : 템플릿 코드 공유 되어 있다.
9.4. 배포자동화
- Systems Manager : 자동화된 구성 및 대규모 시스템의 지속적 관리
: 명령 실행 , 패치 관리, 세션 관리자
: 유지관리기구, 상태 관리자, 인벤토리
- AWS OpsWorks : Chef를 사용하여 모든 형태와 규모의 애플리케이션을 구성하고 운영하도록 지원하는
구성관리 서비스.
- AWS Elastic Beanstalk : 사용자를 위해 애플리케이션 스택을 관리
9.5. CloudFormation 사용한 배포 자동화
- 네트워크 계층 배포








- 애플리케이션 계층 배포








- 스택 업데이트
- 웹 서버 보안 그룹에 규칙확인

- 스텍 업데이트




- 보안 그룹 확인

- cloudformation 디자이너 사용하여 템플릿 확인

- 스택 삭제 :: 리소스에 대한 삭제 정책 지정 가능

- 스택 삭제


10. 캐싱
- 동일한 요청으로 인프라 용량이 지속적으로 과부하되며, 이는 비효율적으로 비용 및 지연시간을 늘린다.
- amazon cloudfront : 웹사이트, api, 동영상 콘텐츠 또는 기타 웹 자산의 전송을 가속화하는 글로벌 CDN 서비스
( 캐싱 )
-
'클라우드 > AWS' 카테고리의 다른 글
Architecting on AWS (5일) 2 (0) | 2022.07.12 |
---|---|
Architecting on AWS (5일) (0) | 2022.07.08 |
Architecting on AWS (3일) (0) | 2022.07.06 |
Architecting on AWS (2일) (0) | 2022.07.05 |
Architecting on AWS (1일) (0) | 2022.07.04 |