AWS Certified Solutions Architect Associate Summary

아현·2024년 11월 5일
1

Cloud Computing

목록 보기
20/20

Exam Dump


한국어 버전



S3 Transfer Acceleration 란?

출처


S3 Transfer Acceleration은 Amazon Simple Storage Service (S3)의 기능으로, 대용량 파일의 S3로의 업로드 및 다운로드 속도를 가속화해주는 기능입니다.

이 기능은 Amazon CloudFront의 전세계적으로 분포된 엣지 로케이션을 활용하여 전송 속도를 개선합니다.

  1. 작동 방식

    • S3 버킷에서 Transfer Acceleration을 활성화하면, Amazon은 해당 버킷을 위한 가속화된 엔드포인트 URL을 제공합니다.

    • 이 엔드포인트를 사용하여 파일을 업로드하거나 다운로드할 때, 요청은 자동으로 가장 가까운 CloudFront 엣지 로케이션으로 라우팅됩니다.

    • 엣지 로케이션에서 Amazon S3 버킷으로 데이터가 최적화된 네트워크 경로를 통해 전송되므로 속도가 크게 향상됩니다.

  1. 최적화 및 효율성

    • 가속화의 핵심은 엣지 로케이션과 S3 버킷 간의 최적화된 네트워크 경로의 사용에 있습니다.

    • CloudFront의 광범위하고 성장하는 엣지 로케이션 네트워크는 지연 시간을 최소화하여, 특히 S3 버킷의 지역에서 먼 사용자들에게 유리합니다.

  2. 주요 장점

    • 전송 속도 향상: 데이터가 인터넷을 통해 이동해야 하는 거리를 줄여 Amazon의 백본 네트워크에 도달하기 전까지의 속도를 극대화합니다.

    • 전세계 액세스: 전세계적으로 분포된 사용자가 S3에 업로드할 때 지연 시간이 줄어 전송 속도가 빨라집니다.

    • 쉬운 통합: 기존의 S3 API와 SDK를 최소한의 수정으로 Transfer Acceleration과 함께 사용할 수 있습니다 (엔드포인트만 변경).

  3. 사용 사례

    • 대용량 파일 업로드/다운로드: 특히 대용량 미디어 파일이나 데이터 세트를 빠르고 효율적으로 전송해야 하는 애플리케이션에 유용합니다.

    • 분산된 팀/사용자: 지리적으로 분포된 팀이나 사용자가 지연 시간 감소와 빠른 액세스 시간 혜택을 누릴 수 있습니다.

    • 백업 및 재해 복구: 빠른 데이터 전송이 데이터 백업 속도를 향상시키고, 데이터 복구 과정에서 복구 시간을 개선할 수 있습니다.

  1. 비용

    • S3 Transfer Acceleration 사용에는 추가 비용이 발생합니다. 가격 모델은 일반적인 S3 데이터 전송 비용 외에 전송 수수료를 포함합니다.

    • Transfer Acceleration을 사용하기 전에 관련 비용을 검토하여 예산과 요구 사항에 맞는지 확인하는 것이 좋습니다.

  2. S3 Transfer Acceleration 활성화 방법:

    • AWS 관리 콘솔에 로그인합니다.

    • 원하는 S3 버킷으로 이동합니다.

    • 버킷의 "속성(Properties)" 탭으로 이동합니다.

    • "Transfer Acceleration" 기능을 활성화합니다.

참고: 지리적 거리가 적거나 네트워크 연결이 이미 최적화되어 있는 경우에는 성능의 크게 개선되지 않을 수도 있습니다.

이 기능을 활용함으로써 조직은 애플리케이션의 데이터 업로드 및 다운로드 성능을 향상시켜 전체 사용자 경험과 효율성을 높일 수 있습니다.

🤨 AWS SAA 문제
S3의 "Transfer Acceleration" 기능에 대한 설명으로 올바른 것은 무엇인가?
1. 데이터를 자동으로 다른 리전에 저장하는 기능
2. 데이터를 전용 네트워크를 통해 온프레미스 환경으로 전송하는 기능
3. 데이터를 여러 AZ에 고속으로 전송하는 기능
4. 사용자로부터 S3 버킷으로 최적화된 네트워크 경로를 통해 데이터를 전송하는 기능

정답. 4번

  • 사용자로부터 S3 버킷으로 최적화된 네트워크 경로를 통해 데이터를 전송하는 기능
  1. 데이터를 자동으로 다른 리전에 저장하는 기능
    • S3의 기능인 "크로스 리전 레플리케이션"에 대한 설명이므로, 틀렸습니다.
  2. 데이터를 전용 네트워크를 통해 온프레미스 환경으로 전송하는 기능
    • S3의 기능이 아닌 "AWS Direct Connect" 서비스이므로, 틀렸습니다.
  3. 데이터를 여러 AZ에 고속으로 전송하는 기능
    • S3에 저장된 데이터는 S3 One Zone-IA 스토리지 클래스를 제외하고 자동으로 여러 AZ로 복사되지만, 고속 전송하는 기능은 없으므로, 틀렸습니다.

🤨 AWS SAA 문제
A company collects data for temperature, humidity, and atmospheric pressure in cities across multiple continents. The average volume of data that the company collects from each site daily is 500 GB. Each site has a high-speed Internet connection. The company wants to aggregate the data from all these global sites as quickly as possible in a single Amazon S3 bucket. The solution must minimize operational complexity. Which solution meets these requirements?
1. Turn on S3 Transfer Acceleration on the destination S3 bucket. Use multipart uploads to directly upload site data to the destination S3 bucket.
2. Upload the data from each site to an S3 bucket in the closest Region. Use S3 Cross-Region Replication to copy objects to the destination S3 bucket. Then remove the data from the origin S3 bucket.
3. Schedule AWS Snowball Edge Storage Optimized device jobs daily to transfer data from each site to the closest Region. Use S3 Cross-Region Replication to copy objects to the destination S3 bucket.
4. Upload the data from each site to an Amazon EC2 instance in the closest Region. Store the data in an Amazon Elastic Block Store (Amazon EBS) volume. At regular intervals, take an EBS snapshot and copy it to the Region that contains the destination S3 bucket. Restore the EBS volume in that Region.

정답. 1



EFS (Elastic File System) 란?

출처


  • Amazon EFS(Elastic File System)는 이름에서 볼수 있듯이, AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 파일 스토리지를 제공하는 서비스 이다.

  • EFS는 리눅스 인스턴스를 위한 확장성, 공유성 높은 파일 스토리지로, EC2 Linux 인스턴스에 마운트된 Network File System(NFS)을 통해 VPC에서 필요한 파일에 접근하거나 AWS Direct Connect로 연결된 온프레미스 서버의 파일에 접근할 수 있다.

    • 쉽게 생각해서 EFS는 회사의 온프레미스 환경의 NFS, NAS 폴더와 비슷한 서비스라고 이해하면 된다.
  • 수천대의 EC2 인스턴스간 파일 시스템 공유 가능하며, 병렬 접근이 가능하도록 설계되어 있어, 두 개 이상의 EC2로부터 하나의 공유된 스토리지 공간이 필요할 때 EFS를 채택하면 된다.

  • EFS는 사용이 간편하며, 파일 시스템을 쉽고 빠르게 생성 및 구성할 수 있는 간단한 인터페이스를 제공한다.

  • EFS는 애플리케이션을 방해하지 않으면서 필요에 따라 탄력적으로 확장되도록 구축되어, 파일을 추가하고 제거함에 따라 자동으로 확장되고 축소되므로, 애플리케이션에서는 필요할 때 필요한 만큼 스토리지를 확보할 수 있다.

  • 리전별 서비스인 EFS는 여러 가용 영역에 걸쳐 데이터를 중복으로 저장하여 높은 가용성과 내구성을 제공하도록 설계되어있다.

정리하자면, EFS는 다수의 인스턴스에서 파일에 접근할 수 있는 전송 지연 문제가 적으며 안전하며 내구성이 높은 네트워크 파일 스토리지 서비스 라고 할수 있다.

EFS는 리눅스용 파일 서비스이다.

  • 따라서 윈도우는 지원되지 않으며, 아마존 리눅스 AMI에 최적화 되어 있다.
  • 우분투 역시 연결이 가능하지만 설정이 약간 복잡하다는 흠이 있다.
  • 필요에 따라 리눅스 삼바와 연동하기도 한다.



ElastiCache 란?

출처


ElastiCache는 Fully managed 분산 인메모리(In-memory) 캐싱 서비스이다.

ElastiCache는 주로 성능을 중시하는 애플리케이션에서 사용된다.

