Application Load Balancer

  • Elastic Load Balancing 서비스의 일부로 도입된 두번째 유형의 로드 밸런서이다.

  • Classic Lad Balancer가 제공하는 대부분의 기능에 개선사항이 추가된 것이다.

향상된 기능

  • 지원되는 프로토콜

    • HTTP, HTTPS, HTTP/2, WebSockets
  • Cloud Watch 지표

    	- 추가적인 로드 밸런싱 지표 및 대상 그룹 지표 차원 
  • 액세스 로그

    	- WebSocket 연결의 연결 세부 정보를 볼 수 있는 기능 
  • 상태 확인

    	- 더욱 세분화된 수준에서 대상 및 애플리케이션 상태에 대한 통찰력 
  • 경로 및 호스트 기반 라우팅

    	- 경로 기반은 요청을 각기 다른 대상 그룹으로 전달하는 규칙을 제공한다. 
    • 호스트 기반은 호스트 이름에 따라 요청을 각기 다른 대상 그룹으로 전달하는 규칙을 정의하는데 사용할 수 있다.
    • 경로 기반 라우팅을 사용하여 요청의 URL을 기반으로 대상 그룹에 라우팅 할 규칙을 만들 수 있다.
    • 호스트 기반 라우팅을 사용하여 동일한 로드밸런서가 여러 도메인을 기반으로 하는 대상 그룹에 경로 요청을 활성화하는 기능을 가질 수 있다.
  • 네이티브 IPv6지원

  • AWS WAF

  • 동적 포트

    	- Amazon ECS는 Application Load Balancer와 통합되어 일정이 예약된 컨테이너에서 사용하는 동적 포트를 노출한다. 
  • 삭제 보호 및 요청 추적

    • 요청 추적은 클라이언트에서 대상으로 HTTP요청을 추적하는데 사용할 수 있다.

주요 용어

  • 리스너

    • 리스너는 구성한 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스이다.
    • 리스너에 대해 정의한 규칙에 따라 로드밸런서가 하나 이상의 대상 그룹에 있는 대상으로 요청을 라우팅하는 방법이 결정된다.
  • 대상

    • 대상은 설정된 리스너 규칙에 따른 트래픽의 목적지이다.
  • 대상 그룹

    • 각 대상 그룹은 지정된 프로토콜과 포트번호를 사용하여 하나 이상의 등록된 대상으로 요청을 라우팅한다.
    • 대상은 여러 대상 그룹에 등록 될 수 있다.
    • 상태 확인은 대상 그룹별로 구성될 수 있다.
  • 리스너는 본질적으로 동일하지만 목적지 또는 대상을 대상그룹으로 그룹화 할 수 있다.

  • 인스턴스 대신 대상을 등록하므로 대상 그룹은 해당 대상을 로드 밸런서에 등록하는 방법이다.

Auto Scaling

  • Auto Scaling은 해당 해플리케이션 로드를 처리하는데 사용할 수 있는 정확한 EC2 인스턴스 수치를 확실하게 가늠하도록 도와준다.

  • Auto Scaling을 사용하면 애플리케이션의 로드를 처리할 수 있는 적절한 수의 Amazion EC2 인스턴스를 유지할 수 있다.

  • Auto Scaling를 사용하는 경우, 한 지점에서 워크로드 요구사항을 충족하는데 필요한 EC2 인스턴스의 수를 예측해야 할 필요가 없다.

  • Auto Scaling 기능은 사용자가 정의한 조건이나 스케줄을 기준으로 워크로드에서 실행되는 EC2 인스턴스의 수를 자동으로 조정할 수 있다.

  • 더 많은 인스턴스를 추가하면 Scaling out, 인스턴스를 종료하면 Scaling in 이라고 한다.

Auto Scaling 구성 요소

  1. 시작 구성 생성

    • AMI
    • 인스턴스 유형
    • 보안 그룹
    • 역할
  2. Auto Scaling 그룹 생성

    • VPC 및 서브넷
    • 로드 밸런서
    • 최소 / 최대 인스턴스
    • 원하는 용량
  3. Auto Scaling 정책 정의

    • 예약
    • 온디맨드
    • 확장 정책
    • 축소 정책

