Section 4 Unit9 - [Deploy] Amazon Web Service

BRANDY·2023년 3월 31일
0

아마존 웹 서비스(AWS)

클라우드 컴퓨팅 서비스로 이전에 여러 사업자에게 각각 빌려야했던 인프라를 일괄로 빌릴 수 있게 되었으며 필요에 따라 운영체제(OS), 웹 서버, DB 서버 등 필요한 소프트웨어 까지 통째로 사용할 수 있는 편리한 서비스.

AWS에는 컴퓨팅, 스토리지, 데이터베이스, 분석, 네트워킹, 모바일, 개발자 도구, 관리 도구, IoT, 보안, 엔터프라이즈 애플리케이션 등 다양한 서비스가 준비되어 있다.

아마존 웹 서비스의 특징

  1. AWS에서 제공하는 서비스로도 필요한 기능의 대부분을 구축 가능하며 AWS 외부 시스템을 조합하여 구축하기도 쉽다.
  2. 사용할 양을 미리 생각하지 않고 필요한 만큼만 사용하고 부족해지면 그때마다 추가할 수 있으며 같은 양을 계속 빌려야 하는 정액제와 차별점이 있다.
  3. 네트워크 및 서버가 매우 큰 규모가 아니라면 네트워크나 서버 전문가가 아니더라도 사용 가능
  4. 전 세계 31개의 지리적 리전 내에 99개의 가용영역을 운영하고 있어 글로벌로 확장 시 확장하고자 하는 지역과 지리적으로 가까운 리전에서 서비스 시작 가능
  5. 한국어 지원 및 원화 결제 가능, 보안 관련하여 법령, 규정, 프라이버시 기준을 준수하고 있는 안전한 서비스이다.

Cloud Computing

클라우드 등장 이전에는 전산실 등에 컴퓨터를 배치하고 인터넷을 연결하여 서비스를 제공하였다. 하지만 서버가 요청에 대한 수용능력이 한계에 도달 하였고 더 많은 컴퓨터와 공간이 필요하게 되었다. 이로인해 컴퓨터, 공간, 주기적인 유지 관리가 필요하게 되었고 많은 인력과 비용 등의 한계에 부딪혀 이를 해결하기 위해 일부 거대 기업들은 데이터 센터라는 거대한 건물을 세우기 시작했다. 이때부터 데이터 센터의 유휴 자원을 대여하는 서비스가 등장하기 시작했다.

현대의 클라우드 컴퓨팅은 데이터센터와 비슷한 역할을 하지만 물리적인 컴퓨터가 아닌 가상 컴퓨터를 대여한다는 점이 다르다. 최근의 가상화 기술을 사용하는 클라우드 서비스는 기존의 온프레미스 형식과는 달리 다음과 같은 장점이 있다.

  1. 필요할 때마다 컴퓨팅 능력을 유연하게 조절할 수 있다.
  2. 고정적인 비용이 들어가는 온프레미스와는 달리 사용한만큼의 요금만 지불하면 된다
  3. 컴퓨터의 스냅샷을 이용해 다른 컴퓨터로 즉시 이주가 가능하다.

클라우드 환경에도 단점이 존재하는데 운영 환경 자체가 클라우드 제공자에게 종속되어 버려 클라우드 서비스에 문제가 생기면 내가 배포하고 관리하는 환경에도 영향을 준다. 운영환경이 특정 클라우드 사업자에게 종속된다는 얘기는 백엔드 구성 자체가 특정 회사의 기술로만 구성해야만 하는 경우가 발생할 수도 있다는 것이며 그만큼 이 인프라 자체에 대한 이해가 더욱 중요하다.

EC2

Amazon EC2(Elastic Compute Cloud)
아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스이며 인터넷(클라우드)를 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스이다.
즉 아마존에서 가상의 컴퓨터 한 대를 빌리는것과 같다.

사용한 만큼 비용을 지불하는 탄력적인 서비스이며 필요에 따라 성능, 용량 등을 자유롭게 조절할 수 있다. 장점은 다음과 같다.

  1. 구성하는데 필요한 시간이 짧다
  2. 필요한 용도에 따라 다양한 운영체제에 대한 선택이 가능하다
  3. CPU, RAM, 용량도 손쉽게 구성할 수 있다

아마존 EC2를 통해서 할 수 있는 가장 기본적인 일은 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공한다는 것이다.
인스턴스는 1대의 컴퓨터를 의미하는 단위이고 AWS에서 컴퓨터를 빌리는것을 인스턴스를 생성한다고 한다.

AMI

소프트웨어 구성이 기재된 템플릿으로 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿이나 특정 런타임이 설치되어 있는 템플릿(우분투 + node.js, 윈도우 + JVM 등)도 선택할 수 있다.
즉 AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것이다.

RDS

Relational Database Service의 약자로 AWS에서 제공하는 관계형 데이터베이스 서비스이다. EC2 인스턴스에 관계형 데이터베이스 엔진을 설치하여 데이터를 관리한다는 것은 개인 소유 차량을 이용하는것과 비슷하다. 유지 보수, 보험처리, 차량 정비, 기타 다른 일들을 운전자가 해결해야한다.

데이터베이스와 관련하여 자동으로 관리를 담당하는 부분이 매우 적어 사용자가 일일이 시간을 투자해 데이터베이스 엔진의 설치와 버전 관리, 데이터 백업을 해야하며 가용성과 내구성이 확보되지 않기 때문에 데이터가 유실되거나 정상적으로 사용하지 못할 확률이 있으며 필요에 따라 데이터베이스 규모를 확장하기가 어렵다.

RDS를 이용한다는 것은 렌터카 회사에서 차량을 대여하는것과 비슷하다. 대여 차량과 관련한 여러가지 일들을 렌터카 회사에서 대신 처리하며 운전자는 운전만 하면 되는것이다.
데이터베이스 유지 보수와 관련된 일들을 RDS에서 전적으로 자동 관리하여 큰 편의성을 느낄 수 있다. 또한 다양한 데이터베이스 엔진 선택지가 제공되어 데이터베이스 엔진을 취사선택하여 이용할 수 있다.

S3

Simple Storage Service의 약자로 클라우드 스토리지 서비스이다.
높은 확장성이 있어 스토리지 규모를 확장/축소하기가 쉽다. 스토리지 용량을 무한히 확장할 수 있으며 사용한 만큼만 비용을 지불하기 때문에 비용적인 측면에서 효율적이다.

가용 영역 내의 물리적인 서버가 세계 곳곳에 있어서 한 곳의 가용 영역이 재난이나 사고로 인해 가동이 불가능해지더라도 다른 가용 영역에 백업 해놓은 데이터를 활용하여 문제없이 서버가 가동되게 하는데 이를 통해 99.9%의 내구성을 보장하며 연간 99.9%의 스토리지 가용성을 보장한다.

profile
프런트엔드 개발자

0개의 댓글