Published on

꼭 알아야 할 AWS 서비스 알아보기

Authors
  • 테크버킷
    Name
    테크버킷
    Twitter

AWS는 알겠는데 EC2, RDB, S3, Lambda, VPC는 무슨 말이지?

AWS(Amazon Web Service)는 아마존닷컴이 제공하는 클라우드 컴퓨팅 플랫폼입니다. AWS는 클라우드 컴퓨팅 분야에서 전 세계적으로 널리 사용되고 있지만 처음 접하게 되면 서비스 이름과 용어가 생소한 것이 사실입니다.

"EC2, RDB, S3, Lambda, VPC 이게 다 무슨 말이지...?"

AWS를 처음 접하는 사람들이라면 있을 법한 경험입니다. 위의 용어들은 AWS에 익숙한 사람들이라면 굉장히 친숙하게 느껴질 AWS의 서비스 이름들입니다. 하지만 처음 접할 때에는 그 의미를 알 수 없어 생소하기 때문에 더욱 어렵게 느껴집니다. 그래서 이 글에서는 AWS(Amazon Web Service)를 조금 더 빠르게 접하기 위해 자주 사용되는 AWS의 서비스 및 개념들을 소개합니다.

이 글에서는 각 서비스에 대한 간략한 소개를 하고 있으며, 각 서비스에 대한 AWS 공식 문서와 활용 사례들을 알아보면서 이해도를 높이는 것을 권장합니다.(직접 해보는것이 가장 좋습니다.)

클라우드 컴퓨팅의 등장

옛날 옛적에는 새로운 프로젝트를 시작하기 위해서 서버를 직접 구매하고 데이터 센터를 구축하느라 시간과 비용을 많이 들여야 했습니다. 하지만, AWS와 같은 클라우드 컴퓨팅 서비스가 등장하면서 자체 데이터 센터를 직접 구축하지 않고 더욱 효율적이고 안정적으로 개발을 진행할 수 있게 되었습니다. 때문에 대부분의 서비스 개발에서 AWS와 같은 클라우드 컴퓨팅 플랫폼이 사용됩니다.

AWS 이외에도 클라우드 컴퓨팅 서비스를 제공하는 곳은 Google Cloud Platform (GCP), Microsoft Azure, IBM Cloud, 네이버 클라우드 플랫폼, Alibaba Cloud 등이 있습니다.

클라우드 컴퓨팅

AWS의 주요 서비스

AWS의 주요 서비스에는 가상 서버(EC2), 스토리지(S3, EBS), 데이터베이스(RDS, DynamoDB), 네트워킹(VPC, ELB), 보안 및 자격 증명(IAM), 서버리스 컴퓨팅(Lambda), 애플리케이션 통합(SQS, SNS), 모니터링(CloudWatch) 등이 포함됩니다. 이러한 서비스들을 조합하여 개발, 운영 및 관리 작업을 수행할 수 있으며, 유연한 확장성과 안정성을 제공합니다.

EC2 (Elastic Compute Cloud)

  • EC2는 가상 서버를 제공하는 서비스입니다.
  • 다양한 CPU, 메모리, 스토리지 구성이 및 인스턴스 유형을 선택할 수 있습니다.
  • EC2를 사용하여 가상 서버를 프로비저닝하고, 애플리케이션을 호스팅하거나 데이터 처리 작업을 수행할 수 있습니다.

관련 개념

  • 인스턴스(Instance): 인스턴스는 AWS 클라우드에서 실행되는 컴퓨팅 리소스의 가상화된 단위입니다. 사용자는 필요에 따라 EC2 인스턴스를 생성, 시작, 중지, 종료할 수 있습니다. 각 인스턴스는 특정 인스턴스 유형에 속하며, CPU, 메모리, 스토리지 용량 등과 같은 리소스를 가지고 있습니다.
  • 가상 서버(Virtual Server): 물리적인 서버와 유사한 역할을 하는 가상화된 서버입니다. 가상 서버는 호스트 시스템에서 독립적으로 실행되며, 여러 가상 서버가 하나의 물리적인 서버에서 동작할 수 있습니다.
  • 프로비저닝(Provisioning): 인프라스트럭처나 서비스를 구축하거나 준비하는 과정을 말합니다. 예를 들어, EC2 인스턴스를 프로비저닝하면 해당 인스턴스를 생성하고 구성하여 사용할 수 있게 됩니다.

Lambda

  • Lambda는 서버리스 컴퓨팅 서비스로, 코드를 실행하는 데 사용됩니다.
  • Lambda 함수를 작성하면 특정 이벤트에 대한 응답으로 코드를 실행할 수 있습니다. (예를 들어, 이미지 업로드 시 자동으로 썸네일을 생성하거나, 데이터 변경 시 푸시 알림을 보낼 수 있습니다.)

관련 개념

  • 서버리스 컴퓨팅 서비스(Serverless Computing Service): 애플리케이션 개발자가 서버 프로비저닝이나 관리에 대해 걱정할 필요 없이 코드 실행에 집중할 수 있는 컴퓨팅 서비스입니다. AWS Lambda가 서버리스 컴퓨팅의 대표적인 예시입니다.

S3 (Simple Storage Service)

S3는 객체 스토리지로서 파일과 데이터를 저장할 수 있는 서비스입니다. 데이터의 내구성과 고가용성을 보장합니다.