Amazon Route 53

  • Amazon Route 53은 DNS, 도메인 네임 시스템이다.

  • 엔드포인트가 애플리케이션인 경우 컴퓨팅 시스템간에 대화할 수 있도록 IP 주소로 번역해야 한다. = DNS

DNS 확인 전략

  • 단순 라우팅

  • 지리적 위치

  • 장애 조치

  • 가중치 기반 라운드 로빈

  • 지연 시간 기반

  • 다중 응답

관계형 DB의 문제점

  • 서버 유지 관리 및 에너지 소비
  • 소프트웨어 설치 및 패치
  • 디비 백업 및 고가용성
  • 확장성 제한
  • 데이터 보안
  • OS 설치 및 패치

=> 여러분야의 전문 지식이 필요함

Amazon Relational Database Services (RDS)

  • 비용 효율적이고 크기 조정 가능한 용량을 제공하는 한편, 이전에 다룬 것과 같은 시간 소모적은 관리 작업을 자동화 할 수 있다.

  • 애플리케이션에 집중할 필요가 없어지므로, 필요한 성능, 고가용성, 보안 및 호환성을 제공할 수 있다.

  • 관리 대상

    	- OS 설치 및 패치 
    • 디비 소프트웨어 설치 및 패치
    • 디비 백업
    • 고가용성
    • 규모 조정
    • 전력 및 랙과 스택
    • 서버 유지 관리
  • RDS의 기본 빌딩 블록은 데이터베이스 인스턴스다.

  • DB인스턴스는 여러명의 사용자가 만든 디비를 포함할 수 있는 격리된 디비 환경이며, 독립형 디비 인스턴스에서 사용하는 것과 동일한 도구 및 애플리케이션을 사용하여 액세스 할 수 있다.

  • 디비 인스턴스에 있는 리소스는 디비 인스턴스 클래스에 따라 결정되며, 스토리지 유형은 디스크 유형에 의해 지정된다.

  • 현재 RDS가 지원하는 DB는 6개다.

    	- MySQL
    • Amazon Aurora
    • Microsoft SQL
    • PostgreSQL
    • MariaDB
    • Oracle
  • VPC를 사용해 인스턴스를 실행할 수 있으며, 가상 네트워크 환경을 제어할 수 있다.

  • 일반적으로 디비 인스턴스는 프라이빗 서브넷에서 격리되어 있으며 지정된 애플리케이션 인스턴스에만 직접 액세스 할 숭 ㅣㅆ다.

  • VPC의 서브넷은 단일 가용 영역과 연결되어 있으므로 서브넷을 건택하면 디비 인스턴스의 가용 영역 또는 물리적 위치도 선택된다.

  • RDS의 가장 강력한 기능 중 하나는 다중 AZ 배포를 통해 고가용성을 실현하기 위해 디비 인스턴스를 구성할 수 있다는 것이다.

  • 구성이 완료되면 RDS는 동일한 VPC 내 다른 가용 영역에서 디비 인스턴스의 예비 복사본을 자동 생성하는데, 이는 시스템 유지 관리 중 가용성을 향상시킬 수 있으며, 디비 인스턴스 오류 및 가용 영역 중단의 발생을 방지한다.

  • 마스터 디비 인스턴스가 실패하면 RDS는 자동으로 예비 디비 인스턴스를 새로운 마스터로 온라인상에 가져온다.

  • 원본 디비 인스턴스에 적용된 업데이트는 읽기 전용 복제본 인스턴스에 비동기식으로 복사된다.

  • 애플리케이션에서 읽기 전용 복제본으로 읽기 쿼리를 라우팅하여 원본 디비 인스턴스에 대한 로드를 줄일 수 있다.

  • 읽기 전용 복제본을 마스터 디비 인스턴스로 승격할 수 있지만 수동으로 해야한다.

  • 사용 사례

    	- 웹 및 모바일 애플리케이션 
    
      - 높은 처리량 
      - 대규모 스토리지 확장성
      - 고가용성 
      
    • 전자 상거래 애플리케이션

      • 저렴한 디비
      • 데이터 보안
      • 완전 관리형 솔루션
    • 모바일 및 온라인 게임

      • 신속한 용량 확장
        • Auto Scaling
        • 데이터베이스 모니터링

