문제해결 및 일기장

TIL Amazon Web Service

he2mo 2021. 11. 1. 14:38

 

Cloud Computing

 

아마존에서 제공하는 클라우드 서비스로 일반적으로 외부저장소의 느낌으로 사용하는 클라우드와는 다소 다른 개념이다. 클라우드 서비스의 형태는 크게 SaaS(Software as a Service), IaaS(Infrastructure as a Service), PaaS(Platform as a Service) 로 나눌 수 있는데 네이버 mybox 나 구글 drive 는 일반 소비자를 위해 저장공간을 제공하는 느낌이라면 AWS의 타깃은 개발자, 엔지니어 등의 IT 관계자며 단순히 저장공간을 제공하는 것이 아니라 인프라를 제공한다고 볼 수 있다.

 

 

Deploy

 

웹페이지를 만들더라도 배포를 하지않으면 아무나 접속할 수 없다. 개발한 서비스를 사용자가 이용할 수 있도록 배포하는 과정을 거쳐야만 한다. 기본적으로 4가지 단계를 거쳐 개발한 서비스를 배포할 수 있다.

 

Development

로컬 컴퓨터 환경에서 개발 및 테스트 / 모든 구성원이 각자의 환경에서 진행

 

Integration

개발된 부분들의 취합 / 각자가 개발한 서비스들 사이에 충돌이 일어나지 않는지 확인

 

Staging

Production 단계와 가장 유사한 환경에서 테스트 / 모든 관계자들에게 검증

 

Production

개발된 서비스 출시 / 개발환경과는 구분된 환경

개발환경이나 사용환경이 모두 제각각이기 때문에 절대경로보다는 상대경로를 사용하고 환경에 따라 분기할 수 있도록 환경변수를 설정해주어야 한다.

 

 

EC2(Elastic Compute Cloud)

 

AWS에서 제공하는 클라우드 컴퓨팅 서비스로 원격으로 제어할 수 있는 가상의 컴퓨터를 빌리는 것이다. Elastic에는 탄력적인 이라는 뜻이 담겨있으며 내가 사용한 만큼 비용을 지불할 수 있어 유연하다. 서버가 필요할 때 서버실에 서버컴퓨터를 두고 운용할 수 있지만 여기에는 물리적인 공간 제약과 초기비용이 고정되어있어 진입장벽이 높다. AWS는 이러한 문제점을 개선하여 원격으로 조작할 수 있는 서비스를 제공한다. 또한 사용한 만큼 비용을 지불하기 때문에 대규모프로젝트가 아니라면 직접 운용하기에는 부담스러운 부분들을 해결해준다. EC2를 사용하면 구성하는데 드는 시간이 짧고 필요한 용도에 따른 다양한 운영체제, CPU, RAM, 용량에 대한 선택이 가능하다. 

 

 

RDS(Relational Database Service)

 

EC2가 컴퓨터를 하나 빌려주는 느낌이라면 RDS는 관계형 데이터베이스 서비스만을 따로 분리해 빌려주는 느낌이다. 데이터베이스에 특화되어 따로 데이터베이스 관련 패키지들을 설치할 필요없이 빠르게 구성하고 사용할 수 있다. RDS를 이용하면 데이터베이스 유지보수와 관련된 일들을 AWS에서 관리해주기 때문에 직접 데이터베이스를 운용하는 것보다 편리하다. 원하는 데이터베이스 엔진을 선택할 수도 있기때문에 필요와 목적에 맞게 데이터베이스 엔진을 선택한다면 효율성을 높일 수 있다.

 

 

S3(Simple Storage Service)

 

클라우드 스토리지 서비스로 구글 드라이브나 네이버의 mybox와 비슷하다. 컴퓨터의 저장 공간으로 하드디스크나 SSD를 이용하는 것처럼 인터넷 공간에 데이터를 저장하는 저장소를 제공한다. 만약 외장하드를 사용한다면 사용을 위해 항상 휴대하고 다녀야한다는 불편함이 있지만 클라우드 스토리지 서비스를 이용한다면 원하는 곳에서 인터넷 접속을 통해 데이터에 접근할 수 있다. AWS의 S3 사용시 필요한 만큼 저장공간을 늘릴 수 있고 이에 따라 비용을 지불하기 때문에 효율적으로 사용할 수 있고 스토리지의 내구성이 높아 저장된 파일을 유실할 가능성이 적다.