어디까지 갈 수 있을까?

AWS 서버, 데이터베이스 환경을 만들어보자(EC2, RDS) 본문

책/스프링부트와 AWS로 혼자 구현하는 웹 서비스

AWS 서버, 데이터베이스 환경을 만들어보자(EC2, RDS)

_Min 2021. 4. 8. 21:59

IaaS(Infrastructure as a Service)

IT 인프라 대여(가상머신, 스토리지, 네트워크, 운영체제 등)

AWS EC2

 

PaaS(Platform as a Service)

IaaS를 한 번 더 추상화

빈스톡

 

SaaS(Software as a Service)

소프트웨어 서비스

구글 드라이브

 

AWS EC2 인스턴스

EC2(Elastic Compute Cloud), AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버, 가상머신

 

aws.amazon.com/ko/portal.aws.amazon.com/billing/signup#/start
30GB까지 프리티어 이용 가능

30GB까지 프리티어 이용 가능

EC2의 이름

EC2의 이름

HTTPS의 기본포트는 443, HTTP의 기본 포트는 80 / 지정된 IP에서만 SSH 접속이 가능하게 한다

HTTPS의 기본포트는 443, HTTP의 기본 포트는 80
지정된 IP에서만 SSH 접속이 가능하게 한다

와이파이를 사용하고 있으면 내 IP가 계속 바뀌어 EC2의 인바운드규칙에서 SSH의 내 IP를 계속 변경해줘야 접속 가능

인스턴스는 지정된 pem키(비밀키)와 매칭되는 공개키를 가지고 있어 pem키외의 접근을 허용하지 않는다

인스턴스는 지정된 pem키(비밀키)와 매칭되는 공개키를 가지고 있어 pem키 외의 접근을 허용하지 않는다

인스턴스가 중지하고 다시 시작할 때 새 IP가 할당되기 때문에 매번 변경되지 않고 고정 IP를 갖게 하기 위해 EIP(Elastic IP)를 할당한다

 

EC2 서버에 접속하기

https://www.putty.org/

에서 putty.exe, puttygen.exe 받음

puttyge.exe 실행

putt.exe 실행

방금 생성한 ppk키 넣고
Session으로 돌아와서 Save

Open 누르면

 

리눅스 서버 생성 시 꼭 해야 할 설정들

자바 8 설치
sudo yum install -y java-1.8.0-openjdk-devel.x86_64

자바 버전을 8로 변경
sudo /usr/sbin/alternatives --config java
1.8 버전 선택

사용하지 않는 자바7 삭제
sudo yum remove java-1.7.0-openjdk

자바 버전 확인
java -version
타임존 변경
EC2의 기본 타임존은 UTC 이기 때문에 한국시간으로 변경

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

타임존 확인
date
Hostname 변경
sudo hostnamectl set-hostname freelec-springboot2-webservice

sudo reboot
sudo vim /etc/hosts

127.0.0/1   freelec-springboot2-webservice
curl freelec-springboot2-webservice

아직 80포트로 실행된 서비스가 없음을 뜻하는 에러가 뜨면 성공

 

RDS 인스턴스 생성하기

RDS를 생성하면
타임존, Character Set, Max Connection설정을 해야 함

 

char 검색 시 나오는 모든 항목 utf8mb4로 변경
utf8과 utf8mb4의 차이는 이모지 저장 가능 여부

RDS의 DB 파라미터 그룹을 아까 생성한 DB 파라미터 그룹으로 변경한다

재부팅하기

 

 

내 PC에서 RDS에 접속해보기

RDS보안 그룹 인바운드로 EC2에 사용된 보안 그룹의 ID와 내 IP를 추가한다

RDS와 개인 PC, EC2 간의 연동 설정이 완료

인텔리제이에서 설치

ctrl+shift+a로 Database Browser 실행

Name에 RDS DB식별자
Host에 RDS 엔드 포인트(접속 URL) 입력

Test Connection 성공

사용할 DB이름 입력

show variables like 'c%';

character_set_database, collation_connection을 utf8mb4로 변경해준다

alter database freelec_springboot2_webservice
character set = 'utf8mb4'
collate = 'utf8mb4_general_ci';

select @@time_zone, now();

 

한글명이 잘 들어가는지 테스트해보자

CREATE TABLE test(
    id bigint(20) not null auto_increment,
    content varchar(255) default null,
    primary key (id)
) ENGINE=InnoDB;

insert into test(content) values ('테스트');

select * from test;

 

 

EC2와 RDS가 잘 연동되는지 확인

EC2에 putty로 SSH 접속 진행

MySQL 접근 테스트 위해 설치
sudo yum install mysql

RDS 접속 
mysql -u 계정 -p -h Host주소

host에는 RDS의 엔드 포인트를 넣는다
show databases;


생성한 freelec-springboot2-webservice DB가 있다면 성공

728x90
Comments