풀스택 웹개발(5) - AWS 클라우드 컴퓨팅 (IAM, EC2, RDS, S3, ELB, ASG)
소개
[풀스택 웹개발] 시리즈는 Spring을 활용하여 풀스택 웹사이트를 만드는 것을 목표로 합니다. 빠르고 직관적인 이해를 돕기 위해 전문적인 용어보다는 비유적인 표현을 많이 사용했습니다. 웹사이트를 처음 만들어보는 분도 쉽게 배우고 따라하는 웹개발 설명서가 되었으면 합니다.
본 시리즈가 다루는 주제는 크게 다음과 같습니다:
다음과 같은 내용을 학습하시면 본 시리즈를 이해하는 데 도움이 됩니다:
- 객체지향(Opject-oriented-programming)
- Java
- SQL
Table of Contents
AWS
아마존 웹서비스 (Amazon Web Service), 줄여서 AWS는 Amazon(아마존)이 제공하는 광범위한 클라우드 컴퓨팅 서비스의 모음입니다.
클라우드 컴퓨팅이란?
클라우드 컴퓨팅은 단순히 저장공간을 제공하는 것을 넘어서 외부 서버로부터 컴퓨팅 파워와 다양한 리소스를 제공받는 방식입니다. 예를 들어, 딥러닝을 실행할 때 사용자의 개인 컴퓨터로는 성능이 부족하여 계산 시간이 너무 오래 걸릴 경우, 클라우드를 통해 TPU와 같은 딥러닝에 특화된 하드웨어 자원을 빌려서 사용할 수 있습니다.
AWS가 제공하는 서비스
AWS는 서버, 스토리지, 네트워킹, 원격 컴퓨팅, 이메일, 모바일 개발 및 보안 기능들을 포함하여 다양한 IT 인프라를 클라우드를 통해 제공합니다. AWS는 Pay per use (사용한 만큼 지불한다)는 모델을 사용하기 때문에, 사용한 만큼 비용을 지불하게 됩니다. 때문에 개인과 기업은 서버 컴퓨터를 직접 구매하고 관리하는 비용을 절감할 수 있습니다. 극단적인 예시로 사업이 망했을 경우, 서버 컴퓨터를 처분해야 하는 경우는 없어도 된다는 거죠.
주의! AWS는 사용한 만큼 금액이 청구되기 때문에 잘 못 사용할 경우 하루아침에 30만원이 청구될 수도 있습니다. 기능과 금액을 잘 알아보고 사용하는 것이 중요합니다. 때문에 AWS를 공부하려면 하룻동안 사용한 모든 기능을 초기화하는 습관을 들여야 합니다.
IAM
Identity and Access Management, IAM은 AWS의 리소스에 대한 엑세스를 관리하고 제어하는 서비스입니다. 사용자, 그룹, 역할, 정책을 생성하여 본인이 만들어 둔 AWS 리소스 계정에 대한 액세스 권한을 제어할 수 있습니다.
사용 예시
기업에서 AWS를 사용할 때, 각 직원에게 필요한 리소스에만 액세스할 수 있는 권한을 부여하기 위해 IAM을 사용할 수 있습니다. 예를 들어, 개발자에게는 EC2 인스턴스에 액세스할 수 있는 권한을, 재무 팀에게는 비용 보고서에만 액세스할 수 있는 권한을 부여할 수 있습니다.
EC2
Elastic Compute Cloud, EC2ㄴ느 가상 서버를 클라우드에서 제공하는 서비스입니다. 필요에 따라 CPU, 메모리, 스토리지, 및 네티워킹 용량을 가진 가상 머신을 생성하고 구성할 수 있습니다.
사용 예시
EC2는 웹 서버, 게임 서버, 데이터베이스 서버 등 다양한 용도로 사용될 수 있습니다. 예를 들어, 스타트업이 새로운 웹 애플리케이션을 출시할 때, 초기에는 작은 EC2 인스턴스로 시작하고, 사용자 기반의 성장에 따라 서버의 크기를 증가시킬 수 있습니다.
RDS
Relational Database Service, RDS는 클라우드에서 관계형 데이터베이스를 쉽게 설정하고 운영하고 확장할 수 있게 해주는 서비스입니다. 이 서비스는 MySQL, PostgreSQL, Oracle, SQL Server와 같은 다양한 데이터베이스 엔진을 지원합니다. RDS는 데이터베이스 관리 작업 (하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업 등)을 자동화합니다.
사용 예시
온라인 쇼핑몰이 고객 데이터와 주문 정보를 저장하기 위해 RDS를 사용할 수 있습니다. 이를 통해 데이터베이스 관리에 필요한 시간과 노력을 줄이고, 보안과 성능을 보장받을 수 있습니다.
S3
Simple Storage Service, S3는 AWS에서 제공하는 객체 스토리지 서비스입니다. 이 서비스는 인터넷을 통해 언제 어디서나 데이터를 저장하고 검색할 수 있게 해줍니다. S3는 데이터의 내구성과 가용성을 보장해주는 상태에서 무제한의 데이터 저장 공간을 제공합니다.
사용 예시
사진 공유 서비스가 사용자가 업로드한 사진을 저장하기 위해 Amazon S3를 사용할 수 있습니다. S3는 대규모의 데이터를 저장하고, 전 세계 어디서나 빠르게 접근하는 데 최적화되어 있습니다..
ELB
Elastic Load Balancing, ELB는 현재 들어오고 있는 네트워크 트래픽을 여러 서버(EC2 인스턴스)에 자동으로 분산시켜주는 서비스입니다. 이를 통해 ELB는 애플리케이션의 가용성을 높이고, 트래픽이 급증하는 상황에도 원활한 서비스 제공을 가능하게 합니다. 그리고 Health Check 기능을 통해 오류가 발생한 인스턴스로 트래픽이 들어가지 못하도록 막아주는 역할을 합니다.
사용 예시
고품질 스트리밍 서비스가 사용자의 요청을 여러 서버에 균등하게 분산시키기 위해 ELB를 사용할 수 있습니다. 덕분에 사용자가 많은 시간대에도 서비스를 안정적으로 운영할 수 있고, 어느 한 서버에 과부하가 걸리는 것을 방지할 수 있습니다.
ASG
Auto Scaling Group, ASG는 자동으로 EC2 인스턴스의 수를 조정하여 애플리케이션의 수요에 맞춰 인스턴스를 확장하거나 축소할 수 있게 해주는 서비스입니다. 미리 조건(예: CPU 사용률, 네트워크 트래픽)을 정의해 놓으면 이에 따라 애플리케이션의 트래픽이 변할 경우 자동으로 대응해줍니다. ASG는 ELB와 같이 사용할 경우 가용성과 확장성이 높아집니다.
사용 예시
온라인 쇼핑몰이 대규모 프로모션 이벤트 중에 트래픽이 급증할 때, ASG를 사용하여 자동으로 서버 인스턴스를 추가할 수 있습니다. 이벤트가 종료되고 트래픽이 감소하면 ASG는 불필요한 인스턴스를 자동으로 줄여 비용을 절감할 수 있게 합니다.
자료 출처
- YC Tech Academy 5주차