아마존 웹 서비스(AWS) 주요 서비스 찍먹하기

이솔·2021년 10월 19일
2

AWS 서비스

목록 보기
1/3
post-thumbnail

1. 아마존 웹서비스(AWS)란?

AWS(Amazon Web Service)

아마존 닷컴에서 개발한 클라우드 컴퓨팅 플랫폼이다.
네트워킹을 기반으로 가상 컴퓨터, 스토리지, 네트워크 인프라 등 다양한 서비스를 제공하고 있다.

2. 클라우드 컴퓨팅(Cloud Computing)

클라우드 컴퓨팅?

: 사용자의 직접적인 활발한 관리 없이 특히, 데이터 스토리지(클라우드 스토리지)와 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요 시 바로 제공(on-demand availability)하는 것

-> 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술

클라우드 서비스의 종류

클라우드 서비스의 종류는 기존의 전통적인 관리 영역에서 사용자에게 얼마만큼의 서비스를 제공하는지에 따라 나뉜다.

- IaaS(Infrastructure-as-a-Service,아이아스)

IaaS는 고객에게 서버, 네트워크, OS, 스토리지를 가상화하여 제공하고 관리한다.

IaaS의 고객들은 서버와 스토리지를 접근할 수 있지만 사실상 클라우드에 있는 가상 데이터 센터를 통해 리소스를 전달받는 형태이다. IaaS는 기존의 데이터센터에서 제공받던 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 수정이 필요한 경우 기존의 방식에 비해 훨씬 빠른 대응이 가능하다.

IaaS는 단순히 서버 등의 자원을 제공해주면서 사용자가 디바이스에 제약없이 데이터에 접근할 수 있도록 해준다.
대표적인 IasS의 예로 AWS-EC2, VM웨어 등이있다.

- PaaS(Platform-as-a-Service)

PasS는 고객에게 OS, 미들웨어, 런타임과 같은 소프트웨어 작성을 위한 플랫폼을 가상화하여 제공하고 관리한다. 이 가상화된 플랫폼은 웹을 통해 제공되며 응용 프로그램 개발자는 운영체제, 소프트에어 업데이트, 저장소 또는 인프라에 관리없이 하는 비용이나 복잡성없이 소프트웨어 개발에 집중할 수 있다.

PaaS를 사용하면 기업에서는 특수 소프트웨어 구성 요소를 사용하여 PaaS에 내장된 응용 프로스램을 설계하고 만들 수 있다. 이러한 응용 프로그램 또는 미들웨어는 특정 클라우드 특성을 채택할 때 확장 가능하고 가용성이 높다.

단, PasS는 특정 플랫폼 서비스에 종속될 수 있다는 단점이 있다.
대표적인 PasS의 예로 구글-APP엔진, Heroku, AWS- CodeDeploy, amplify,ECS 등이 있다.

- SaaS(Software-as-a-Service)

SaaS는 고객을 대신하여 소프트웨어와 데이터를 제공하고 관리한다. 패키지 또는 On-premise 방식인 기존의 소프트웨어 전달 방식과 다르게 SaaS는 개별 컴퓨터에 응용 프로그램을 다운로드하고 설치할 필요가 없다. SaaS를 통해 서비스를 공급하는 업체는 데이터, 미들웨어, 서버 및 스토리지와 같은 모든 잠재적인 기술적 문제를 관리하기 때문에 고객은 유지 보수 및 자원을 간소화하면서 비즈니스에 집중할 수 있다.

다른 목표를 충족하기 위해 비즈니스가 하드웨어/소프트웨어 및 인력에 드는 IT 운용 비용을 재할당할 수 있게 한다. 게다가 중앙 관리되는 애플리케이션들을 통해 사용자가 새로운 소프트웨어를 설치하지 않고도 업데이트를 출시할 수 있다.

SaaS의 단점은 사용자 데이터를 클라우드 제공자의 서버에 저장하는 점에서 비롯된다. 그 결과 데이터에 대해 인증되지 않은 접근이 있을 가능성이 있다.

대표적인 SasS의 예로 네이버-네이버 클라우드, 드롭박스, 구글-구글 문서 등이 있다.

+ 서버리스 컴퓨팅

서버리스 컴퓨팅은 클라우드 컴퓨팅 코드 실행 모델의 하나로, 클라우드 제공자가 서비스 요청의 필요에 따라 가상 머신을 시작하고 중단하는 일을 온전히 관리하며 시간 당, 가상 머신 당 개념이 아닌 요청 충족에 필요한 자원의 추상적인 측정에 의해 과금된다. "서버리스 컴퓨팅"이라는 이름에도 불구하고 실제로 서버 없는 코드의 실행은 수반되지 않는다. 서버리스 컴퓨팅이라는 이름이 붙여진 이유는 시스템을 소유하는 사업체나 사람이 백엔드 코드를 실행하기 위해 서버나 가상 머신을 구매, 임대, 예비할 필요가 없기 때문이다.