데이터베이스나 다른 백엔드 스토리지에서 가져오는 데이터를 캐싱(Cache)하여 액세스 속도를 향상시키는 데 사용된다.

즉, ElastiCache는 쉽게 말해서 데이터를 더 빨리 가져오기 위한 메모리 기반의 저장소 서비스이다.

인메모리(In-memory) 데이터베이스란?

  • 인메모리"는 데이터를 메모리(RAM, 주 기억 장치)에 저장하고 처리하는 방식을 가리킨다.
    • 전통적인 데이터베이스 시스템은 디스크에 데이터를 저장한다. 필요할 때마다 디스크에서 데이터를 읽고 쓴다.
    • 하지만 인메모리 데이터베이스나 캐싱 시스템은 데이터를 디스크가 아닌 메모리에 저장하고 관리한다.
  • 인메모리 DB의 장점: 빠르다
    • 메모리는 디스크에 비해 훨씬 빠르기 때문에 데이터를 메모리에 저장하면 읽기 및 쓰기 작업이 빠르다.
    • 디스크 기반 DBMS 제품보다 100~1000배가 가량 빠르다고 한다.
  • 인메모리 DB의 단점: 메모리가 휘발성
    • DB 서버 전원이 갑자기 꺼져버리면 안에 있는 자료들이 즉시 삭제된다.
  • 인메모리 DB 종류:
    • Redis(레디스): 오픈 소스로, String, Hash, List, Set, Sorted Set 등 다양한 데이터 형식을 제공하는 키-값(Key-Value) 데이터 저장소.
    • Memcached(멤캐시드): 오픈 소스로, key-value 캐싱만을 제공한다.
  • ElastiCache 특징 ( 캐시 엔진에 따라 다르다 )

    1. Fully managed (완전 관리형)

      • AWS의 완전 관리형 서비스로, 데이터베이스 확장, 장애 감지 및 복구, 백업 등은 AWS에 의해 관리된다.

      • 개발자 입장에서는 관리하기가 아주 쉽다.

    2. Scalable (확장 및 축소 능력): 엔진에 따라 다르다.

      • ElastiCache for Redis는 애플리케이션의 요구에 따라 클러스터 크기를 자동으로 확장하거나 축소가능하다.
    3. High availability (고가용성): 엔진에 따라 다르다.

      • ElastiCache for Redis는 Multi-AZ(Multi-Availability Zone) 설정을 사용할 경우 가용성이 99.99%이다.
    • RDS나 Redshift와 같은 다른 데이터베이스 서비스와 연계하여 쿼리 결과를 ElastiCache에 캐시함으로써 전체적인 성능을 향상시키는 방식으로 활용할 수 있다.
  • ElastiCache이 지원하는 캐시 엔진 (2가지)

    • ElastiCache에는 "KVS"(Key-Value Store)형 데이터베이스 엔진이 2개 준비되어 있으며, 데이터베이스를 구축할 때 선택할 수 있다.

      • Key-Value형: 저장할 데이터(Value)와 그것을 특정하기 위한 키(Key)가 쌍을 이루는 구성의 데이터셋을 의미한다.
    • 공통점

      • in-memory DB로써 속도가 빠르다.

      • key-value 형태로 데이터를 저장

      • 캐시나 새션, 상태 정보 저장에 최적화 되어 있다.

    1. Redis - (특징: 고급 기능 탑재)

      • Redis는 Memcached보다 고기능의 데이터베이스 엔진이다.

      • Single Thread로 작동한다. 즉, 한 번에 하나의 작업만 처리한다.

      • Snapshot (Amazon S3에 저장) 기능을 통한 백업 및 복원이 가능하며, 데이터를 영구적으로 보존할 수 있다.

      • "자동 페일오버"와 "Multi AZ"가 있다. (장애 대책 기능])

        • 자동 페일오버: 프라이머리 노드에 장애가 발생하면 자동으로 레플리카 노드가 프라이머리 노드로 승격된다.
        • Multi AZ: AZ를 넘나드는 복제가 가능하므로, 프라이머리 노드가 있는 AZ에 장애가 발생해도 다른 레플리카 노드를 승격시켜 운영을 지속할 수 있다.
      • [보안 기능]: Redis는 Memcached에는 없는 보안 기능을 제공한다.

        • 저장된 데이터의 암호화나 SSL/TLS를 통한 통신 암호화

        • 클라이언트를 비밀번호로 인증하는 Redis 인증 등을 지원한다.

        • 이러한 기능을 사용하려면, ElastiCache 데이터베이스를 생성할 때 Redis를 선택하고 암호화를 활성화해야 한다

    2. Memcached - (특징: 심플함)

      • Memcached는 심플한 캐싱 활용에 적합하다.

      • Multi Thread로 작동한다. 즉, 여러 스레드가 동시에 요청을 처리할 수 있다.

      • Redis와 달리 Memcached는 데이터의 영구 보존이나 백업 기능이 없다.

      • 그렇기 때문에 장애나 재부팅이 발생하면 캐시 데이터가 남지 않고 사라진다.

      • 계속 유지해야 하는 데이터는 스토리지나 다른 DB 서비스에 저장해두고, 애플리케이션의 속도를 높이기 위한 캐시로 사용하는 경우에 적합하다.



Amazon ElastiCache for Redis - Sorted Sets


Amazon ElastiCache for Redis의 Sorted Sets는 Redis 데이터 구조 중 하나로, 고유한 값들을 점수와 함께 저장하며, 점수를 기준으로 정렬된 상태를 유지합니다. Sorted Sets는 특정한 순서가 필요한 데이터 저장 및 검색에 유용합니다. 다음은 Sorted Sets의 주요 특징 및 활용 방법에 대한 설명입니다.


주요 특징


  1. 정렬된 저장

    • 각 요소는 점수와 함께 저장되며, 점수에 따라 자동으로 정렬됩니다.

    • 동일한 점수를 가진 요소가 여러 개 있을 수 있는데, 이러한 경우 요소들은 기본적으로 삽입된 순서에 따라 정렬됩니다.

  2. 고유한 값

    • Sorted Sets는 각 값이 유일하며, 동일한 요소를 중복하여 저장할 수 없습니다.
  3. 빠른 조회 및 범위 연산

    • 특정 점수 범위 내의 요소를 빠르게 검색할 수 있습니다.

    • 인덱스 위치를 기반으로 요소를 검색하는 것도 가능합니다.

  4. 복잡도

    • 요소 삽입 및 삭제는 O(log(N))의 시간 복잡도를 가집니다.

    • 점수나 인덱스를 기반으로 요소를 검색하는데 O(log(N) + M) (M은 결과의 수) 시간 복잡도를 가집니다.



사용 사례


  • 리더보드:

    • 게임이나 애플리케이션에서 사용자 점수를 저장하고 정렬된 순위표를 생성하는 데 사용됩니다.
    • 일정 점수 범위 내의 사용자들을 조회하거나, 상위 N명의 사용자들을 효율적으로 검색할 수 있습니다.
  • 태스크 스케줄링:

    • 실행될 태스크를 우선순위에 따라 관리하고, 우선순위에 따른 실행 순서를 보장합니다.
  • 시간 기반 시퀀싱:

    • 타임스탬프를 점수로 사용하여, 시간 순서에 따라 이벤트나 로그를 저장하고 정렬할 수 있습니다.



Redis 명령어


  • ZADD: 요소와 점수를 추가합니다.

  • ZRANGE: 지정된 범위 내의 요소를 점수의 오름차순으로 반환합니다.

  • ZREVRANGE: 지정된 범위 내의 요소를 점수의 내림차순으로 반환합니다.

  • ZSCORE: 특정 요소의 점수를 반환합니다.

  • ZREM: 특정 요소를 제거합니다.

  • ZRANGEBYSCORE: 특정 점수 범위에 해당하는 요소를 반환합니다.

Redis의 Sorted Sets는 점수를 기반으로 정렬된 데이터를 효율적으로 처리하기 위한 강력한 기능을 제공하며, 다양한 실시간 데이터 처리 및 분석 요구사항을 해결하는 데 유용합니다. ElastiCache for Redis를 통해 이러한 Redis 기능을 AWS의 매니지드 환경에서 활용할 수 있습니다.



Redshift 란?

출처


  • AWS에서 제공하는 클라우드 기반의 완전 관리형 데이터 웨어하우스 서비스이다.

    • PetaByte 규모의 데이터까지 처리할 수 있다.

    • PostgreSQL을 기반으로 두고 있어 표준 SQL을 이용하는 데이터 처리를 지원하며 이를 통해 BI를 얻을 수 있다.

