본문 바로가기
인프라/AWS

[AWS/SSA-C03] Module 2 - 고성능 아키텍처 설계 Design Performant Architectures

by 물고기고기 2023. 3. 3.

Self-paced digital training on AWS - AWS Skill Builder 를 보며 정리한 내용입니다.

 

Self-paced digital training on AWS - AWS Skill Builder

Your learning center to build in-demand cloud skills. Skill Builder provides 500+ free digital courses, 25+ learning plans, and 19 Ramp-Up Guides to help you expand your knowledge. Courses cover more than 30 AWS solutions for various skill levels. Skill Bu

explore.skillbuilder.aws


EBS

  • 블록 스토리지
  • EC2 인스턴스에 디스크로 EBS 볼륨 탑재 가능
  • SSD vs HHD
    • SSD : 용량 큰거 저장할 때
    • HHD : 자주 저장할 때
  • 데이터는 자동으로 백업되지 않음
  • 인스턴스가 중지되어도 데이터가 손실되지 않음

S3

  • EC2 인스턴스가 동적 컨텐츠만 제공하도록 정적 컨텐츠는 S3에 저장
  • 리전 중 하나에 버킷을 생성 → 버킷 이름은 S3 URL의 하위 도메인이 됨
  • 버킷에 원하는 수의 객체를 업로드 가능
  • S3 객체는 버킷 이름에 따라 자동으로 URL이 할당됨(가상 호스팅 스타일 또는 경로 스타일)
  • 리전과 별개의 이름을 참조하더라도 버킷은 항상 리전에 연결됨 → 버킷이름은 전역적으로 고유함 → 특정이름이 한번 생성되고나면 모든 리전에서 고유해야함
  • 버킷 이름 뒤 파일경로 = 키
  • 요금 산정?
    • 용량
    • 리전 외부로 전송(같은 리전이라면 무료)
    • API 요청(단, S3로의 전송은 무료임)
  • S3 Standard vs S3 Standard - IA
    • Standard-IA : 용량별 비용 저렴, API요청 당 비용이 높음, 30일 스토리지 → 잘 액세스 하지 않는 데이터일 경우 추천인셈
    • S3 수명 주기 정책 : 데이터 액세스 빈도에 따라 Standard → Standard-IA → Glacier → 삭제 이런식으로 관리 가능

EBS와 S3는 무슨 차이

  • 둘다 가용 영역 내에 자동 복제됨
  • EBS는 직접 컴퓨터에 붙어 하드디스크처럼 작동한다고 보면 됨(볼륨당 인스턴스 한개니까)
  • EBS 볼륨은 암호화가 가능

RDS

  • 데이터의 내구성이 좋음
  • 읽기 전용 복제본 추가 가능 → MySQL, MariaDB, PostgreSQL , Aurora

Dynamo DB

  • 샤딩 가능(서버 확장이 쉬움)
  • 무제한의 스토리지 제공
  • 대규모 읽기/쓰기 속도
  • RCU vs WCU
    • RCU : 읽기 용량 단위
    • WCU : 쓰기 용량 단위

CloudFront 엣지 로케이션(CDN, 콘텐츠 전송 네트워크)

  • 정적 컨텐츠 캐싱에 사용됨
  • S3 등 오리지널 버킷의 캐싱용으로 사용
  • 요청과 응답이 퍼블릭 인터넷 대신 AWS 백본을 통해 이동
  • 기본 오리진은 S3 → EC2, ELB 외부 웹서버를 오리진으로 쓰는 것을 커스텀 오리진이라고 함
    • 커스텀 오리진은 동적으로 생성되는 페이지를 캐싱할때 쓰임 (웹서버가 필수로 있어야함)
  • AWS Shield와 통합되어있음 , 웹 어플리케이션 방화벽인 WAF와도 통합되어 있음 → 요청을 확인함