서버리스 컴퓨팅에는 두 가지 주요 방법은 있다.

  • BAAS (Backed-as-a-Service) : 개발 시 요구되는 복잡한 백엔드 기능들을 개발자가 직접 개발하지 않고, 클라우드 공급자가 제공하는 서비스를 이용해 쉽고 안정적으로 구현하는 것.
  • FAAS (Function-as-a-service) : 개발자가 사용자 정의 서버 측 로직을 작성하지만 클라우드 제공 업첵 관리를 전다마는 서버 컨테이너에서 실행되는 서비스로서의 기능.

대표적인 서버리스 컴퓨팅의 예로 AWS-lamda 등이 있다.

참고로 이러한 클라우드 컴퓨팅을 지원해주는 플랫폼은 대표적으로 3사가 있다.

  • Amazon - AWS
  • Microsoft - Azure
  • Google - Google Cloud


AWS에서는 위와 같은 클라우드 컴퓨팅들을 모두 지원하고, 사용자에게 알맞는 컴퓨팅 서비스를 사용할 수 있도록 제공하고 있다.

3. AWS 주요 서비스

Server

1. EC2(Elastic Compute Cloud)

: 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스

  • 탄력적인 웹 규모 컴퓨팅(Auto Scailing)
  • 유연한 클라우드 호스팅 서비스
    1. 다양한 OS 서버
    1. 메모리, CPU, 스토리지, 부팅 파티션 선택
  • 통합
    1. Storage, RDS, VCP 등과 통합 가능
  • 안정성
  • 보안
    1. VPC와 함께 리소스 보안성 및 강력한 네트워킹 기능 제공

+ Auto Scailing

: 애플리케이션 가용성을 유지하는데 도움을 준다. 사용자가 정의한 조건에 따라 자동적으로 EC2 용량을 급격하게 확장 또는 축소할 수 있다. 서비스의 수요가 급증할 때는 인스턴스 수를 자동으로 늘려 성능을 유지하고, 잠잠해지면 용량을 줄여 비용을 절감 할 수 있다.

2. Lamda

Run code without thinking about servers. Pay for only the compute time you consume.

AWS Lambda를 사용하면 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않는다.
Lambda에서는 사실상 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행할 수 있다.

  • AWS 서비스와의 쉬운 확장가능성
  • Amazon CloudWatch를 통한 모니터링 및 자체적인 로깅 등 다양한 서비스 제공
  • Automatic Scaling
  • Lambda Edge를 통한 사용자와 가까운 location의 서버에서 실행

3. VPC(Virtual Private Cloud)

: 사용자가 정의하는 가상의 네트워크
VPC를 통해 인스턴스가 속하는 네트워크를 구분하여 각 네트워크에 맞는 설정 부여 가능

  • 다중 연결 옵션
    1. 공개/비공개 설정 가능
    2. VCP들 간의 연결 가능
    3. S3 및 다양한 VPC 엔드포인트를 통해 요청 및 사용자 제어 가능
  • 보안
    1. In-Bound, Out-Bound 필터링 사용 가능

Storage

1. S3(Simple Storage Service)

:확장성,데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스.
즉, 파일 서버의 역할을 한다.

  • 높은 안정성 및 확장성
  • 보안 및 규정 준수 기능
  • 유연한 관리
  • 쿼리 지원

2. EBS(Elastic Block Store)

: EC2 instance 에 직접 붙혀서 사용하는 볼륨형 스토리지. (일종의 하드디스크)
Root EBS볼륨은 OS가 포함되어 있기 때문에 각 OS 마다 최소 용량이 정해져 있다.

  • 필요에 따라서 즉시 생성하고, 제거 가능
  • 내부적으로 데이터를 실시간 복제하고 있기 때문에 하드디스크에 비해서 데이터를 잃어버릴 확률이 현저히 낮음.
  • 스냅샷 기능을 제공해서 EBS의 현재 상태 그대로 보존 가능
  • CloudWatch를 통해서 EBS 모니터링
  • EC2 인스턴스를 제거해도 EBS는 독립적이기 때문에 데이터 유지 가능

DataBase

1. RDS

: 관리형 관계형 데이터베이스 서비스로서, 고객이 선택할 수 있도록 Amazon Aurora, MySQL, MariaDB, Oracle, Microsoft SQL Server, PostgreSQL과 같은 6개의 익숙한 데이터베이스 엔진 제공

  • 사용 편의성
  • 높은 성능 및 확장성
  • 가용성 및 내구성
  • 데이터베이스 스냅샷
  • 보안

