AWS에는 어떤 서비스들이 있을까?

아카·2020년 11월 28일
0

AWS

목록 보기
2/6

이번 글에서는, AWS에서 자주 쓰이는 서비스들을 나열하고, 앞서 나열한 서비스 외에도 유용해 보이는 서비스들도 정리해보도록 하겠습니다.

목차

컴퓨팅

Elastic Cloud Computer(EC2)

서버를 구입할 필요 없이, 서버가 필요할 때마다 클라우드 내에 가상 서버를 생성해 사용할 수 있는 서비스입니다. 개인적으로는 기업들이 클라우드를 사용하는 가장 큰 이유라고 생각합니다. 클라우드에 가상의 서버가 생성되고 사용되기 때문에, 사용이 끝난 서버를 종료하여 삭제할 수 있습니다. 서버의 사양 등은 클라우드가 허락하는 한도 내에서 커스텀이 가능하고, 제약 조건이 그렇게 많지 않기 때문에 웹 서버 등의 특수한 서버도 EC2에 가상 서버로 생성하여 사용할 수 있습니다.

AWS Lambda

2014년부터 프로그램 개발 트렌드가 모놀리식 구조에서 마이크로서비스로 전환되기 시작하면서 대두된 서비스입니다. 서버리스 컴퓨팅 서비스이기 때문에, 요청이 들어오지 않는다면 과금이 되지 않는 특성을 지니고 있습니다. EC2같은 경우에는 사용자의 요청이 들어오든 들어오지 않든 요청이 발생할 것을 대비해 인스턴스를 켜 놔야 하지만, Lambda의 경우에는 사용자의 요청이 발생한 그 순간부터 Lambda가 코드를 실행하기 때문에 EC2에 비해 저렴해질 수 있습니다.

  • 다만, 사용자의 요청이 발생한 그 순간부터 Lambda가 작동을 시작하기 때문에, EC2보다 반응 속도 면에서 손해를 보게 될 수도 있습니다. 이를 콜드 스타트라고 합니다.

AWS Batch

사용자의 요청이 발생하면, EC2를 가동해 코드를 실행해주는 서비스입니다. Lambda도 비슷한 일을 할 수는 있지만, Lambda에는 여러가지 제약 조건(실행 시간 제한, 메모리 제한 등)이 있기 때문에 Lambda를 사용할 수 없는 작업에 사용됩니다. 주로 무거운 배치 컴퓨팅 작업을 실행하는 용도로 사용됩니다.

  • Lambda와 마찬가지로, 사용자의 요청이 발생한 순간부터 작동을 시작하기 때문에, 사용자의 요청 후 코드 실행까지 시간이 오래 걸리기도 합니다.

스토리지(저장소)

S3

파일을 저장하는 데이터 저장소입니다. 기본적으로 무제한 용량이고, 사용한 만큼만 비용을 지불합니다. 웹에서 바로 접근할 수도 있고, EC2에 연결해서 사용할 수도 있습니다. 웹으로 접근할 수 있는 장점이 있기 때문에 파일을 배포할 때도 사용할 수 있습니다. 다만 파일을 저장하는 비용 이외에, 파일을 다운로드/업로드 하는 데도 비용이 청구 될 수 있습니다. 다만 같은 리전(지역)에 있는 서비스끼리는 전송 비용이 무료입니다. 이를 이용해, Lambda와 S3를 이용해 저렴하게 서비스를 운영할 수도 있습니다. 주로 단독으로 사용되기 보다는 여러 AWS 서비스들과 통합되어 사용됩니다.

AWS는 클라우드 데이터 센터를 리전(지역) 단위로 묶습니다.
예) 서울 리전, 오하이오 리전, 캐나다 리전 등

또다른 특징으로는, 스토리지 옵션을 지정할 수 있어 자주 접근하지 않는 데이터와 자주 사용되는 데이터를 구분해서 관리할 수 있다는 것입니다. 자주 접근하지 않는 데이터는, Glacier라는 옵션을 사용해 저장 비용을 S3보다 저렴하게 할 수 있습니다.

  • Glacier는 저장 비용이 저렴해 주로 자주 사용하지 않는 데이터(백업 데이터)등에 사용됩니다. 다만, 자주 접근하지 않을 데이터에만 사용해야 합니다. 저장 비용은 저렴하지만, 대신 다른 단점(조회에도 비용이 과금되고, 시간이 소요된다)이 있기 때문입니다.