S3는 보통 웹 애플리케이션의 정적 파일, 미디어 콘텐츠, 백업 파일 등을 저장하는데 사용됩니다. 파일은 버킷에 저장되며, 고유한 URL을 통해 액세스할 수 있습니다.

RDS (Relational Database Service)

  • RDS는 관계형 데이터베이스를 관리하는 서비스입니다.
  • MySQL, PostgreSQL, Oracle 등의 데이터베이스 엔진을 프로비저닝하고 관리할 수 있습니다.
  • 데이터베이스 인스턴스를 생성하고, 스케일링, 백업, 복원 등을 자동화할 수 있습니다.

관련 개념

  • 관계형 데이터베이스(Relational Database): 테이블 간의 관계를 사용하여 데이터를 구성하는 데이터베이스입니다. RDS 서비스는 MySQL, PostgreSQL, Oracle 등과 같은 관계형 데이터베이스를 제공합니다.
  • 쿼리(Query): 데이터베이스에서 정보를 검색하거나 조작하기 위해 사용하는 명령어 또는 구문입니다. SQL(Structured Query Language)은 관계형 데이터베이스에서 쿼리 작성에 주로 사용되는 언어입니다.
  • 스케일링(Scaling): 데이터베이스 시스템을 더 크고 복잡한 작업 부하에 대해 적절하게 조정하고 확장하는 프로세스입니다.

DynamoDB

  • DynamoDB는 AWS의 NoSQL 데이터베이스 서비스로, Key-Value 모델을 기반으로 합니다.
  • 빠른 읽기/쓰기, 자동 스케일링, 내구성이 있는 데이터 저장이 가능합니다.

관련 개념

  • NoSQL 데이터베이스: 관계형 데이터베이스와는 달리 테이블 간의 관계를 가지지 않는 비관계형 데이터베이스입니다.

VPC

  • **VPC (Virtual Private Cloud)**는 AWS 클라우드에서 가상 네트워크 환경을 구축하고 관리하는 서비스입니다.
  • 사용자는 IP 주소 범위, 라우팅, 보안 등을 설정할 수 있습니다.
  • VPC를 사용하여 가상 네트워크 환경을 구축하고 EC2 인스턴스, 데이터베이스, 로드 밸런서 등을 프로비저닝합니다. VPC는 서브넷, 라우팅 테이블, 보안 그룹 등을 통해 네트워크를 구성합니다.

IAM (Identity and Access Management)

  • AWS 리소스에 대한 액세스 권한을 관리하는 서비스입니다. 사용자, 그룹, 역할을 생성하고 권한을 할당할 수 있습니다.
  • 예를 들어, 특정 사용자에게 S3 버킷에 대한 읽기 및 쓰기 권한을 부여할 수 있습니다.

SQS (Simple Queue Service)

  • 메시지 대기열 서비스로, 애플리케이션 간 비동기식 통신을 가능하게 합니다. 메시지를 보내고 받아서 작업을 처리할 수 있습니다.

SNS (Simple Notification Service)

  • 푸시 알림 서비스로, 다양한 애플리케이션에 알림을 전송할 수 있습니다. 이벤트 기반 아키텍처를 구현하는 데 유용합니다.

기타

API Gateway

  • API Gateway는 API를 프록시로 연결하여 외부 애플리케이션과의 통신을 안전하게 할 수 있도록 관리하는 서비스입니다.
  • API 요청을 받아 백엔드 서비스로 전달하고, 응답을 클라이언트에게 반환합니다.
  • 외부 애플리케이션에 대한 안전한 API 엔드포인트를 생성하고 관리할 수 있습니다.
  • API Gateway를 사용하여 RESTful API를 생성하고, 인증, 인가, 요청 및 응답 변환, 속도 제한 등을 구성할 수 있습니다.

CloudFormation

  • CloudFormation을 사용하여 인프라스트럭처를 코드로 정의하고 스택으로 배포할 수 있습니다.
  • 이를 통해 반복적이고 확장 가능한 인프라스트 럭처 프로비저닝과 관리를 자동화할 수 있습니다.
  • JSON 또는 YAML 형식의 템플릿을 사용하여 인프라스트럭처 리소스를 정의하고 프로비저닝합니다.

CloudWatch

  • CloudWatch를 사용하여 애플리케이션 및 인프라스트럭처의 모니터링, 로깅 및 경고를 설정할 수 있습니다.
  • 지표(Metrics), 로그(Logs), 이벤트(Events)를 수집하여 모니터링, 분석 및 경고를 제공합니다.

관련 개념

  • 인프라스트럭처(Infrastructure): 컴퓨터 시스템을 구성하는 하드웨어, 네트워크, 저장소, 서버 등과 같은 기본적인 구성 요소입니다. AWS의 VPC는 가상 인프라스트럭처를 구축하고 관리하는 기능을 제공합니다.
  • 프로비저닝(Provisioning): 인프라스트럭처나 서비스를 구축하거나 준비하는 과정을 말합니다. 예를 들어, EC2 인스턴스를 프로비저닝하면 해당 인스턴스를 생성하고 구성하여 사용할 수 있게 됩니다.

참고 AWS 문서

다음은 각 항목에 대한 정보를 찾을 수 있는 AWS 공식 문서 링크입니다 각 서비스에 대한 자세한 정보와 사용 가이드를 확인할 수 있습니다.

  1. 컴퓨팅 (Compute)
  1. 스토리지 (Storage)
  1. 데이터베이스 (Database)
  1. 네트워킹 (Networking)