2. DynamoDB

: 규모와 관계없이 10밀리초 미만의 지연 시간이 일관되게 요구되는 모든 애플리케이션을 위한 빠르고 유연한 NoSQL 데이터베이스 서비스

  • DynamoDb Accelerator(DAX)
    1.Amazon DynamoDB Accelerator(DAX)는 DynamoDB를 위한 가용성이 뛰어난 완전관리형 인 메모리 캐시로서, 초당 수백만 개의 요청에서도 밀리초에서 마이크로초로 최대 10배 개선된 성능을 제공
  • 문서 데이터 모델 지원
  • 키-값(Key-Value) 데이터 모델 지원
  • 원활한 확장

3. RedShift

: PostgreSQL 기반 속도가 빠른 완전관리형 데이터 웨어하우스.

  • Massive Parallel Processing (대량 병렬 처리) 사용
    1. SQL 작업 병렬처리, 분산하여 사용 가능한 리소스를 모두 활용 가능
  • Columnar data storage
  • 자동 백업
  • 빠른 복원

4. AuroraDB

: MySQL 및 PostgreSQL 호환 관계형 데이터베이스 엔진

  • MySQL보다 5배 뛰어난 성능과 상용 데이터베이스의 보안성, 가용성 및 안정성을 1/10의 비용으로 제공. (비용은 RDS보다 약 20% 비쌈)

  • 성능 향상

  • 짧은 복제 지연

  • 향상된 스토리지

  • 스토리지 보안 강화

Management

1. Cloud Watch

: AWS 클라우드 리소스와 AWS에서 실행되는 애플리케이션을 위한 모니터링 서비스
지표를 수집 및 추적하고, 로그 파일을 수집 및 모니터링하며, 경보를 설정하고, AWS 리소스 변경에 자동으로 대응 가능

  • Amazon EC2 모니터링
    1.추가 비용 없이 Amazon EC2 인스턴스의 CPU 사용률, 데이터 전송, 디스크 사용 활동에 대한 지표를 확인가능
    2. 추가 비용을 지불하는 경우 CloudWatch는 더 높은 해상도와 지표 집계를 통해 EC2 인스턴스에 대한 세부 모니터링을 제공
  • 다른 AWS 리소스 모니터링
    1. Amazon DynamoDB 테이블, Amazon EBS 볼륨, Amazon RDS DB 인스턴스, Amazon Elastic MapReduce 작업 흐름, Elastic Load Balancer, Amazon SQS 대기열, Amazon SNS 주제 등
  • 로그 모니터링 및 저장
  • 경보 설정
  • 그래프 및 통계 보기

Analysis

1. Kinesis

: 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석
비디오/데이터 스트림 캡처,처리 및 저장 -> 데이터 스트림을 AWS 데이터 스토어로 로드 -> SQL로 데이터 스트림 분석

  • 실시간
  • 완전관리형
  • 확장성

예시 : 앰버 경고 시스템

4. AWS 아키텍처 설계 예시

여기까지 오면 아키텍처를 조금이나마 읽을 수 있게 되었다. 아래 예시를 살펴보자!

  • SM 엔터테인먼트 인프라 아키텍쳐

    에브리싱이라는 앱에서의 30,000개의 곡을 관리하기 위해 AWS 인프라를 사용한 사례이다.
    흐름에 집중해보면 매니저가 관리하는 시스템으로 파일과 관련 정보를 올리면, 관련 정보는 RDS에 저장되고, 파일은 S3에 저장된다.
    앱을 이용하는 사용자가 정보를 요청하면 EC2에서 RDS와 S3에 정보를 요청하고, 각각의 정보를 사용자에게 전달한다. 이때 파일같은 경우,사용자에게 지리적으로 가까운 파일들을 CloudFront라는 캐싱 서버를 사용하면서 더 빠르게 전송할 수 있다.
  • 조이시티 인프라 아키텍쳐

5. 결론

AWS는 생각하는 것 이상으로 많은 서비스들을 제공하고 있다. 여러가지 서비스에 대해 알아보면서 본인에 서비스에 맞는 활용 방향을 알아보고, 더 나아가 AWS라는 대기업이 신기술이 접목된 여러가지 서비스를 빠르게 제공하면서 만드는 IT의 트렌드와 방향성에 대해서도 생각해보면 좋을 것 같다.

  • 더 알아보면 좋을 것들
  1. 개발자들에게 도움이 될 만한 9가지 기본 아마존 웹서버
  2. HA, FT이란?
profile
코딩왕 지망생

0개의 댓글