Amazon CloudFront

AWS의 CDN입니다. 정확히 말하면 S3와 달리 컨텐츠 전송 네트워크 서비스지만, 편의상 여기에 서술합니다. 제공해야 하는 컨텐츠가 인증된 사용자들에게 빠른 속도로 제공해야 할 경우, S3를 거쳐 데이터를 받아오는 시간보다 더 빠르게 데이터를 전송할 수 있도록 합니다. 일종의 캐시 역할을 수행하는 서비스라고 이해하면 됩니다.

데이터베이스

Amazon RDS

Amazon이 제공하는, 관계형 데이터베이스 서비스입니다. Aurora, PostgreSQL, MySQL등을 지원하며, 세세한 부분의 관리를 사용자가 하는 것이 아니라 Amazon이 관리하게 할 수 있습니다.

Amazon DynamoDB

Amazon이 제공하는, 비관계형(NoSQL) 데이터베이스 서버입니다.

Amazon ElasticCache

Amazon이 제공하는, 인메모리 캐시 서비스입니다. 쉽게 설명하자면, DB에 저장된 값을 메모리에 임시로 저장하고 그 값이 다시 필요해지면 DB에서 다시 저장된 값을 불러오지 않고 메모리에 저장된 값을 빠르게 읽어올 수 있게 하는 서비스입니다.

알면 도움이 되는 서비스

AWS Simple Queue Service(SQS)

Amazon이 제공하는 완전관리형 메세지 대기열입니다. 즉, 사용자가 세세한 관리를 하지 않아도 AWS측이 자동으로 관리를 도맡아준다는 것입니다. AWS에서 메세지 대기열(Queue)를 제공할 뿐만 아니라 AWS 리소스(주로 Lambda)와 연동하는 기능도 제공합니다. 따라서, 이벤트 단위의 서비스를 제어하는 용도로 사용할 수 있습니다. 예를 들어, 사용자가 회원가입을 했을 때 축하 메세지를 이메일로 보내는 작업도 SQS를 이용하면 쉽게 할 수 있습니다. 사용자가 회원가입을 했을 때 SQS에 메세지를 push하고, 반대쪽 lambda에서 메세지가 입력되면 사용자에게 축하 메세지를 이메일로 보내게 하면 됩니다.

  • SQS의 사용 방법에 대해서는 여기에 자세히 나와있으니 활용 방법이 궁금하다면 참고해 주세요.

AWS Simple Notification Service(SNS)

Amazon이 제공하는 또다른 메세지 운용 서비스입니다. 위의 SQS는 Queue를 사용했지만, SNS는 Pub/Sub 방식을 사용합니다. 쉽게 설명하자면, 어떤 주제(Topic)에 대해서 메세지를 발행(Publish)하면 그것을 다른 구독자(Subscriber)가 그 메세지를 읽을 수 있습니다. SQS는 Queue이기 때문에 2명 이상의 구독자가 존재해도 한명의 구독자만 메세지를 읽을 수 있지만, SNS는 동시에 여러 구독자가 같은 메세지를 받아볼 수 있습니다.

  • SNS와 SQS의 차이점에 대해서는 여기에 자세히 나와 있으니 참고해 주세요.

AWS Secret Manager

여러 서비스 간에 공유해야 하는 중요한 보안 정보가 있을 경우, 그 정보를 더 쉽게 공유할 수 있게 하는 서비스. 이 서비스를 사용하면 코드에 민감한 보안 정보를 코드 내에 하드코딩할 필요 없이, 코드가 Secret Manager에서 보안 정보를 검색할 수 있습니다.

AWS Step Functions

서비스 리소스 하나 하나를 묶어서 하나의 워크플로우로 구성할 수 있게 하는 서비스. 예를 들자면, Lambda 2개가 순차적으로 동작해야 한다면 그 둘을 하나의 워크플로우로 묶어서 구성할 수 있다. Lambda에만 사용할 수 있는 것이 아니라, AWS Batch, SQS, DynamoDB등과도 사용할 수 있다.

  • Step Functions에 대해서 더 알아보고 싶으신 분은 여기에 자세히 나와 있으니 참고해 주세요.
profile
코딩한량.

0개의 댓글