본문 바로가기

클라우드/AWS

Architecting on AWS (4일)

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 생성

  - 대상 그룹 생성

인스턴스 체크

 

대상 그룹 생성

 

생성 확인

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

이름 지정

 

VPC 지정

 

보안그룹 선택
대상 그룹 선택
생성 완료

 

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

이름 및 버전 지정
리눅스 추가
인스턴스 유형 추가
보안그룹 지정

 

IAM 역할 지정
사용자 데이터 추가

 

템플릿 생성

 

  - 오토 스케일링 그룹 생성

이름 및 템플릿 생성
네트워크 설정

 

생성해둔 로드밸런스 연결
health check 설정 및 모니터링

 

그룹사이즈 생성
태그 생성 , 인스턴스 시 태그 자동 입력

 

인스턴스 생성 확인

  - 보안 그룹 업데이트

보안 그룹 적용

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

  - 애플리케이션 보안 그룹

로드 밸런서에서 오는 80 포트 허용

  - 데이터베이스 보안 그룹

앱 보안 그룹에서 오는 3306 포트 신호 허용

 

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

 

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

하나 정지
바로 하나가 생성됨을 보임

 

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

설정
인스턴스 크기와 용량을 넓히고 다중 az 설정

 

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

게이트웨이 생성

  

생성한 nat 게이트웨이를 통해 인터넷 트래픽을 보내는 라우팅 추가

 

프라이빗 서브넷 2 를 생성한 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 사용한 배포 자동화

  - 네트워크 계층 배포

스택 생성 : 준비한 yaml 파일 생성

 

스택 이름 지정

 

키 세팅

 

성 완료 : 템플릿을 사용하여 리소스 스택 생성, 태그를 생성된 리소스로 자동 전파

 

생성 리소스 확인
리소스 생성완료까지 생긴 이벤트를 볼 수 있다.

 

리소스 id 및 링크 출력정보 제공

 

템플릿을 확인하면 아웃풋에 내용이 출력되도록 정의한 것을 확인할 수 있다.

 

 

  - 애플리케이션 계층 배포

템플릿 설정

 

스택 세부 설정 : 앞에 생성한 네트워크 스텍네임을 알려주어 템플릿을 통해 스택의 출력 값 검색 가능

 

태그 설정

 

생성 완료

 

아웃풋 주소 검색 시 사이트 출력 확인
다른 템플릿 스택의 값을 가져올 수 있다.
네트워크 스택에서 서브넷을 가져와 사용한다.

 

  - 스택 업데이트 

  - 웹 서버 보안 그룹에 규칙확인

http 하나 확인

 

  - 스텍 업데이트

해당 구성이 추가된 yaml 파일 생성
애플리케이션 스택 업데이트

 

수정한 템플릿 파일 업로드
검토 페이지를 통해 업데이트될 리소스 표시/ webserve보안그룹을 수정

 

  - 보안 그룹 확인

추가됨을 보인다.

 

  - 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