데이터 웨어하우스(Data Warehouse)는 조직의 다양한 출처에서 데이터를 수집, 저장 및 관리하여, 의사결정을 지원하기 위한 분석, 보고 및 데이터 마이닝 작업에 최적화된 시스템입니다. 데이터를 통합하여 효율적으로 저장하고 이를 기반으로 유용한 정보를 제공하도록 설계되어 있습니다.

  • 다음은 데이터 웨어하우스의 주요 특징입니다:
    1. 주제 지향성(Subject-Oriented): 데이터 웨어하우스는 특정 주제(예: 고객, 판매, 제품 등) 중심으로 데이터를 조직합니다. 이는 운영 데이터베이스가 일상적인 거래 처리를 위한 것과는 다릅니다.
    2. 통합성(Integrated): 데이터 웨어하우스는 다양한 출처의 데이터를 일관된 형식으로 변환하고 통합하여 저장합니다. 이는 서로 다른 시스템에서 온 데이터 형식과 코드를 통일함으로써 이루어집니다.
    3. 비휘발성(Non-volatile): 데이터 웨어하우스에 저장된 데이터는 일단 입력되면 보통 수정되거나 삭제되지 않습니다. 데이터는 주로 읽기 전용으로 사용되어 과거 데이터를 추적할 수 있습니다.
    4. 시간 가변성(Time-variant): 데이터 웨어하우스는 시간에 따라 변화하는 데이터를 저장하여, 과거와 현재를 비교하고 트렌드를 분석할 수 있게 합니다. 보통 시간 축을 기준으로 데이터를 저장하므로 역사적인 데이터 분석이 가능합니다.

  • 데이터 웨어하우스는 대체로 대량의 데이터를 장기적으로 저장하고 분석하기 위해 설계되어 있습니다. 이는 비즈니스 인텔리전스(BI) 도구와 결합되어, 경영진이나 분석가들이 데이터에 기반한 의사결정을 내릴 수 있도록 지원합니다.

  • 데이터 웨어하우스의 일반적인 구성 요소는 다음과 같습니다:
    • ETL 프로세스(Extract, Transform, Load): 다양한 출처에서 데이터를 추출하고, 이를 변환(클렌징, 정제, 통합)한 후 웨어하우스에 적재합니다.
    • 데이터베이스: 대량의 데이터를 저장하는 시스템으로, 대개 관계형 데이터베이스 관리 시스템을 사용합니다.
    • OLAP(OnLine Analytical Processing) 시스템: 복잡한 쿼리와 데이터 분석을 빠르게 수행할 수 있게 돕는 시스템입니다.
    • 데이터 마트(Data Mart): 특정 부서나 사용자 그룹의 용도에 맞게 데이터를 부분적으로 저장하고 관리하는 소규모 데이터 웨어하우스의 형태입니다.

  • 데이터 웨어하우스를 구축하면 조직은 보다 나은 데이터를 기반으로 전략적 의사결정을 내리기 위한 분석 능력을 강화할 수 있습니다.
  • RedShift의 특징

    • 고성능 컴퓨팅과 분산 스토리지 기능을 결합해 대규모 데이터 집합의 저장, 분석 및 쿼리 수행에 최적화되어 있다.

    • 컬럼 기반 스토리지가 사용 가능하다.

      • 데이터의 압축률을 높이고 저장 용량을 최적화
    • 대용량 병렬 처리(MPP) 기능을 제공한다.

      • 대규모 데이터 집합을 빠르게 처리 가능
    • SQL 기반의 쿼리 언어를 지원한다.

    • 다른 AWS 서비스와 통합되어 있어 데이터를 쉽게 가지고 올 수 있다.

      • 높은 유연성과 확장성 제공
    • 다만 RedShift는 고정 비용 옵션이기 때문에 제약이 존재한다. 그래서 대용량의 데이터 (기업에서 사용하는 데이터)를 처리할 때는 Redshift가 아닌 가변 비용 옵션의 데이터 웨어하우스 서비스 Big Query와 Snowflake를 쓰는 것을 추천한다.



  • RedShift의 Architecture

    1. Cluster

      • RedShift의 핵심 인프로 구성 요소로 노드 클러스터가 사용된다.

      • Cluster는 하나 이상의 Compute Node로 구성된다.

      • 두 개 이상의 Compute Node가 구성되면 추가적인 Leader Node가 이를 조정하고 외부 통신을 처리한다.

      • 모든 Client Application은 Leader Node와만 직접 상호 작용한다.

    2. Leader Node

      • Client Application과 Compute Node 간의 모든 통신을 관리한다.

      • 복잡한 쿼리 결과를 얻기 위해 일련의 단계를 실행하는 데 필요한 실행 계획을 분석하고 개발한다.

      • 실행 계획을 기반으로 Leader Node는 코드를 컴파일 하고 이를 Compute Node에 배포해 각 Compute Node에 데이터 일부를 할당한다.

      • Leader Node는 쿼리가 Compute Node의 테이블을 참조하는 경우에만 Compute Node에 SQL문을 전달한다.

      • Leader Node에서만 특정 SQL 함수를 구현 및 설계할 수 있다. 📑 Leader Node에서만 사용할 수 있는 특정 SQL 함수

    3. Compute Node

      • Leader Node에서 전달받은 컴파일된 코드를 실행하고 중간 결과를 Leader Node로 보내 최종 집계를 수행한다.

      • 각 Compute Node는 노드 유형에 따라 자체 전용 CPU와 메모리를 가지게 된다.

      • 만약 워크로드가 증가하면 Node 수를 늘리거나 Node 유형을 업그레이드해 Cluster 컴퓨팅 용량을 늘릴 수 있다.

  • Redshift 노드 유형

    • RedShift에서는 워크로드를 지원하는 여러 노드 유형을 제공한다.

    • 그중 필요한 성능, 데이터 크기, 확장 속도에 따라 RA3, DC2를 선택하는 것이 좋다.

    • Amazon RedShift Serverless 서비스를 사용할 경우 적절한 리소스를 자동으로 프로비저닝하므로 Node 유형을 선택하지 않아도 된다.

    1. RA3 (Redshift Manager Storage 3)

      • Amazon RedShift 노드 유형 중 가장 최신의 기술을 사용함.

      • 높은 처리량 및 대규모 데이터 집합 처리에 적합하다.

      • 고성능 SSD 스토리지를 사용하며 비용 효율적인 스토리지와 높은 성능을 제공한다.

      • Amazon Redshift Spectrum 및 Concurrency Scaling과 같은 고급 기능도 모두 지원된다.

      • Redshift Managed Storage (RMS)와 완벽하게 통합되어 있다.

      • Amazon S3를 사용하여 스토리지를 자동으로 확장하며, 클러스터 크기를 기존 데이터 처리 능력과 스토리지 요구 사항에 따라 조정 가능하다.

    2. DC2 (Data Computing 2)

      • 고성능 스토리지 중심으로 설계됨.

      • 빠른 스토리지 및 메모리 대역폭을 제공한다.

      • RA3 노드와 달리 전용 로컬 스토리지를 사용하여 데이터를 처리하기 때문에 높은 성능을 제공하지만 노드의 스토리지 용량을 확장하는 게 쉽지 않다.

    3. DS2 (Data Storage 2)

      • 고용량 스토리지 중심으로 설계됨.

      • 높은 스토리지 대역폭과 함께 비용 효율적인 스토리지를 제공한다.

      • 하위 호환 버전인 DS2.8xlarge가 존재한다.



Kinesis Data Analytics 란?


  • Amazon Web Services(AWS)에서 제공하는 서비스로, 스트리밍 데이터를 실시간으로 처리하고 분석할 수 있도록 돕습니다.

  • 이 서비스는 스트리밍 데이터에서 SQL을 사용하여 손쉽게 복잡한 데이터 처리 프로세스를 구축할 수 있는 기능을 제공합니다. Kinesis Data Analytics는 주로 Apache Flink를 기반으로 하며, 실시간으로 들어오는 데이터 스트림에 대해 복잡한 변환, 집계, 필터링, 윈도잉 연산을 수행할 수 있습니다.

  • 주요 특징

    1. 실시간 처리: 데이터를 실시간으로 수신, 처리 및 응답할 수 있습니다. 이를 통해 빠르게 변화하는 데이터 패턴에 대한 인사이트를 실시간으로 얻을 수 있습니다.

    2. SQL 지원: SQL을 사용하여 데이터를 쿼리하고, 복잡한 처리를 쉽게 구현할 수 있습니다. 데이터베이스나 SQL에 익숙한 사용자들이 쉽게 적응할 수 있습니다.

    3. 서버리스 운영: 인프라 관리가 필요 없고, 사용한 만큼만 비용을 지불하는 서버리스 환경에서 애플리케이션을 실행합니다.

    4. 통합: Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon S3와 같은 다른 AWS 서비스와 쉽게 통합됩니다.

    5. 자동 스케일링: 데이터의 볼륨 변화에 따라 자동으로 스케일링되어 필요한 리소스를 자동으로 할당합니다.

