본문 바로가기

프로그래밍/백엔드

AWS 필수 키워드 9개

AWS란?

Amazon Web Service. 웹 및 앱 서비스 제공자가 컴퓨팅 파워, 저장소, 데이터베이스 등 광범위한 서비스를 제공할 수 있도록 도와주는 아마존의 클라우드 컴퓨팅 서비스.

AWS 필수 키워드

1. EC2 (Elastic Compute Cloud)

Virtual machine을 제공하는 서비스. 이러한 virtual machine에서 서비스 제공자는 웹서비스, 애플리케이션, 데이터베이스 등을 호스팅하며 벡앤드 서버를 구동할 수 있다. 또한 서비스 제공자가 직접 하드웨어 및 운영체제를 선택할 수 있다. 이렇게 탄력적으로 제공된다는 점에서 elastic compute cloud라고 이름 붙여진 듯하다.

2. S3 (Simple Storage Service)

파일을 저장할 수 있는 저장소를 제공하는 서비스. 만약 모바일 앱의 클라이언트가 사진을 업로드하길 원한다면 S3 버킷에 그것을 저장하게 할 수 있다.

3. RDS (Relational Database Service)

관계형 데이터베이스 서비스. 관계형 데이터베이스를 보다 쉽게 설정, 운영, 확장할 수 있도록 해주는 AWS 서비스이다. MySQL, PostgreSQL, SQL Server와 같은 다양한 데이터베이스 엔진을 지원한다.

 

💡 관계형 DB를 제공하기 위해 EC2와 RDS 중 하나를 선택할 수 있다.

 

- EC2: 데이터베이스를 완전히 제어하고 직접 관리하려는 경우
- RDS: 유지 관리 작업을 대신 처리하는 관리형 서비스를 원하는 경우


일반적으로 RDS는 백업, 업데이트, 스케일링, 모니터링 및 각종 보안 기능을 자동적으로 제공하는 대신 요금이 더 비싸다.

 

4. Lambda (Serverless Computing)

Lambda는 "서버리스 컴퓨팅"의 일종으로, 서버를 관리하지 않고 코드를 실행하기 위한 AWS 서비스이다. AWS Lambda에서는 코드가 람다 함수처럼 작동하여 전용 서버 없이도 이벤트에 대한 응답으로 실행된다. 이름에서 알 수 있듯이 람다 함수의 유연성과 이벤트 중심적 특성이 강조된다.

Lambda는 HTTP 요청과 같은 이벤트에 대한 응답으로 코드를 실행하며, 코드가 실행되는 시간만큼만 비용을 지불한다.

 

💡 서비스를 제공하기 위해 Lambda와 EC2 중 하나를 선택할 수 있다.

 

  • 이벤트 기반 작업일 때, 람다를 사용하는 것이 유리하다. 예를 들면, 앱에서 신규 사용자에게 welcome 이메일을 보내는 경우, 신규 사용자가 가입할 때 Lambda가 이메일을 트리거하여 전송할 수 있다. 이메일 전송에 소요되는 시간만큼만 비용을 지불하면 된다.
  • 워크로드가 일정한 경우, EC2를 사용하는 것이 유리하다. 예를 들면 연중무휴 24시간 사용 가능해야 하는 웹 애플리케이션이 있는 경우, 항상 켜져 있고 지속적인 트래픽을 처리할 수 있는 EC2 인스턴스가 더 적합할 수 있다.

두 가지 모두 각각 장단점이 있으며, 구체적인 서비스에 따라 하나를 선택해야 한다.

 

5. API Gateway (API Management)

API를 생성, 관리, 배포할 수 있는 AWS 서비스. 백엔드 서비스의 '프런트 도어' 역할을 한다.

여러 개의 마이크로서비스가 하나의 서비스를 구성하는 경우, 각각의 마이크로서비스에 개별적으로 진입하는 것보다, API 게이트웨이가 단일 진입점 역할을 하여 모든 서비스를 더 쉽게 사용 및 관리하고 보호할 수 있다.

6. Cognito (User Authentication)

AWS Cognito는 사용자 신원 및 인증을 위한 서비스이다. 사용자 계정과 프로필을 관리하는 사용자 풀을 제공하고, 리소스에 액세스하기 위한 임시 AWS 자격 증명을 제공하며, 소셜 로그인 및 사용자 지정 인증 방법을 지원한다.

예를 들어, 모바일 앱에서 Cognito는 사용자 가입 및 로그인을 처리할 수 있다. 로그인한 후에는 S3 또는 DynamoDB와 같은 다른 AWS 서비스에 액세스하기 위한 자격 증명을 제공할 수 있다.

7. DynamoDB (NoSQL Database)

DynamoDB는 NoSQL 데이터베이스를 위한 AWS 서비스이다.

8. CloudWatch (Monitoring)

AWS CloudWatch는 모니터링 서비스이다. 웹 앱을 실행하는 EC2 인스턴스가 있는 경우, CloudWatch는 CPU 사용량을 모니터링할 수 있다. 이때, 사용량이 너무 높아지면 알람이 트리거되어 사용자에게 알리거나 인스턴스를 자동 확장할 수도 있다.

9. IAM (Identity and Access Management)

IAM은 AWS 리소스에 액세스할 수 있는 사용자와 수행할 수 있는 작업을 제어하는 데 도움을 주는 서비스이다. IAM을 통해 특정 권한을 가진 팀원을 위한 개별 계정을 생성하거나, 사용자 또는 서비스에 역할을 할당하여 일시적으로 권한을 부여할 수 있다. 또한 각종 보안 및 인증 정책 및 방식에 대한 설정을 조작할 수 있다.