Auto Scaling

  • 수직적 조정(스케일 업/다운) vs 수평적 조정(스케일 인/아웃)
  • 자동으로 로드밸런서에 인스턴스를 등록
  • Cloud Watch를 이용하여 인스턴스를 모니터링함 → 예를 들어 CPU사용률이 특정 임계값을 넘으면 Cloud Watch가 경보를 냄 → Auto Scaling이 이 경보를 가로챔 → 이후 어떤 작업을 수행할지 지정(인스턴스 수와 유형 결정)
  • EC2에서 Auto Scaling을 사용하려면 Auto Scaling, ELB , CloudWatch를 연동해야한다
  • 인스턴스를 자동으로 시작하기 위해서 사용하는 것? 시작 구성 (* AMI ID도 필요하고 이것저것 필요한데 결정적으로 시작 구성이 시작하기 위한 모든 데이터를 말하는 것임)
    • Auto Scaling 시작 구성 → EC2 인스턴스 크기 및 AMI 이름 지정
    • Auto Scaling 그룹 → 시작 구성의 크기(인스턴스 최소&최대 크기) , ELB 참조, 인스턴스 도움말 확인 방법 지정(상태 확인 유형)
    • Auto Scaling 정책 → 스케일 인/아웃의 규모를 지정, 여러 정책을 그룹에 연결 가능 → Cloud Watch를 이용하여 스케일 인/아웃의 시기를 결정

Cloud Watch

  • CPU, 네트워크, 대기열 크기를 모니터링 할 수 있음 → 메모리 사용 추적 불가능!!
  • CloudWatch Logs에 로그 저장 가능
  • 로그를 지표로 변환도 가능 & 사용자 지정 지표도 볼 수 있음
  • 계산법 유의, 5분 기간 3회에 걸쳐 특정 임계값에 경보 설정 → 15분이 넘도록 임계값을 넘겨야 경보를 받는 것임.

Elastic Cache

  • DB용 캐싱
  • Memcached vs Redis
    • Memcached → 간편한 설정, 멀티스레딩
    • Redis → 데이터 구조 지원, 지속성(싱글 스레드), 메시징도 가능 더 복잡한 설정 가능
  • 가능한한 최신이어야하고 오래되면 안되는 데이터(중요한 데이터라고 생각하면 될듯) → 이런애는 무조건 데이터베이스에서 왔다갔다해야함

ELB(Elastic Load Balancer)

  • Application Load Balancer를 사용하면 교차 영역 로드 밸런싱이 항시 활성화됨 → 다만 Network & Gateway LB를 사용하면 비활성화됨 (가용영역 두개를 연결했을때 해당 가용영역에 정상 그룹이 1개 이상 있어야 연결 가능)

운영 우수성

  • 코드로 운영 수행
  • 인프라 운영 자동화
  • 문서(설명서)에 주석 추가
  • 시스템 모니터링
  • 시스템을 자주 변경 → 변경에 의미가 없다면 이걸 되돌릴 수 있도록
  • 운영 및 절차를 수시로 개선(지속적 개성) → 실패를 예상하고 대비
  • 이를 지원하는 서비스
    • AWS Config : EC2, EBS 리소스를 추적, 새 리소스가 구성 규칙을 준수하는지 확인
    • AWS CloudFormation : JSON, YML 템플릿을 인프라와 리소스로 변환
    • Cloud Trail : API호출을 로깅
    • VPC Flow Logs : 네트워크 트래픽을 로깅
    • Inspector : EC2의 보안 취약점을 검사
    • Trusted Advisor : 보안, 안정성, 성능, 비용 서비스 한도에 관한 모범 사례를 검사
    • Cloud Watch : 지표를 추적하고, 지표를 초과하면 경보를 시작
    • Cloud Watch Logs는 EC2 인스턴스 CloudTrail, Lambda의 로그 파일을 저장 → 로그 라인에서 패턴 추출, 로그 파일을 지표로 변환하기도 함

Tip

  • IAM 역할은 키와 암호보다 쉽고 안전
  • 시스템 전반에서 지표를 모니털이
  • 적절한 경우 지표에 대한 대응 자동화
  • 비정상적 상황에 대해 알림 제공

 

댓글