Amazon Kinesis Data Analytics를 사용하면 실시간 대시보드 생성, 실시간 모니터링 및 경고 시스템 구축, 실시간 추천 시스템 등 다양한 애플리케이션을 구축할 수 있습니다. 이 서비스는 IoT 센서 데이터, 클릭스트림 데이터, 소셜 미디어 피드와 같은 다양한 스트리밍 데이터 소스를 처리하는 데 적합합니다.

🤨 AWS SAA 문제
A company has an application that ingests incoming messages. Dozens of other applications and microservices then quickly consume these messages. The number of messages varies drastically and sometimes increases suddenly to 100,000 each second. The company wants to decouple the solution and increase scalability. Which solution meets these requirements?
▷ 회사에 들어오는 메시지를 수집하는 응용 프로그램이 있습니다. 그러면 수십 개의 다른 애플리케이션과 마이크로서비스가 이러한 메시지를 빠르게 소비합니다. 메시지 수는 급격하게 변하며 때로는 초당 100,000개로 갑자기 증가하기도 합니다. 이 회사는 솔루션을 분리하고 확장성을 높이고자 합니다. 어떤 솔루션이 이러한 요구 사항을 충족합니까?


A. Persist the messages to Amazon Kinesis Data Analytics. Configure the consumer applications to read and process the messages.
▷ Amazon Kinesis Data Analytics에 대한 메시지를 유지합니다. 메시지를 읽고 처리하도록 소비자 애플리케이션을 구성합니다.
B. Deploy the ingestion application on Amazon EC2 instances in an Auto Scaling group to scale the number of EC2 instances based on CPU metrics.
▷ Auto Scaling 그룹의 Amazon EC2 인스턴스에 수집 애플리케이션을 배포하여 CPU 지표를 기반으로 EC2 인스턴스 수를 확장합니다.
C. Write the messages to Amazon Kinesis Data Streams with a single shard. Use an AWS Lambda function to preprocess messages and store them in Amazon DynamoDB. Configure the consumer applications to read from DynamoDB to process the messages.
▷ 단일 샤드를 사용하여 Amazon Kinesis Data Streams에 메시지를 씁니다. AWS Lambda 함수를 사용하여 메시지를 사전 처리하고 Amazon DynamoDB에 저장합니다. 메시지를 처리하기 위해 DynamoDB에서 읽도록 소비자 애플리케이션을 구성합니다.
D. Publish the messages to an Amazon Simple Notification Service (Amazon SNS) topic with multiple Amazon Simple Queue Service (Amazon SOS) subscriptions. Configure the consumer applications to process the messages from the queues.
▷ 여러 Amazon Simple Queue Service(Amazon SOS) 구독이 있는 Amazon Simple Notification Service(Amazon SNS) 주제에 메시지를 게시합니다. 대기열의 메시지를 처리하도록 소비자 애플리케이션을 구성합니다.

▶정답
D. Publish the messages to an Amazon Simple Notification Service (Amazon SNS) topic with multiple Amazon Simple Queue Service (Amazon SOS) subscriptions. Configure the consumer applications to process the messages from the queues.
▷여러 Amazon Simple Queue Service(Amazon SOS) 구독이 있는 Amazon Simple Notification Service(Amazon SNS) 주제에 메시지를 게시합니다. 대기열의 메시지를 처리하도록 소비자 애플리케이션을 구성합니다.
→ Decoupling(분리) 키워드 + 메세지 처리 수 = SNS , SQS

▶오답

  • Amazon Kinesis Data Analytics
    : Kinesis Data Analytics를 사용하면 로그 분석, 클릭스트림 분석, 사물 인터넷(IoT), 광고 기술, 게임 등을 위한 포괄적인 스트림 처리 애플리케이션을 신속하게 구축할 수 있다.
  • Amazon Kinesis Data Streams with a single shard(단일 샤드를 사용하여 Amazon Kinesis Data Streams)
    : 단일 샤드의 경우 1MB 또는 1000개 메시지/초로 제한된다.



Secrets Manager 란?


AWS Secrets Manager는 AWS에서 제공하는 서비스로, 중요한 정보를 안전하게 관리하기 위한 도구입니다. 이렇게 중요한 정보는 주로 데이터베이스 자격 증명, API 키, OAuth 토큰 등과 같은 데이터를 포함합니다. Secrets Manager의 주요 기능 및 장점은 다음과 같습니다.

  1. 보안 적인 저장: 암호, API 키, 그리고 기타 민감한 정보를 암호화된 형태로 안전하게 저장할 수 있습니다. 이러한 정보는 AWS 관리형 키를 통해 자동으로 암호화됩니다.

  2. 자동 교체와 관리: Secrets Manager는 데이터베이스 자격 증명 등의 비밀 정보를 자동으로 교체(rotate)할 수 있는 기능을 제공합니다. 이 기능을 사용하면 보안 모범 사례인 정기적인 자격 증명 변경을 자동화할 수 있습니다.

  3. 통합 관리: Secrets Manager는 AWS IAM(Identity and Access Management)과 통합되어, 비밀에 대한 액세스를 제어하고 모니터링 할 수 있게 해줍니다. 누가 어떤 비밀에 접근할 수 있는지 세밀하게 제어할 수 있습니다.

  4. 비용 효율적: 사용량 기반으로 가격이 책정되며, 필요에 따라 확장할 수 있습니다. 소규모 프로젝트부터 대규모 엔터프라이즈 애플리케이션까지 다양한 환경에서 사용할 수 있습니다.

  5. 간편한 통합: AWS Secrets Manager는 AWS의 다른 서비스, 예를 들어 Amazon RDS, Amazon Redshift, 그리고 AWS Lambda 등과 쉽게 통합할 수 있습니다. 이를 통해 애플리케이션에서 비밀 정보를 안전하게 사용하고 관리할 수 있습니다.

  6. 안전한 액세스: 암호화된 방식으로 애플리케이션에서 비밀을 안전하게 가져오고 사용할 수 있습니다. 이로 인해 코드에 하드코딩된 비밀을 제거하고 보안을 강화할 수 있습니다.

이러한 기능을 통해 AWS Secrets Manager는 클라우드 환경에서 민감한 정보의 보안을 강화하는 데 유용한 도구가 됩니다.


  • AWS Secrets Manager의 기능

    • 런타임에 암호화된 비밀 값을 프로그래밍 방식으로 검색

      • Secrets Manager는 애플리케이션 소스 코드에서 하드 코딩된 자격 증명을 제거하고 어떤 방식으로든 애플리케이션 내에 자격 증명을 저장하지 않음으로써 보안 태세를 개선하는 데 도움이 됩니다.
    • 다양한 유형의 비밀 저장

      • Secrets Manager를 사용하면 암호의 암호화된 암호 데이터 부분에 텍스트를 저장할 수 있습니다. 여기에는 일반적으로 데이터베이스 또는 서비스의 연결 세부 정보가 포함됩니다.
    • 비밀 데이터 암호화

      • Secrets Manager는 AWS Key Management Service(AWS KMS) 를 사용하여 보안 암호의 보호된 텍스트를 암호화합니다.
    • 자동으로 교체

      • 사용자 개입 없이 지정된 일정에 따라 보안 암호를 자동으로 교체하도록 Secrets Manager를 구성할 수 있습니다.
    • 완전히 구성되고 바로 사용할 수 있는 순환 지원이 있는 데이터베이스

      • 교체를 활성화하도록 선택하면 Secrets Manager는 AWS에서 작성 및 테스트한 Lambda 교체 함수 템플릿과 교체 프로세스의 전체 구성을 사용하여 다음 RDS 데이터베이스를 지원합니다.
    • 완전히 구성되고 바로 사용할 수 있는 순환 지원이 있는 기타 서비스

      • AWS에서 작성 및 테스트한 Lambda 교체 함수 템플릿과 교체 프로세스의 전체 구성으로 완전히 지원되는 다음 서비스에서 교체를 활성화하도록 선택할 수 있습니다.
    • 비밀에 대한 액세스 제어

      • IAM 권한 정책을 특정 암호에 대한 액세스 권한을 부여하거나 거부하는 사용자, 그룹 및 역할에 연결하고 해당 암호의 관리를 제한할 수 있습니다. 예를 들어 비밀을 완전히 관리하고 구성하는 기능이 필요한 구성원이 있는 그룹에 하나의 정책을 연결할 수 있습니다.



