11. AWS에 프로젝트 배포하기
일래스틱 빈스토크 서비스 생성 후 RDS를 추가했습니다.
create database blog;
use blog;
create table article(
id bigint not null AUTO_INCREMENT,
author varchar(255) not null,
content varchar(255) not null,
created_at timestamp,
title varchar(255) not null,
updated_at timestamp,
primary key (id)
);
create table refresh_token (
id bigint not null AUTO_INCREMENT,
refresh_token varchar(255) not null,
user_id bigint not null,
primary key (id)
);
create table users(
id bigint not null AUTO_INCREMENT,
created_at timestamp,
email varchar(255) not null,
nickname varchar(255),
password varchar(255),
updated_at timestamp,
primary key (id)
);
테이블이 잘 생성되었는지 확인하기 위해 show tables;를 입력했습니다.
gradle -> Tasks -> build -> build 더블 클릭해 jar파일을 만들고 업로드합니다.
제대로 배포했으나 OAuth 로그인을 시도하면 액세스 거부 에러 메시지가 발생합니다.
이를 해결하기 위해 구글 클라우드 콘솔에 들어가 승인된 리다이렉션 URL에 추가해주니 정상적으로 서비스를 이용할 수 있었습니다.
요약
1. 애플리케이션 배포는 물리적 서버와 클라우드 서버에 할 수 있습니다.
물리적 서버는 서버 관리를 직접할 수 있기 때문에 보안적으로 유리하지만 서버가 크면 따로 서버실을 만들어야 할정도로 공간의 제약을 받고 만약 서버의 리소스가 부족할 때는 직접 서버를 추가 구매해야 하기 대문에 많은 시간이 소요될 수 있습니다.
클라우드 서버는 가상의 공간에서 서버를 제공받기 때문에 공간의 제약을 받지 않고 서버를 추가하거나 줄이고 싶을 때 원하는 만큼 바로 조절할 수 있습니다. 그러나 클라우드 서비스 자체에서 문제가 생기면 대처가 어렵다는 단점이 있습니다.
2. AWS는 클라우드 서비스의 대표적인 업체로 많은 클라우드 서비스를 제공합니다. AWS 에서는 많은 서비스를 제공하는데 대표적인 서비스로 가상 서버를 띄우는 EC2, 클라우드 데이터베이스인 RDS, 파일 저장소인 S3 등이 있습니다.
3. 일레스틱 빈스토크는 최소한의 설정으로 서버를 구성할 수 있게 돕습니다. 일래스틱 빈스토크를 사용하면 코드를 업로드해 서버를 올릴 수 있고 로드밸런싱, 오토 스케일링, 모니터링, 배포 같은 것들을 일레스틱 빈스토크 메뉴안에 직접 구성하거나 설정 파일을 이용해 자동으로 처리하도록 구성할 수 있습니다.