Lambda

  • 서버를 프로비저닝 하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스

  • 필요시에만 코드를 실행하고 초당 수천개의 요청으로 자동 확장 한다.

  • 간헐적인 워크로드가 가변적일 경우 이상적이다.

  • 서버 및 운영체제 유지관리, 용량 프로비저닝, Auto Scaling, 코드 모니터링 및 로깅을 포함한 모든 관리 기능을 제공하는 고가용성 컴퓨팅 인프라에서 코드를 실행한다.

  • Node.js, Java, C#, Python등 다양한 언어 지원

  • 이벤트 중심의 컴퓨팅에 사용 할 수 있다.

  • S3, Dynamic DB 테이블 병경 사항을 비롯하여 이벤트에 대한 응답으로 코드를 실행 할 수 있다.

사용자가 이미지를 업로드하면 Lambda 함수가 트리거되어 해당 이미지를 처리하고 썸네일 이미지를 생성한다. 이 과정은
1.모바일 앱에서 사용자가 부동산 목록에 올릴 이미지를 캡쳐한다.
2.S3에서 모바일앱이 새로운 이미지를 S3에 업로드한다.
3.Lambda함수가 Lambda에서 트리거되고 호출한다.

  • 사용 사례
    • 자동화된 백업
    • S3에 업로드된 객체 처리
    • 이벤트 중심의 로그 분석
    • 이벤트 중심의 변환
    • 서버리스 웹 사이트 운영

AWS Elastic Beanstalk

  • PaaS 이며 전체 인프라와 플랫폼이 생성된 상태이므로 필요에 따라 코드를 시스템에 간단하게 배포할 수 있다.

  • 애플리케이션을 빠르게 배포할 수 있다.

  • 관리의 복잡성을 줄인다.

  • 제어 권한을 유지할 수 있다.

    	- 인스턴스 유형 선택
    • 데이터베이스 선택
    • Auto Scaling 설정 및 조정
    • 애플리케이션 업데이트
    • 서버 로그 파일에 액세스
    • 로드 밸런서에서 HTTPS 활성화
  • 광범위한 플랫폼을 지원한다.

  • 손쉬운 업데이트가 가능하다.

Amazon Simple Notification Service (SNS)

  • 유연한 완전관리형 게시/구독 메시징 및 모바일 통신 서비스

  • 구독 엔드포인트 및 클라이언트로의 메시지 전달을 조율

  • 안정적인 통신을 손쉽게 설정, 운영 및 전송할 수 있다.

  • 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션을 분리 및 확장할 수 있다.

  • Lambda나 HTTP/S, Amazon SQS같은 서비스들을 위한 게시/구독 메시징이 가능하다.

  • SNS 모바일 알림의 경우 ADM, APNS, Baidu, GCM, MPNS, WNS등 다른 모바일 시스템에 유사한 게시 작업을 할 수 있다.