WorkDocs, WorkMail, Chime


AWS WorkDocs


  • 개요: AWS WorkDocs는 안전한 클라우드 기반의 문서 저장 및 공동 작업 서비스입니다. 사용자는 문서를 저장하고, 관리하며, 공동 작업할 수 있습니다.

  • 기능:

    • 파일 저장 및 액세스: 사용자는 다양한 장치에서 파일에 액세스하고 이를 저장할 수 있습니다.

    • 공동 작업 및 공유: 문서를 공동 작성을 위해 공유하고 피드백을 받을 수 있습니다. 댓글과 노트를 통해 협업이 가능합니다.

    • 보안 및 통제: 엔터프라이즈 급 보안 기능을 제공하며, 사용자는 파일에 대한 권한을 설정하고 추적할 수 있습니다.

    • 통합: Microsoft Active Directory와 통합되어 사용자 관리가 용이하며, 기존 IT 인프라에 쉽게 통합할 수 있습니다.



AWS WorkMail

  • 개요: AWS WorkMail은 비즈니스 이메일 및 캘린더 서비스로, 기업 수준의 이메일 통합 솔루션을 제공합니다.

  • 기능:

  • 이메일: 개인화된 도메인을 사용하여 비즈니스 이메일을 송수신할 수 있습니다.

    • 캘린더: 일정 관리 및 공유 기능을 통해 쉽게 회의를 계획할 수 있습니다.

    • 보안: 데이터 암호화 및 모니터링 기능을 통해 높은 수준의 보안을 제공합니다.

    • 고객 및 타 서비스와 통합: 보편적인 이메일 클라이언트(예: Microsoft Outlook)와 완벽히 통합되며 모바일 장치에서도 쉽게 사용할 수 있습니다.



Amazon Chime


  • 개요: Amazon Chime은 온라인 회의, 비디오 컨퍼런스, 채팅, 통화를 위한 커뮤니케이션 서비스입니다.

  • 기능:

    • 온라인 회의 및 비디오 컨퍼런스: 화상 회의, 회의록 공유, 화면 공유, 회의 녹화 등의 기능을 제공합니다.

    • 채팅: 1대1 채팅 또는 그룹 채팅이 가능하며, 파일 공유도 지원합니다.

    • 통화: 간편한 음성 및 비디오 통화 기능을 통해 팀 간의 커뮤니케이션을 용이하게 할 수 있습니다.

    • 데스크톱 및 모바일 애플리케이션: 다양한 플랫폼(Windows, macOS, iOS, Android)에서 사용 가능하며 손쉬운 접근성을 제공합니다.

이 세 가지 서비스는 기업이 보다 효율적으로 협업하고 소통할 수 있도록 지원합니다. WorkDocs는 문서 및 파일 관리를, WorkMail은 이메일 및 일정 관리, Chime은 화상 회의 및 팀 커뮤니케이션을 담당합니다. 이러한 서비스를 통해 AWS는 기업 환경에 필요한 다양한 협업 툴을 제공하고자 합니다.



EMR(Amazon Elastic MapReduce)


AWS EMR(Amazon Elastic MapReduce)은 클라우드에서 대규모 데이터 처리 작업을 쉽게 수행할 수 있도록 설계된 관리형 서비스입니다. Apache Hadoop, Apache Spark, Apache Hive, Apache HBase 및 Presto 같은 오픈 소스 빅데이터 프레임워크를 실행할 수 있으며, 대량의 데이터를 처리, 분석 및 변환하는 데 사용됩니다.

  • 주요 특징
  1. 확장성: EMR은 자동으로 컴퓨팅 리소스를 확장하거나 축소하여 데이터 처리 요구사항에 맞게 조정할 수 있습니다. 즉, 데이터의 양이나 복잡성에 따라 클러스터 크기를 유연하게 조절할 수 있습니다.

  2. 비용 효율성: 사용자는 클러스터에서 실행한 작업에 대해서만 비용을 지불하며, 필요하지 않은 시점에는 클러스터를 종료하여 비용을 절감할 수 있습니다. 또한, Amazon EC2 스팟 인스턴스를 활용해 비용을 더욱 절감할 수 있습니다.

  3. 유연성: EMR은 다양한 오픈 소스 도구 및 애플리케이션을 지원하여 데이터 처리와 분석 작업을 유연하게 구성할 수 있습니다. 사용자는 자신이 선호하는 빅데이터 도구를 선택하고 구성하여 작업을 수행할 수 있습니다.

  4. 편리한 데이터 인제스천: EMR은 Amazon S3, Amazon RDS, DynamoDB 등 다른 AWS 데이터 서비스와 쉽게 통합되어 다양한 데이터 소스에서 데이터를 가져오고 처리할 수 있습니다.

  5. 관리형 클러스터: AWS에서 클러스터의 설정, 관리 및 유지보수를 자동으로 처리합니다. 이에 따라 사용자는 클러스터 관리의 부담을 줄이고 데이터 분석 작업에 집중할 수 있습니다.

  6. 보안 및 규정 준수: EMR은 VPC에서의 실행, 다양한 수준의 데이터 암호화, IAM을 통한 접근 제어 등 보안 기능을 제공합니다. 이를 통해 데이터를 안전하게 처리하고 저장할 수 있습니다.

AWS EMR은 데이터 처리 속도를 높이고 분석 업무의 복잡성을 줄이면서 대규모 데이터 워크로드를 효율적으로 처리하는 데 크게 기여합니다. 빅데이터 애널리틱스 요구가 있는 기업이나 개발자에게 유용하며, 데이터 과학, 로그 분석, 금융 분석, 생명 과학 데이터 처리 등의 분야에 적용될 수 있습니다.



Macie


AWS Macie는 Amazon Web Services가 제공하는 보안 서비스로, 사용자의 AWS 환경에서 민감한 데이터를 자동으로 발견하고 보호하는 데 도움을 줍니다. Macie는 기계 학습 및 패턴 매칭 기술을 활용하여 데이터 보안 및 개인정보 보호를 강화하는 데 중점을 둡니다. 주요 기능은 다음과 같습니다:

  1. 민감한 데이터 검색: Macie는 Amazon S3 버킷에 저장된 데이터에서 신용카드 번호, 주민등록번호, 기타 개인정보 식별자(PII) 등 민감한 정보를 자동으로 검색합니다. 이를 통해 조직은 보호해야 할 데이터가 어디에 저장되어 있는지 파악할 수 있습니다.

  2. 데이터 보안 모니터링: Macie는 데이터 보안 및 개인정보 보호와 관련된 활동을 모니터링하고, 비정상적인 또는 잠재적으로 부정적인 활동을 감지하여 알림을 제공합니다. 예를 들어, 개인정보를 포함한 데이터가 갑작스럽게 공개되거나, 예상치 못한 곳에서 접근되는 경우 등을 감지할 수 있습니다.

  3. S3 버킷 보안 및 구성 확인: Macie는 S3 버킷의 보안 설정을 검사하여 잘못된 설정이 없는지 검토합니다. 이를 통해 S3 버킷이 의도하지 않은 공개상태가 되지 않도록 예방할 수 있습니다.

  4. 자동화된 데이터 보호: 조직의 데이터 보안 정책에 따라 Macie의 감지 및 알림 기능을 자동화함으로써 신속하고 효율적인 대응이 가능합니다.

AWS Macie는 특히 대량의 데이터를 다루는 기업이나 개인정보 보호 규정을 준수해야 하는 조직에서 중요한 역할을 합니다. Macie의 자동화된 모니터링 및 분석 기능은 기업이 데이터 보안을 강화하고 규정 준수 요구사항을 충족하는 데 도움을 줍니다.



Load Balancer


