...
AWS 서비스 종류 용어 정리
Amazon Web Services는 다양한 분야에 걸쳐 여러 플랫폼과 다양한 서비스를 제공한다.
한대의 독립된 컴퓨터를 제공하고 있는 EC2, 데이터베이스 서버인 RDS, 파일 서버 S3 등 다양한 서비스로 이루어져 있으며, 이렇게 제공되는 서비스들을 조합하여 하나의 Web 서비스를 만들게 되는 것이다.
AWS를 입문할때 무엇보다 전통적인 웹서버 운영방법과 다른 점도 많고, 네트워킹 용어들을 생소한 단어로 혼용해서 쓰거나, 각 서비스의 이름들도 생소한 관계로 많은 입문자분들이 어려운 점을 느끼는 게 사실이다. 따라서 AWS에서 가장 많이 사용하는 유익한 서비스 종류들 소개와 요약을 한번 정리해 보는 시간을 가져보자.
※ 만일 서비스 설명에 전문적인 용어가 나와 무슨 뜻인지 모른다면 이글을 참고하길 바란다.
컴퓨팅 서비스 (Computing Service)
EC2 (Elastic Compute Cloud)
- AWS에서 가장 기본적이면서 널리 쓰이는 인프라로, 물리 환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스다.
- 마치 피시방에 가서 돈을 내고 컴퓨터를 이용하는 것과 비슷한 개념이다. 즉, 내가 사용한 만큼 비용을 지불하는 형태이다.
- 클라우드에서 컴퓨팅 파워의 규모를 자유자재로 변경할 수 있다.
- 가상 머신으로 제공되며 인스턴스라고 불린다. (정말 많이 나오는 용어다)
- 안정성을 위해 여러 AWS 리전과 가용 영역에 걸쳐 배포 된다. (이 역시 정말 많이 나오는 기본 개념)
Auto Scaling
- 트래픽에 따라 EC2 인스턴스들을 자동으로 확장하거나 제거해주는 서비스
- ELB와 함께 사용되는 기능으로 특정 트래픽을 초과시 자동으로 EC2 인스턴스를 생성하고 다시 트래픽이 줄어들면 추가 생성하였던 EC2 인스턴스들을 삭제하는 유연한 서비스를 구축할 수 있도록 도와주는 서비스다.
Lambda (Serverless Computing)
- 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행하는 서비스
- 사용자는 서버에 대한 걱정없이 코드만으로 서비스를 실행할 수 있다.
- serverless 아키텍쳐 구현에 사용.
- 서버 및 운영 체제 유지 보수, 용량 프로비저닝 및 자동 확장, 코드 모니터링 및 로깅과 같은 컴퓨팅 리소스의 모든 관리를 자체적으로 수행하므로, Lambda가 사용하는 언어 중 하나로 코드를 제공하기만 하면 된다.
Lightsail
- 주어진 리소스 옵션(Ubuntu, Node, Lamp stack, Nginx, WordPress, Django.. etc) 중 하나를 택하여 단일 가상 서버를 쉽게 설정할 수 있다.
- 프로젝트를 빠르게 시작하는 데 필요한 가상머신, SSD기반 스토리지, 데이터 전송, DNS관리, 정적IP가 포함되어 있다.
WorkSpaces
- 데스크톱 가상화 서비스로 사내 PC를 가상화로 구성하여, 문서 및 데이터를 개인 PC에 보관하지 않고 서버에서 보관 관리할 수 있도록 해주는 서비스
- Amazon WorkSpaces를 사용하면 하드웨어 인벤토리, OS 버전 및 패치, 가상 데스크톱 인프라(VDI)를 관리하는 복잡성을 제거하여 데스크톱 제공 전략을 간소화할 수 있다.
ECS (EC2 Container Service)
- 클라우드 서버인 EC2를 Docker 컨테이너로 관리 가능하도록 나온 서비스
- 컨테이너를 실행하는 고도로 안전하고, 안정적이고, 확장 가능한 방식이다.
EB (Elastic Beanstalk)
- Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스
- 주로 간단한 서비스 배포용으로 사용하는 편이다.
- 코드를 업로드하기만 하면 용량 프로비저닝, 로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모니터링에 이르기까지 자동으로 처리
- Heroku와 비슷한 PaaS 같은 서비스. 정확히 PaaS는 아니지만 앱을 배포하는 점에 있어서 더 수월한 서비스이다.
- Lightsail과 비슷한 범주
네트워킹 서비스 (Networking Service)
VPC
- 클라우드 가상 네트워크 구축 서비스
- IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있고, VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스할 수 있음
Route53
- AWS의 Domain Name System (DNS) 도메인 관리/설정 서비스 (이름만 색다르지 보통 웹서버의 dns 구성과 같다.)
- 도메인 이름을 구매 및 관리하고 도메인에 대한 DNS 설정을 자동으로 구성할 수 있다.
- 또한 사용자를 AWS외부의 인프라로 전달하는 서비스도 이를 통해 이용 가능하다.
- EC2 인스턴스, Elastic 로드 밸런서, S3 저장소 등 AWS 서비스 인프라에 효과적으로 연결한다.
Direct Connect
- 기존 On-Premise의 인프라와 AWS간 연결을 쉽게 설정할 수 있는 클라우드 서비스 솔루션
- 전용선을 구성하여 낮은 지연 시간으로 데이터 및 정보를 공유할 수 있게 하는 서비스 제공
- AWS-On-Premise를 연결하는 전용 네트워크 선 서비스
ELB (Elastic Load Balancing)
- 접속량이 많을 경우 L4 서비스(load balancing) 트래픽을 분산해주는 역활을 하여 고가용성 서비스를 구축할 수 있도록 하는 서비스
- 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수와 같은 여러 대상에 자동으로 분산
CloudFront
- 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 글로벌 콘텐츠 전송 네트워크(CDN) 서비스. AWS의 CDN(Content Delivery Network, 콘텐츠 전송 네트워크) 이라고 보면 된다.
- S3, EC2, Elastic Load Balancing, Route 53 등과 같은 AWS 서비스와 통합되어 운영된다.
- 리전에 상관없이 엣지 로케이션 기준으로 가장 가까운 곳에서 파일 캐시를 가져오기 때문에 속도도 빠르며 비용도 EC2 혹은 S3로 서비스를 제공하는것 보다 더 저렴하다.
Transit Gateway
- VPC 및 계정 연결을 손쉽게 확장
- VPC와 온프레미스 네트워크를 단일 게이트웨이에 연결할 수 있도록 지원해주는 서비스
스토리지 서비스 (Storage Service)
S3 (Simple Storage Service)
- 정적 파일 스토리지 서비스 (사진, 비디오, 문서 등 또는 frontend 코드와 Lambda 함수 코드도 해당)
- 사용자는 URL을 통해 파일을 사용할 수 있다.
- 다른 유저들의 액세스를 컨트롤할 수 있는 기능도 제공.
- HTTP 프로토콜과 연동되어 정적 사이트를 호스팅하는데 사용할 수도 있다.
- CloudFront를 구성하면 S3에 저장된 정적 파일이 CDN을 통해 더 효율적으로 빠르게 보급되는 장점도 있다.
EBS (Elastic Block Store)
- EC2 인스턴스에 장착하여 사용할 수 있는 가상 저장 장치 (HDD 나 SSD 처럼 가상 컴퓨터에 장착한 저장장치)
- 주로 EC2 인스턴스에서 제공하는 기본 용량보다 더 사용해야 할 때, 운영체제를 중단시키지 않고 자유롭게 늘리고 싶을 때, 영구적인 데이터 보관이 필요할 때, RAID 등의 고급 기능이 필요할 때 사용
- EC2에 설치된 OS에서 그냥 일반적인 하드디스크 또는 SSD처럼 인식되어 원하는 크기로 만들 수 있고, 성능(IOPS)또한 원하는 수치로 설정할 수 있으며 사용자가 삭제하기 전까지 데이터가 안전하게 유지됨
- EBS를 연결하여 EBS에 파일을 저장한다면 EC2 인스턴스와 관계 없이 영구적으로 보관이 가능
[ EBS 와 S3 의 차이 ]
- EBS : Block Storage
- 사용자가 하드나 SSD를 컴퓨터에 장착하는 것처럼, 가상 컴퓨터에 직접 붙어서 폴더나 파일을 생성하는 작업을 함.
- S3 : Object Storage
- 웹페이지나 URL 로 HTTP 통신하여 폴더나 파일을 생성할 수 있음.
- S3 를 사용하면 버킷이라는 단위(버킷 : 여러가지 사물을 하나에 담는다.) 아래 폴더 및 파일을 업로드하여 업로드 된 객체 URL 로 접근하여 폴더나 파일의 내용을 조회 및 수정할 수 있음
EBS와 S3의 가장 중요한 차이점은 저장 방식이다. 같은 데이터를 저장하더라도 저장 방식이 다르기 때문이다.
EBS는 블록 스토리지 방식, S3는 객체 스토리지 방식을 사용한다.
이 개념을 이해하기 위해서 주차를 예시로 들어보겠다.
"주차장(블록)은 직접 주차할 곳을 찾아 주차해야 하고, 꽉 차면 다른 주차장을 찾아서 주차해야 합니다. 하지만 발렛파킹(오브젝트)은 그냥 키만 건네주고, 나갈 때 번호표만 주면 알아서 차를 가져다 줍니다."
Glacier
- 데이터 보관, 백업 및 아카이브를 위한 스토리지 서비스
- S3와 다르게 저장에만 특화되어있는 저렴한 스토리지 서비스로 거의 무제한으로 데이터를 저장할 수 있지만, 저장하고 꺼내는데 3시간-5시간 걸린다는 특징을 가지고 있다.
- S3에서 -> Glacier로 백업을 자동 생성하도록 설정이 가능.
- 따라서 스토리지 비용이 저렴하며 데이터에 밀리초 만에 액세스해야 할 필요가 없다면 이 제품을 사용
Storage Gateway
- On-Premise에 있는 데이터를 클라우드로 저장 보관하기 위한 게이트웨이 연결 서비스
Snowball
- Import/Export 서비스를 통해 대량의 데이터를 AWS로 이전할 때 네트워크로 전송하지 않고 디스크나 스토리지에 저장하여 물리적으로 전달하고 이를 업로드 하여 주는 서비스
- 대량의 데이터를 AWS로 업로드 할 때 유용하다.
데이터베이스 서비스 (Database Service)
RDS (Relational Database Service)
- 관계형 데이터베이스 이용할 수 있는 서비스
- DB 설정, 패치, 백업 등 시간 소모적인 관리 작업을 AWS에서 처리
- RDBMS 클라우드 서비스 : Amazon Aurora, MySQL, MariaDB, PostgreSQL, Oracle, SQL Server등을 지원
DynamoDB
- 어떠한 규모에서도 10ms 미만의 성능을 제공하는 key-value형태의 NoSQL 데이터베이스 서비스
- 데이터 규모와 관계없이 데이터를 저장 및 검색하고, 어떤 수준의 요청 트래픽이라도 처리할 수 있는 데이터베이스 테이블을 생성할 수 있음
ElastiCache
- Database Caching 서비스.
- Memcached, Redis 호환을 지원
DocumentDB
- MongoDB와 호환되는 데이터베이스를 쉽게 설정, 운영 및 조정할 수 있는 데이터베이스 서비스
관리 툴 (Management Tools)
CloudWatch
- AWS 서비스들을 모니터링하거나 알람을 받는 설정들을 할 수 있는 서비스
- 특정 금액 초과할 경우 알람을 받거나 EC2의 CPU 사용률등의 알람도 가능하다.
CloudFormation
- AWS 서비스 생성 및 배포 자동화 템플릿 서비스
- AWS의 다양한 서비스들을 이용하여 아키텍쳐 구현시 미리 만들어놓은 템플릿(JSON)을 이용하여 생성하거나 직접 템플릿을 작성하여 관리가 가능하도록 한다.
분석 플랫폼 (Analytics Platform)
Kinesis
- 대량의 데이터를 저장 분류할 수 있는 서비스.
- 다양한 규모의 스트리밍 데이터를 비용 효율적으로 처리할 수 있는 기능을 가지고 있다.
Redshift
- 효율적으로 비용 및 데이터를 분석할 수 있는 빠르고 확장 가능한 데이터 웨어하우스.
- 기계학습, 다량 병렬 쿼리 실행, 고성능 디스크의 열 기반 스토리지를 사용하여 다른 데이터 웨어하우스 보다 10배 빠른 성능을 제공함
- 몇백 GB부터 페타바이트 규모 이상의 데이터 세트에 최적화
EMR
- 저장된 대량의 데이터를 분류하고 분석하여 필요한 정보를 뽑아낼 수 있도록 다양한 서비스 제공
애플리케이션 서비스 (Application Service)
CloudSearch
- aws 검색 서비스.
- 손 쉽게 중요 정보를 모바일로 전달
- SWF: 워크플로우 서비스
- SQS: 큐서비스를 활용한 대량의 데이터를 할 수 있도록 해주는 서비스
SES (Simple Email Services)
- 외부로 대량의 메일을 발송하는 서비스
Elastic Transcoder
- 동영상을 인코딩 할 수 있는 서비스
AWS 가격 정책 관련 용어
AWS에서 인스턴스 과금 방식을 설명할때 나오는 용어가 생소하다 보니 어찌 설정해야할지 난해할 때가 있다.
그래서 간단하게나마 정리해 보았다.
On-Demand(온디맨드)
기본적으로 사용하는 과금 방식으로, 사용한 시간 만큼 비용을 지불하는 형태
Reserved(예약)
일정 기간 인스턴스 사용을 약속하고, 그에 대한 할인을 적용받는 방식
Spot(스팟)
입찰 방식의 사용방법으로, 사용자가 입찰 가격을 제시해놓으면 아마존에서 남는 인스턴스들에 대해서 Spot 가격을 책정하는데, 이 가격이 입찰가격 내로 들어오면 인스턴스가 기동되는 방식
입찰 가격이 넘어가면 자동으로 Spot Instance는 다시 종료 된다.
항상 실행시키는 업무가 아닌 특정 작업 배치 돌릴 서버용도로 사용이 적합하다
AWS 글로벌 / 리전 서비스 분류
- 글로벌 서비스 : 한국 미국 영국 상관없이 전세계에서 공통적으로 사용하는 인프라
- 지역 서비스 : 특정 리전에만 사용하는 인프라. 대부분 서비스가 해당된다.
- 파일을 저장하는 서비스인 S3은 전세계에서 동일하게 사용할수는 있지만, 실제로 데이터 자체는 리전에 저장되는 특징을 가지고 있다.
# 참고자료
https://www.youtube.com/channel/UCpDxKxars7BHR3owaNRctaQ
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.