Amazon CloudWatch

  • 모니터링 서비스다.

  • AWS에서 실행하는 AWS리소스와 애플리케이션을 실시간으로 모니터링 한다.

  • 기능

    	- CPU 사용률, 데이터 전송, 디스크 I/O 및 사용률 등의 지표 수집 및 추적 
    • 클라우드 리소스 및 애플리케이션의 서비스 모니터링
    • 원하는 지표에 대한 경보를 설정하여 알림을 전송하거나 자동화된 조치 가능
  • 기본적으로 CloudWatch 지표를 갖고 있는데 기본지표에는 CPU 사용률, 상태확인 등의 지표가 포함된다.

  • 사용자 지정 애플리케이션 지표도 애플리케이션 내에서 사용 가능한 통계에 관련된것은 기록될 수 있다.

  • 이런 모든 사항은 AWS Management Console로 보고되고 가져온다.

  • 사용 사례

    	- AWS 리소스의 상태 변경에 응답한다. 
    • 이벤트가 Amazon EC2 인스턴스가 실행 상태로 전환되었음을 알릴 경우 자동으로 AWS Lambda 함수를 호출하여 DNS 항목을 업데이트한다.
    • 잠재적 보안 또는 가용성 위험에 대한 상세한 분석을 위해 특정 API 레코드를 CloudTrail에서 Kinesis로 보낸다.
    • 일정에 따라 Amazon EBS 볼륨의 스냅샷을 생성한다.
    • CloudWatch Events를 사용하여 S3객체 수준 작업을 기록한다.
  • 구성 요소

    	- 지표

    - 시스템의 성능에 대한 데이터다.
    - CloudWatch에 게시된 시간 순서별 데이터 요소 세트를 나타낸다.
    - 기본적으로 여러 서비스에서 리소스에 대한 무료 지표를 제공한다.
    - 자체 애플리케이션 지표를 게시한다.
    - 검색, 그래프 처리 및 경보를 위해 계정의 모든 지표를 로드한다.

    • 경보

      • 단일 지표를 감시한다.
        • 하나 이상의 작업을 수행한다. (일정 기간 동안 임계값과 관련된 지표 값 기준)
        • 작업의 예 : Amazon EC2, Auto Scaling, Amazon SNS 주제로 전송된 알림
        • 지속되는 상태 변경에 대해서만 작업을 호출한다.
    • 이벤트

      • AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 거의 실시간 스트림
        • 간단한 규칙을 사용하여 일치하는 이벤트를 찾고 이러한 이벤트를 하나 이상의 대상 함수 또는 스트림으로 라우팅한다.
        • 운영 변경 사항이 발생하는 대로 이를 인지한다.
        • 운영 변경 사항에 대응하고 필요한 경우 수정 작업을 수행한다.
        • Cron 또는 rate 표현식을 사용하여 특정 시간에 자동으로 트리거되는 자동화 작업을 예약할 수 있다.
    • 로그

      • 기존 로그 파일을 사용하여 시스템 및 애플리케이션을 모니터링하고 문제를 해결한다. (특정 구문, 값 또는 패턴에 대한 로그를 모니터링한다. )
        • CloudWatch Logs에서 연결된 로그 데이터를 검색한다.
        • Ubuntu, Amazon Linux 및 Window용 설치 가능한 에이전트를 추가 비용 없이 포함한다.
    • CloudWatch Logs

      • EC2 인스턴스의 로그를 실시간으로 모니터링한다.
      • CloudTrail에서 로깅한 이벤트를 모니터링 한다.
      • 로그 데이터를 아카이브한다.
    • 대시보드

      • CloudWatch 콘솔에서 사용자 지정 가능한 홈페이지를 통해 단일 뷰에서 리소스를 모니터링 할 수 있다. (다른 리전에 분산되어 있는 리소스도 가능하다.)
        • AWS 리소스에 대한 지표 및 경보의 사용자 지정 뷰를 생성할 수 있다. ( 각 대시보드는 여러 지표를 표시할 수 있으며, 텍스트와 이미지로 꾸밀 수 있다. )
        • 콘솔, AWS CLI 또는 putDashBoard API를 사용하여 대시보드를 생성할 수 있다.

Amazon CloudFront

  • 계속 확장되는 글로벌 네트워크
  • 엣지의 콘텐츠 보안
  • 주요 AWS 서비스와 긴밀한 통합
  • 고성능
  • 비용 효율성
  • 사용 편의성
  • 사용 사례
    • 정적 자산 캐싱
    • 라이브 및 온디맨드 동영상 스트리밍
    • 보안 및 DDoS 보호
    • 종적 및 사용자 지정 가능한 콘텐츠
    • API 가속화
    • 소프트웨어 배포

AWS CloudFormation

  • 애플리케이션을 지원하는 관련 리소스 그룹을 반복적이고 예측 가능하게 생성하는 작업을 자동화 및 간소화 한다.

  • 완전 관리형 서비스

  • 스택에서 리소스를 생성, 업데이트 및 삭제

  • 템플릿 파일을 읽고 리소스를 구성하며 스택에서 작업을 수행한다.

  • 스택

    	- 생성된 리소스 
    • 배포 단위
    • 스택 생성
    • 스택 업데이트
    • 스택 삭제
  • 템플릿

    • 프로비저닝 할 리소스
    • 텍스트 파일
    • JSON 또는 YAML 형식
    • 자체 문서화 환경
    • 템플릿은 특정 형식 지정 구성을 사용하지만 리소스 및 속성 정보는 동일하다.
    • 정확한 리소스 생성 순서로 템플릿에 리소스를 나열할 필요가 없다는 것이다.
profile
얌얌

0개의 댓글