AWS에서는 다양한 유형의 로드 밸런서 서비스를 제공하여 애플리케이션 요구 사항에 맞춰 트래픽을 효율적으로 관리할 수 있습니다. 각 로드 밸런서는 특정한 사용 사례에 맞게 설계되어 있습니다. AWS의 주요 로드 밸런서 서비스는 다음과 같습니다.

  1. Elastic Load Balancing (ELB):

    • ELB는 AWS의 기본 로드 밸런싱 서비스로, 세 가지 유형의 로드 밸런서를 제공합니다.
  2. Application Load Balancer (ALB):

    • 계층 7(L7)에서 작동하며, HTTP/HTTPS 요청에 최적화되어 있습니다.
    • URL 경로나 호스트 기반의 라우팅을 지원하여 특정 URL이나 도메인 요청을 다른 백엔드 서비스로 라우팅할 수 있습니다.
    • WebSocket과 HTTP/2를 지원하며, 세션 지우기 기능을 통해 사용자 상태를 유지할 수 있습니다.
    • 컨테이너 서비스(ECS)나 마이크로서비스 아키텍처에 적합합니다.
  3. Network Load Balancer (NLB):

    • 계층 4(L4)에서 작동하며, 전송 계층 프로토콜(TCP, UDP 등) 기반의 트래픽 처리를 담당합니다.
    • 초당 수백만 건의 요청을 처리할 수 있는 성능을 제공하므로, 높은 성능과 낮은 지연 시간이 필요한 애플리케이션에 적합합니다.
    • 고정 IP와 Elastic IP를 미리 할당받아 사용할 수 있습니다.
  4. Gateway Load Balancer:

    • L3/L4 계층에서 작동하며, 네트워크 트래픽의 스케일링, 용량 확장, 네트워크 모니터링 및 방화벽 기능과의 통합을 위해 설계되었습니다.
    • 주로 NAT 게이트웨이, 방화벽, 침입 방지 시스템 등 네트워크 패킷을 기반으로 하는 인프라 구성에 유용합니다.
  5. Classic Load Balancer:

    • 계층 4 및 계층 7에서 모두 작동할 수 있으며, 초기의 기본적인 로드 밸런싱 기능을 제공합니다.
    • AWS에서 오래된 기술이지만, 기존 인프라에서 여전히 사용될 수 있습니다. 그러나 새로운 기능 구현이나 프로젝트에서는 ALB나 NLB로의 이동을 권장합니다.

AWS의 로드 밸런서 서비스는 자동으로 클라우드 스케일과 통합되므로, 사용자는 인프라 유지를 위한 복잡한 설정 없이 필요에 따라 리소스를 자동 확장하여 처리할 수 있습니다. Cross-zone 로드 밸런싱, SSL 종료, 모니터링 및 로깅 기능 등 추가적인 고급 기능도 제공합니다.



CloudFront


AWS CloudFront는 아마존 웹 서비스(Amazon Web Services)에서 제공하는 글로벌 콘텐츠 전송 네트워크(Content Delivery Network, CDN) 서비스입니다. CloudFront는 웹 사이트, API, 동영상 콘텐츠, 소프트웨어 배포 등을 포함한 다양한 웹 콘텐츠를 더 효율적이고 빠르게 사용자에게 전송하도록 돕습니다.

CloudFront의 주요 기능과 특징은 다음과 같습니다.

  1. 글로벌 배포: CloudFront는 전 세계에 위치한 여러 엣지 로케이션(Edge Location)을 사용하여 콘텐츠를 캐시하고 사용자에게 가까운 서버에서 콘텐츠를 전달합니다. 이를 통해 지연 시간을 줄이고 응답 속도를 향상시킵니다.

  2. 안정성 및 내구성: AWS의 글로벌 네트워크를 기반으로 하여 높은 수준의 안정성과 내구성을 제공합니다. 여러 중복 서버를 통해 사용자의 요청을 처리하며, 장애 발생 시 자동으로 다른 서버로 트래픽을 우회시킵니다.

  3. 보안 기능: CloudFront는 AWS WAF(Web Application Firewall) 통합, 전송 계층 보안(TLS) 암호화, 보안 콘텐츠 전송을 위한 다양한 인증 방법을 지원합니다. 또한, DDoS 방어를 위한 AWS Shield와의 통합도 가능합니다.

  4. 저렴한 비용: 사용한 만큼만 비용을 지불하는 유연한 가격 정책이 제공되며, 많은 데이터 전송량을 처리할 경우에도 경제적으로 사용할 수 있습니다.

  5. 동적 및 정적 콘텐츠 전송: CloudFront는 정적 콘텐츠뿐만 아니라 동적 콘텐츠 전송도 최적화하여 처리할 수 있습니다. 캐시를 효율적으로 관리하여 사용자에게 최신 데이터를 전달합니다.

  6. 개발자 도구: AWS Lambda@Edge와 같은 기능을 통해 엣지 로케이션에서의 코드 실행을 지원하여 콘텐츠 개인화, A/B 테스트, 사용자 지정 헤더 관리 등을 구현할 수 있습니다.

  7. 광범위한 통합: AWS의 다른 서비스들과 깊게 통합되어 있어 S3 버킷의 콘텐츠 배포, API Gateway의 API 전송 최적화 등 다양한 AWS 서비스와 함께 사용할 수 있습니다.

CloudFront는 사용자 경험과 성능을 개선하고자 하는 다양한 웹 서비스나 애플리케이션에 적합합니다. 이를 통해 글로벌 사용자들에게 신속하고 안전한 콘텐츠 전송이 가능합니다.


CloudFront 배포(Distribution)는 AWS CloudFront를 통해 콘텐츠를 제공하기 위해 설정하는 구성 요소입니다. 배포는 웹 애플리케이션, 사이트, 또는 콘텐츠의 전송을 위한 설정을 정의하며, CloudFront가 콘텐츠를 어떻게 전달할지를 결정합니다.

CloudFront 배포에는 두 가지 주요 유형이 있습니다.

  1. 웹 배포(Web Distribution):

    • 정적 및 동적 콘텐츠(HTML, CSS, JavaScript 파일, 이미지 및 API 콘텐츠 등)를 제공하는 데 사용됩니다.
    • 웹사이트, API 및 웹 애플리케이션에 적합합니다.
    • HTTPS 프로토콜을 통해 보안 연결을 설정할 수 있으며, 사용자와의 통신을 암호화할 수 있습니다.
  2. RTMP 배포(이미 만료됨):

    • 오디오/비디오 스트리밍을 위한 것이었으며, Adobe Flash RTMP 프로토콜을 사용했습니다.
    • 현재는 극히 드물고, AWS에서 RTMP 배포는 더 이상 권장되지 않습니다.

배포를 설정할 때 다음과 같은 요소를 구성합니다.

  • 기본 오리진(Origin): 콘텐츠가 호스팅된 소스 서버를 지정합니다. 일반적으로 AWS S3 버킷, EC2 인스턴스 또는 비AWS 서버일 수 있습니다.

  • 캐시 행동(Cache Behavior): 콘텐츠 캐싱을 제어하고, 특정 파일 형식이나 경로에 대한 캐시 정책을 설정합니다. 예를 들어, 특정 오리진에 대한 요청이 캐시되거나, 특정 쿠키와 헤더를 사용할 수 있습니다.

  • 도메인 이름 및 SSL/TLS 인증서: 사용자에게 콘텐츠를 제공할 커스텀 도메인을 설정하고, HTTPS를 통한 보안을 위해 SSL/TLS 인증서를 연결합니다.

  • 제한 및 정책: 특정 국가 차단, 사용자 정의 경로의 액세스 제어, 원격 해제 정책 등 다양한 보안 및 접근 제어 정책을 설정합니다.

  • 로그 및 모니터링: 사용량, 요청 및 성능 데이터를 수집하고 모니터링하여 분석할 수 있는 방법을 제공합니다.

이러한 설정을 통해 CloudFront 배포가 글로벌 사용자에게 안전하고 빠르게 콘텐츠를 제공하는 방식을 정의합니다. 배포 구성 후, CloudFront는 사용자와 가장 가까운 엣지 로케이션을 통해 콘텐츠를 캐시하고 제공하여 성능을 최적화합니다.



Global Accelerator


AWS Global Accelerator는 글로벌 사용자에게 애플리케이션을 더 빠르고 안정적으로 제공하기 위한 네트워크 서비스입니다. 이 서비스는 AWS 글로벌 네트워크를 사용하여 애플리케이션 트래픽을 최적화하고 지연 시간을 줄이며, 가용성을 향상시킵니다. Global Accelerator는 특정 AWS 리전(region)에 상주하는 애플리케이션으로의 트래픽을 라우팅하는 데 도움을 줍니다.

