이번 프로젝트에서 사용할 AWS 서비스에 대해 알아보자!
도서 '그림과 작동 원리로 쉽게 이해하는 AWS 구조와 서비스'를 참고해 정리한 포스팅이다.

컴퓨팅 서비스

용어 정리

  • 온프레미스(on-premise) : 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경. 기기 구매나 인건비 등과 같은 초기 투자 비용이 크고 구축에 시간이 소요돼 준비 기간이 길다는 단점이 있지만, 자유롭게 이용 가능하고 형태에 맞게 자유롭게 구성할 수 있다는 장점이 있음

  • 클라우드(cloud) : 클라우드 서비스 제공가작 서버 등의 기기를 준비하고 거기에 구축된 가상 서버나 응용 프로그램 등을 사용자에게 제공하여 이용료를 받는 형태

    서비스 제공 형태에 따른 클라우드 분류

    • SaaS(Software as a Service) : 응용 프로그램을 서비스로 제공하는 형태
      • e.g: Gmail, Office365, Zoom 등
    • PaaS(Platform as a Service) : 응용 프로그램을 만들기 위한 기능을 서비스로 제공. 클라우드 서비스 제공자가 OS 및 미들웨어까지 관리하고 필수 기능만 사용자에게 제공
      • e.g: RDS, DynamoDB, Lambda 등
    • IaaS(Infrastructure as a Service) : 서버 및 네트워크 기능만 제공
      • e.g: EC2, VPC, EBS 등
  • 가상화 : 사용자가 사용하고 싶은 사양으로 서버 선택 시 해당 사양의 서버를 가상으로 생성해 사용할 때 이용하는 기술. 가상 서버는 OS와 미들웨어, 응용 프로그램을 포함하고 있음.

  • 서버리스(serverless) : 서비스가 이용될 때만 서버를 가동하는 방식. 사용자가 이용이 끝나면 서버는 삭제돼 서버 생성에 약간의 대기 시간이 발생하는 단점이 있지만, 서버가 이용된 시간만큼만 이용료가 발생한다는 장점이 있음.

  • 컨테이너(container) : 어떤 응용 프로그램을 실행하지 미리 정의해둔 파일인 컨테이너 이미지를 바탕으로 실행. 응용 프로그램(의존성 패키지, 실행파일)만 포함돼 있음.

  • 컨테이너 오케스트레이터 : 컨테이너가 비정상적으로 종료되거나 증가 감소 등의 관리를 자동화해 운영 부하를 줄일 수 있는 도구


Lambda

서버리스 컴퓨팅 서비스로 AWS에서 서비스가 실행될 인프라를 관리해 사용자가 관리할 서버가 없다.

장점

  • 보안: AWS에서 OS와 미들웨어 등의 기반 시스템을 모두 관리해 장애와 보안 패치 등도 해주므로 Lambda에 사용할 코드만 관리하면 됨
  • 비용: 코드가 실행될 때만 요금이 부과되므로 비용 절감 가능
  • 가용성: 복수의 가용 영역에서 실행되므로 사용자가 설정하지 않아도 고가용성, 장애 대응성이 유지됨
  • 확장성: 동시에 다수의 처리를 해야 하는 경우 자동으로 AWS가 관리하는 처리용 인스턴스가 시간되면서 확장됨

스토리지 서비스


네트워크 및 콘텐츠 전송 서비스

CloudFront

콘텐츠 전달 네트워크(CDN)서비스이다. CDN이란 동영상 파일과 같은 대용량 디지털 콘텐츠를 인터넷에서 효율적으로 사용자에게 전달하기 위한 네트워크이다.

장점

  • 데용량 콘텐츠의 빠른 배포: 데이터 본체를 저장하고 있는 원본 서버(Origin Server)에서 그 데이터의 복사본(캐시)을 전 세계에 존재하는 캐시 서버에 저장 후 사용자의 위치를 파악해 자동으로 가장 가까운 곳에 있는 캐시 서버로 연결해 사용자가 빠르게 데이터 취득 가능
  • 보안 향상: 자동으로 통신의 SSL/TLS 암호화를 수행. AWS Shield라는 무료 DDoS 보호 서비스도 자동으로 적용돼 DDoS 공격에 대처 가능
  • 가용성 향상: 전 세계에 엣지 로케이션을 가지고 있으며 대상 데이터의 캐시를 저장하고 있어, 원본 서버에서 장애가 발생했을 때의 동작도 설정 가능함에 따라 더욱 유연한 서비스 제공 가능

데이터베이스 서비스

RDS

관계형 데이터베이스를 제공하는 서비스로, OS나 데이터베이스 엔진(MySQL, Oracle, MariaDB, PostgreSQL, Aurora 등)의 관리는 AWS 측에서 수행

DynamoDB

key-value 형 데이터를 저장하는 데이터베이스로, 내부적으로 프라이머리 키 검색을 쉽게 할 수 있게 데이터를 정리해 보존한다.

특징

  • 서버리스: 사용자는 레코드의 집합체인 ‘테이블’을 생성할 뿐 테이블 조작 요청은 모두 DynamoDB가 처리하기 때문에 사용자가 서버 관리를 하지 않아도 됨. 테이블 이름과 프라이머리 키만 지정하면 바로 이용 가능
  • 실시간 백업: 특정 시점 복구(PITR) 기능을 활성화하면 지난 35일 내 임의의 시점으로 테이블 데이터를 되돌릴 수 있어 갑작스러운 데이터 손실에도 대응 가능. 임의의 시점을 지정해 백업 취득 가능하며 취득한 백업은 무기한으로 보관 가능해 특정 시점의 데이터를 보존하고자 할 때 유용
  • 빠른 속도: 하루에 10조 건 이상, 초당 2,000만 건 이사으이 요총을 고속(0.01초 단위)으로 처리 가능

보안 관련 서비스