Cloud Computing
물리적인 컴퓨터가 아닌, 가상 컴퓨터를 대여한다는 점
장점
서버의 자원과 공간 및 네트워크 환경 제공
필요할 때마다 컴퓨팅 능력을 유연하게 조절
사용한 만큼의 요금만 지급
다른 컴퓨터로 즉시 이주가 가능
단점
클라우드 서비스 종속
서비스에 영향을 미침
작성한 코드가 다른 환경에서 정상 작동할 수 있게 하려면?
1. 절대경로 대신 상대경로를 사용한다.
2. 환경에 따라 포트를 분기할 수 있도록 환경변수를 설정해준다.
Amazon EC2
AWS에서 제공하는 클라우드 컴퓨팅 서비스
AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것
아마존 EC2를 통해서 할 수 있는 가장 기본적인 일은 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공하는 것
인스턴스는 1대의 컴퓨터를 의미하는 단위이다.
AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것
EC2서비스 특징
1. 후불제 PC방과 같이 사용한 만큼 비용을 지불하기 때문에 비용적인 부분뿐만 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다.
2. 구성하는 데 필요한 시간이 짧다.
3. 다양한 운영체제에 대한 선택이 가능하다.
AMI(Amazon Machine Image)는 소프트웨어 구성이 기재된 템플릿
이미지 종류로는 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿을 선택할 수도 있고, 아예 특정 런타임이 설치되어 있는 템플릿이 제공되는 경우도 있다.
RDS (==? 렌터카)
AWS에서 제공하는 관계형 데이터베이스 서비스
EC2 인스턴스에 데이터베이스를 설치하면 되지않을까? (==? 개인차량)
=> 사용자가 일일이 시간을 투자하여 데이터베이스 엔진의 설치와 버전 관리, 데이터 백업을 해야한다. 게다가 가용성과 내구성이 확보되지 않기 때문에 데이터베이스에 저장된 데이터가 유실되거나 정상적으로 사용되지 못할 확률이 커지며 후에 필요에 따라 데이터베이스의 규모를 확장하기 어렵다.
S3 (Simple Storage Service)
AWS에서 제공하는 클라우드 스토리지 서비스
클라우드스토리지? 인터넷 공간에 데이터를 저장하는 저장소
S3의 장점
1. 확장성 : 데이터를 무한히 저장 가능하다.
2. 강력한 내구성 : 99%의 내구성
3. 높은 가용성 : 1년동안 S3파일 저장 시 8.76시간 동안만 장애발생
4. 다양한 스토리지클래스 제공 : 저장소를 어떤 목적으로 활용할지에 따라 클래스를 선택(standard,glacier 외 여러가지 클래스가 존재한다.)
Client 배포
AWS서비스 중 하나인 S3를 이용해서 사용자에게 client application을 제공할 수 있다.
S3를 이용해 클라이언트를 정적파일로 빌드하여 배포한다.
-빌드란? 불필요한 데이터를 없애고 통합/압축하여 배포하기 최적화된 상태를 만드는 것 , 데이터의 용량이 줄어들고 웹 사이트 로딩 속도가 빨라진다.
사용자가 지구 반대편에 있다면 어떻게 빠르게 서비스를 제공할 수 있을까?
-> AWS에서 제공하는 CDN서비스인 CloudFront를 통해 각지의 데이터 센서에 데이터를 분산시켜서 저장해뒀다가 가까운 지역에서 데이터를 주는 방식으로 빠르게 서비스를 제공할 수 있다.
Server Application 배포
AWS EC2 서비스를 통해 손쉽게 서버를 구성하고 서비스를 제공할 수 있다.
Database 배포
AWS에서는 Database 특화 서비스인 RDS 서비스를 제공하고 있다.
AWS가 유지 보수 작업을 담당하는 RDS를 이용하여 즉시 데이터베이스를 사용할 수 있다.
RDS 서비스를 이용하여 EC2를 통해 배포된 Server Application의 데이터를 저장, 제공하는 데이터베이스를 배포할 수 있다.
DNS
직접 배포한 서비스는 현재 IP주소 혹은 AWS에서 제공한 서비스와는 전혀 연관이 없는 도메인으로 접속한다.
도메인을 통해 서비스에 접속하려면 AWS의 서비스 중 Route53을 이용한다.
보안그룹 - 인바운드 / 아웃바운드
PM2
S3 에는 build 후 파일 집어넣기
EC2 에는 AWS서버열고 sudo apt update , sudo apt install 후 깃클론