AWS Global Accelerator의 주요 기능과 이점은 다음과 같습니다.

  1. 고정된 진입점:

    • Global Accelerator는 두 개의 전역 Anycast IP 주소를 제공합니다. 이 IP 주소는 고유하며, 사용자는 이를 통해 애플리케이션에 접속할 수 있습니다. 이 주소는 변경되지 않으므로, IP 주소 관리의 복잡성을 줄일 수 있습니다.
  2. 경로 최적화:

    • AWS 글로벌 백본 네트워크를 활용하여 사용자의 요청을 가장 빠르고 효율적인 경로로 라우팅합니다. 이를 통해 전송 시간과 네트워크 지연을 최소화합니다.
  3. 페일오버:

    • 애플리케이션이 여러 리전에 걸쳐 배포된 경우, Global Accelerator는 활성화된 상태로 남아 있는 리전으로 자동 페일오버를 제공하여 가용성을 높입니다. 지정된 리전이 불가능할 때 트래픽을 자동으로 건강한 다른 리전으로 전환합니다.
  4. 리전 단위의 트래픽 관리:

    • 트래픽을 특정 리전으로 라우팅하거나, 복잡한 트래픽 제어 규칙을 설정할 수 있습니다. 이를 통해 각 리전의 트래픽을 손쉽게 관리할 수 있습니다.
  5. 건강 상태 검사:

    • Global Accelerator는 리전별로 애플리케이션의 건강 상태를 지속적으로 모니터링하여 트래픽을 안전하고 신뢰할 수 있는 지역으로만 보내도록 합니다.
  6. DDoS 보호:

    • AWS Shield와 통합되어 기본적인 DDoS 공격에 대한 보호 기능을 제공합니다.

AWS Global Accelerator는 전 세계 사용자에게 더 빠르고 안정적인 애플리케이션 경험을 제공해야 하는 상황에서 유용합니다. 특히, 다중 AWS 리전에 걸쳐 애플리케이션을 배포하고, 글로벌 사용자를 대상으로 빠르고 일관된 성능을 보장하려는 기업에게 적합합니다.


AWS Global Accelerator의 엔드포인트(Endpoints)는 최종 사용자 트래픽을 라우팅하기 위해 구성된 대상 리소스를 의미합니다. 엔드포인트는 Global Accelerator가 지원하는 여러 AWS 리소스를 포함할 수 있으며, 각 엔드포인트는 고유한 역할을 수행하면서 최종 애플리케이션을 사용자에게 전달합니다.

Global Accelerator에서 지원하는 엔드포인트 유형은 다음과 같습니다:

  1. Elastic IP 주소:

    • AWS Elastic IP는 고정된 공용 IP 주소로, AWS 환경 내에서 인스턴스에 할당되어 있습니다. Global Accelerator는 이러한 Elastic IP 주소로 트래픽을 라우팅할 수 있습니다.
  2. Elastic Load Balancer(ELB):

    • Application Load Balancer(ALB)Network Load Balancer(NLB)를 포함합니다.
    • Load Balancer를 엔드포인트로 설정함으로써 여러 EC2 인스턴스에 걸친 애플리케이션 트래픽을 효과적으로 분산시킬 수 있습니다. 이는 애플리케이션의 유연성과 확장성을 높이는 데 기여합니다.
  3. EC2 인스턴스:

    • EC2 인스턴스가 직접 엔드포인트로 작동할 수 있습니다. 이를 통해 사용자가 특정 인스턴스에 직접 연결할 수 있도록 설정할 수 있습니다.

Global Accelerator는 이러한 엔드포인트를 통해, 사용자의 트래픽을 가장 적합한 리전의 애플리케이션으로 라우팅합니다. 엔드포인트 그룹(Endpoint Group)은 하나의 리전 내에서 여러 엔드포인트를 포함할 수 있으며, 각각의 엔드포인트는 가중치(Weights)를 부여받아 트래픽 제어 및 분산에 사용됩니다.

Global Accelerator는 각 엔드포인트의 건강 상태를 지속적으로 모니터링하여, 비정상적인 엔드포인트로의 트래픽 전송을 방지합니다. 문제가 발생할 경우, 트래픽은 자동으로 건강한 엔드포인트로 전환됩니다. 이를 통해 높은 가용성과 신뢰성을 유지할 수 있습니다.

엔드포인트 구성은 사용 사례 및 애플리케이션 필요에 따라 다를 수 있으며, 각 엔드포인트를 적절히 관리 및 최적화하여 빠르고 안정적인 사용자 경험을 보장할 수 있습니다.



🤨 AWS SAA 문제
A global company hosts its web application on Amazon EC2 instances behind an Application Load Balancer (ALB). The web application has static data and dynamic data. The company stores its static data in an Amazon S3 bucket. The company wants to improve performance and reduce latency for the static data and dynamic data. The company is using its own domain name registered with Amazon Route 53.
What should a solutions architect do to meet these requirements?
▷ 글로벌 회사는 ALB(Application Load Balancer) 뒤의 Amazon EC2 인스턴스에서 웹 애플리케이션을 호스팅합니다. 웹 애플리케이션에는 정적 데이터와 동적 데이터가 있습니다. 회사는 정적 데이터를 Amazon S3 버킷에 저장합니다. 회사는 정적 데이터 및 동적 데이터의 성능을 개선하고 대기 시간을 줄이기를 원합니다. 회사는 Amazon Route 53에 등록된 자체 도메인 이름을 사용하고 있습니다. 솔루션 설계자는 이러한 요구 사항을 충족하기 위해 무엇을 해야 합니까?


A. Create an Amazon CloudFront distribution that has the S3 bucket and the ALB as origins. Configure Route 53 to route traffic to the CloudFront distribution.
▷ S3 버킷과 ALB를 오리진으로 포함하는 Amazon CloudFront 배포를 생성합니다. CloudFront 배포로 트래픽을 라우팅하도록 Route 53을 구성합니다.
B.Create an Amazon CloudFront distribution that has the ALB as an origin. Create an AWS Global Accelerator standard accelerator that has the S3 bucket as an endpoint Configure Route 53 to route traffic to the CloudFront distribution.
▷ ALB가 오리진인 Amazon CloudFront 배포를 생성합니다. S3 버킷을 엔드포인트로 포함하는 AWS Global Accelerator 표준 액셀러레이터를 생성합니다. CloudFront 배포로 트래픽을 라우팅하도록 Route 53을 구성합니다.
C. Create an Amazon CloudFront distribution that has the S3 bucket as an origin. Create an AWS Global Accelerator standard accelerator that has the ALB and the CloudFront distribution as endpoints. Create a custom domain name that points to the accelerator DNS name. Use the custom domain name as an endpoint for the web application.
▷ S3 버킷을 오리진으로 포함하는 Amazon CloudFront 배포를 생성합니다. ALB 및 CloudFront 배포를 엔드포인트로 포함하는 AWS Global Accelerator 표준 액셀러레이터를 생성합니다. 가속기 DNS 이름을 가리키는 사용자 지정 도메인 이름을 만듭니다. 사용자 지정 도메인 이름을 웹 애플리케이션의 끝점으로 사용합니다.
D. Create an Amazon CloudFront distribution that has the ALB as an origin. Create an AWS Global Accelerator standard accelerator that has the S3 bucket as an endpoint. Create two domain names. Point one domain name to the CloudFront DNS name for dynamic content. Point the other domain name to the accelerator DNS name for static content. Use the domain names as endpoints for the web application.
▷ ALB가 오리진인 Amazon CloudFront 배포를 생성합니다. S3 버킷을 엔드포인트로 포함하는 AWS Global Accelerator 표준 액셀러레이터를 생성합니다. 두 개의 도메인 이름을 만듭니다. 하나의 도메인 이름이 동적 콘텐츠의 CloudFront DNS 이름을 가리키도록 합니다. 다른 도메인 이름이 정적 콘텐츠에 대한 가속기 DNS 이름을 가리키도록 합니다. 도메인 이름을 웹 애플리케이션의 끝점으로 사용합니다.

▶정답
A. Create an Amazon CloudFront distribution that has the S3 bucket and the ALB as origins. Configure Route 53 to route traffic to the CloudFront distribution.
▷ S3 버킷과 ALB를 오리진으로 포함하는 Amazon CloudFront 배포를 생성합니다. CloudFront 배포로 트래픽을 라우팅하도록 Route 53을 구성합니다.

  • 여러 오리진에서 다양한 유형의 요청을 제공하도록 단일 CloudFront 웹 배포를 구성할 수 있다.
    • 예를 들어 웹 사이트에서 Amazon Simple Storage Service(Amazon S3) 버킷의 정적 콘텐츠와 로드 밸런서의 동적 콘텐츠를 제공할 수 있다.
  • CloudFront 웹 배포에서 두 가지 유형의 콘텐츠를 모두 제공할 수 있으며 다음 단계에 따라 S3 버킷의 정적 콘텐츠와 로드 밸런서의 동적 콘텐츠를 제공하도록 CloudFront 웹 배포를 구성한다.
  • 배포를 만들 때 CloudFront가 파일에 대한 요청을 보내는 원본을 지정한다.
    • CloudFront에서 여러 원본을 사용할 수 있습니다. 예를 들어 Amazon S3 버킷, MediaStore 컨테이너, MediaPackage 채널, Application Load Balancer 또는 AWS Lambda 함수 URL을 사용할 수 있습니다.
    • 원본이 하나 이상의 Amazon EC2 인스턴스에서 호스트되는 하나 이상의 HTTP 서버(웹 서버)인 경우 Application Load Balancer를 사용하여 인스턴스에 트래픽을 분산할 수 있습니다.

▶오답

  • AWS Global Accelerator의 표준 액셀러레이터용 엔드포인트
    : AWS Global Accelerator의 표준 액셀러레이터에 대한 엔드포인트는 Network Load Balancer, Application Load Balancer, Amazon EC2 인스턴스 또는 Elastic IP 주소일 수 있습니다. 표준 액셀러레이터를 사용하면 고정 IP 주소가 클라이언트의 단일 접점 역할을 하고 Global Accelerator는 들어오는 트래픽을 정상적인 엔드포인트에 분산시킵니다. Global Accelerator는 끝점의 끝점 그룹이 속한 수신기에 대해 지정한 포트(또는 포트 범위)를 사용하여 끝점으로 트래픽을 보냅니다.
    → AWS Accelerator의 엔드포인트로 CloudFront나 S3가 될 수 없다.



Cost Explorer vs Bugets


AWS Cost Explorer


  1. 목적: AWS Cost Explorer는 주로 비용 및 사용 패턴을 시각화하고 분석하는 데 중점을 둡니다.

  2. 기능

    • 과거 비용 및 사용 내역 분석

    • 비용 추세 및 사용 패턴 시각화

    • 비용 예측 기능으로 미래 비용 예상

    • 서비스별, 태그별, 계정별 등 다양한 필터링 옵션 제공

  3. 사용 사례: 정기적으로 사용하면서 전체 비용 및 사용에 대한 인사이트를 얻고, 장기적인 비용 관리 및 최적화 전략을 수립하는 데 사용됩니다.


AWS Budgets


  1. 목적: AWS Budgets는 특정 비용 목표를 설정하고, 실제 지출이 그 목표에 근접하거나 초과하려고 할 때 알림을 제공하는 데 중점을 둡니다.

  2. 기능

    • 예산 설정 및 지출 추적

    • 특정 사용량, 비용 또는 예약 사용률에 대한 임계값 설정

    • 목표 도달 시 이메일 및 Amazon SNS 알림 제공

    • 다양한 시간 간격(월별, 분기별 등)으로 예산 관리 가능

  3. 사용 사례: 특정 비용 목표를 모니터링하고 초과 지출을 방지하기 위해 경고 시스템을 구현하는 데 사용됩니다. 이를 통해 사용자 및 팀이 예산 내에서 자원을 효과적으로 활용할 수 있도록 돕습니다.


요약하자면, AWS Cost Explorer는 비용 및 사용 분석 도구로서 전반적인 인사이트 제공에 초점을 맞추고 있는 반면, AWS Budgets는 예산 설정과 경고 알림에 중점을 두어 비용 관리를 보다 구체적으로 하고 초과 지출을 방지하는 역할을 합니다. 두 도구는 각각의 기능을 보완하며 함께 사용하면 AWS 비용 관리에 큰 도움이 될 수 있습니다.



ENI(Elastic Network Interface)


AWS ENI(Elastic Network Interface)는 Amazon Web Services(AWS)에서 제공하는 서비스 중 하나로, 가상 네트워크에서 사용할 수 있는 가상 네트워크 인터페이스를 의미합니다. ENI는 Elastic Compute Cloud(EC2) 인스턴스에 연결하여 추가 네트워크 인터페이스를 제공할 수 있는 기능을 갖추고 있어, 다양한 네트워크 및 보안 활용 사례에 사용할 수 있습니다.

주요 기능 및 활용 사례는 다음과 같습니다.

  1. 다중 IP 주소: ENI는 단일 인스턴스에 여러 개의 공용 및 프라이빗 IP 주소를 할당할 수 있게 해줍니다. 이를 통해 인스턴스가 여러 네트워크 역할을 수행할 수 있습니다.

  2. 네트워크/보안 관리: 서로 다른 보안 그룹 및 서브넷 설정을 통해 네트워크 트래픽을 세밀하게 관리할 수 있습니다. ENI를 사용하면 특정 네트워크 및 보안 요구 사항에 맞춰 네트워크 소통을 구성할 수 있습니다.

  3. 고가용성과 내결함성: ENI를 통해 잘못된 네트워크 구성을 격리하고, 네트워크 인터페이스 장애 시 인스턴스를 빠르게 교체할 수 있습니다.

  4. 이동성: ENI는 인스턴스 간에 쉽게 이동할 수 있으며, 이를 통해 네트워크 구성을 변경하지 않고도 탄력적으로 인프라를 조정할 수 있습니다.

  5. 분리된 네트워크 환경: 애플리케이션의 네트워크 트래픽이 명확하게 분리되고 관리될 수 있도록 여러 개의 ENI를 설정하여 서로 다른 네트워크를 정의할 수 있습니다.

ENI는 특히 고급 네트워킹 설정이 필요한 복잡한 AWS 환경에서 유용하며, 네트워크 구성의 유연성과 확장성을 제공하여, 다양한 아키텍처 요구 사항을 충족시킬 수 있습니다.



AWS ENI(Elastic Network Interface)와 EFS(Elastic File System)를 함께 사용


AWS ENI(Elastic Network Interface)와 EFS(Elastic File System)를 함께 사용하는 경우는 주로 고가용성과 신뢰성이 요구되는 네트워크 및 파일 스토리지 환경에서 발생합니다. 이는 주로 여러 EC2 인스턴스가 같은 파일 시스템에 접근해야 할 때 유용합니다. 여기서는 ENI와 EFS를 연동해서 사용하는 예시를 설명하겠습니다.


  • 시나리오

    • 고가용성 웹 애플리케이션이 여러 EC2 인스턴스에 걸쳐 실행되고 있으며, 모든 인스턴스가 공유 파일 시스템을 필요로 합니다. 이 파일 시스템은 웹 애플리케이션의 데이터를 저장하는 데 사용됩니다. ENI를 활용하여 네트워킹을 효율적으로 관리하고, EFS를 통해 파일 공유를 설정합니다.

  • 구성 단계
  1. VPC 및 서브넷 설정:

    • 웹 애플리케이션이 배포될 VPC(Virtual Private Cloud)와 해당 서브넷을 설정합니다.
  2. ENI 설정:

    • 각 EC2 인스턴스에 하나 이상의 ENI를 추가합니다. ENI를 활용하여 다양한 서브넷 또는 보안 그룹 설정을 통해 네트워크 트래픽을 분리하거나 보안을 강화할 수 있습니다.
  3. EFS 파일 시스템 생성:

    • AWS Management Console에서 EFS 파일 시스템을 생성합니다. 이때 파일 시스템이 존재할 VPC와 서브넷을 지정합니다.
  4. EFS 마운트 대상 설정:

    • EFS 파일 시스템을 각 서브넷에서 접근 가능하도록 마운트 대상을 생성합니다. 각 EC2 인스턴스가 실행되는 서브넷에 EFS 마운트 대상을 설정해야 합니다.
  5. EC2 인스턴스 설정:

    • 각 EC2 인스턴스에서 EFS 파일 시스템을 마운트합니다. 이를 위해 인스턴스 내부에서 mount 명령어를 사용하거나 mount.efs 도구를 사용할 수 있습니다.
  1. 보안 그룹 및 네트워크 ACL 설정:
    • ENI와 EFS의 사용을 위한 적절한 보안 그룹 및 네트워크 ACL 설정을 합니다. NFS 트래픽(포트 2049)을 허용해야 합니다.

이 환경에서 ENI는 여러 네트워크 인터페이스를 설정하여 애플리케이션 트래픽을 효율적으로 관리하게 합니다. EFS는 모든 인스턴스가 동일한 파일 데이터를 실시간으로 읽고 쓸 수 있도록 지원합니다. 이렇게 구성하면 애플리케이션이 확장성 있고 신뢰성이 높은 환경에서 실행될 수 있습니다.

이 구성을 통해, 애플리케이션의 고가용성을 보장하면서도 네트워크 및 파일 시스템 자원을 효율적으로 관리할 수 있습니다.

profile
For the sake of someone who studies computer science

0개의 댓글