[2022 하계 모각코] Spring boot and MySQL AWS EC2 배포 with RDS(1)

Kyunghwan Ko·2022년 8월 14일
2

22년도 하계 모각코

목록 보기
8/13
post-thumbnail

(2022-08-23수정)
인스턴스 생성/Amazon Linux -> Ubuntu18.04LTS로 OS변경

AWS 회원가입

처음이라면?

신용카드가 필요하고, 플랜은 무료로 사용하기 위해서 기본회원(Basic)으로 진행

이미 회원가입이 되어있다면?

아래 사이트를 통해서 현재 자신이 가입한 플랜을 확인 및 변경할 수 있다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/change-support-plan/

현재 블로그에선 프리티어 계정으로 진행할 것입니다.

EC2생성

https://us-east-1.console.aws.amazon.com/ec2/v2/home?region=us-east-1#Home:
위 사이트에서 인스턴스 시작 클릭

인스턴스 생성

AWS에서 제공하는 다양한 클라우드 서비스 중 현재 사용하려는 것을 서버이므로 EC2 인스턴스를 생성해야한다.

AMI 64비트를 선택하고(가상머신에 필요한 정보를 이미지로 만들어 둔 것)
그리고 인스턴스 유형은 제일 이용료가 저렴한 t2.micro


(Ubuntu를 선택한 이유는 나중에 배포 후 소셜로그인 진행 시 https로 redirect 시킬때 nginx및 여러 설정을 할 때 편하게 하기 위함)

그리고 나중에 인스턴스에 연결할대 사용할 키페어를 생성해줍니다.

제일 중요한 부분인 보안그룹 설정단계입니다.
맨 처음엔 ssh유형으로 내 IP만 접근할 수 있게 허용한 후
이후 보안그룹규칙추가를 통해서 사용자 지정TCP유형으로 한 후
Tomcat 서버를 위한 포트 범위 :8080
Node.js 서버를 위한 포트 범위 :3000 으로 설정해줍니다.

마지막으로 스토리지 구성을 프리티어의 최대 용량인 30GB로 설정한 후

최종적으로 오른쪽에 나오는 인스턴스 요약정보는 다음과 같습니다.

이후 인스턴스 시작을 누르면

다음과 같이 성공적으로 인스턴스가 생성되는 것을 볼 수 있습니다.

오른쪽에 모든 인스턴스 보기 or EC2홈페이지에서 현재 사용중인 인스턴스를 확인할 수 있고 해당 인스턴스의 id를 누르면 상세정보를 볼 수 있다.
그 중에 퍼블릭IPv4주소를 많이 사용할 것이다.

EC2 실행하기

아래의 사이트를 통해서 putty(ec2접속)와 puttygen(pem -> ppk 변환)를 설치해줍니다.

Puttygen설치방법

puttygen에서 pem -> ppk로 변환하는 과정은 아래와 같다.

  1. Download PuTTYGen from puttygen.com
  2. Open PuTTYGen and click the Load button
  3. Set the filetype to . so the AWS PEM file is visible
  4. Select your PEM file and PuTTYGen will import it
  5. Click Save Private Key and PuTTYGen will convert the PEM to a PPK file

ppk로 변경 후 putty에 반영해서 ec2서버를 열어야한다.
Connection -> SSH -> Auth 에서 Browse 를 통해 앞서 생성한 ppk 파일을 올리고
Session에서 앞서 언급했던 퍼블륵IPv4 주소를 HostName에 입력하고
port 22, ssh, Telnet 로 설정한 다음 앞으로 해당 ec2를 자주 열것이기 때문에 4can10000won이라는 이름을 지정해서 save해주고 open해주면 터미널 창이 뜬다. Accept를 해주고
해당 터미널 창에서 ubuntu 를 입력하면 ec2서버 컴퓨터에 접근할 수 있다. (AWS Linux인 경우엔 ec2-user, 현재는 Ubuntu이기 때문에 ubuntu임)
현재 컴퓨터는 아무것도 설치가 안되어있기 때문에 java 애플리케이션을 설치해줘야 한다.

java jdk17버전을 설치하겠습니다.
터미널에 붙여넣기는 Shift + insert키를 누르면 됩니다.
설치 중간에 alternatives 명령어에서 선택할 자바 버전을 selection number를 입력해서 선택해야합니다. 맨처음 jdk를 설치한 것이라면 1을 입력하면 됩니다.

EC2에 jdk 17버전 설치하기

(AWS Linux 일경우)

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

sudo rpm -ivh jdk-17_linux-x64_bin.rpm

sudo alternatives --config java

java -version

(AWS Ubuntu 일경우)

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt install openjdk-17-jdk
$ java -version

(참고: JDK(자바 개발 도구)에는 JRE(자바 실행 환경)이 같이 포함되어있기 때문에 JDK만 설치해도 ok)

이후 시간대를 한국의 서울로 변경합니다.

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

RDS MySQL 데이터베이스 배포

데이터베이스 생성클릭

사용하려는 MySQL데이터베이스 엔진을 선택 후

엔터프라이즈급 프로젝트는 아니고 가볍게 사용하기 위해 프리티어를 선택하겠습니다.

기본적인 설정을 해주고 나머지는 기본값을 그대로 유지하면 됩니다.

그 중 퍼블릭 엑세스 를 체크하면 됩니다.

위와 같은 주의사항을 인지한 후 데이터베이스 생성을 클릭합니다.

생성을 완료한 후 해당 데이터 베이스로 들어가서 보안그룹파라미터 그룹을 수정해줘야 합니다.

보안 그룹은 해당 origin 접속 가능한 서버들을 명시하는 것이고 파라미터 그룹은 타입 인코딩 정보를 저장한다고 생각하면 됩니다.

보안 그룹 수정

보안 그룹 수정 -> 모든 IP에서 3306 포트만 허용

보안 그룹 수정으로 들어가기 위해선

위와 같이 RDS에서 데이터베이스 를 클릭한 후 아까 생성한 데이터베이스의 DB식별자를 클릭한다.

연결&보안 탭에서 VPC 보안그룹을 클릭하면 보안 그룹 관련 수정을 할 수 있다.

인바운드 규칙 탭에서 오른쪽에 있는 인바운드 규칙 편집을 클릭합니다.

그리고 규칙 추가를 클릭해서 새로운 규칙을 만들면 되는데,
유형MySQL/Aurora로 바꾸고 그러면 자동으로 포트범위가 3306으로 설정됩니다. 이후 소스 의 돋보기 모양을 눌러 0.0.0.0/0으로 설정해서

3306포트에 모든 ip4접속을 허가하는 규칙을 추가해주면 어느 ip주소에서도 암호만 입력하면 해당 데이터베이스에 연결할 수 있게 됩니다.

보안을 위해 접속을 막고 싶다면 내 ip를 선택하거나 직접 ip 주소를 명시해 특정 주소에서만 연결이 가능하게 변경할 수도 있습니다.

파라미터 그룹 수정

파라미터 그룹 수정 -> 타입 인코딩 정보 변경

파라미터 그룹을 수정하기 앞서 default 파라미터는 수정할 수 없기 때문에

우측 상단에 파라미터 그룹 생성을 클릭합니다.

위와 같이 파라미터 그룹을 생성한 후 수정작업을 진행해보겠습니다.

파라미터 그룹 수정을 위해선 RDS에서 왼쪽 목록에 파라미터 그룹을 클릭하면 됩니다.

파라미터 편집을 누르고 다음과 같이 편집 후 변경사항 미리보기를 클릭합니다.


위와 같이 6가지를 utf8mb4로 설정한 후
그리고 2가지

  • collation_connection
  • collation_server

utf8mb4_unicode_ci로 변경합니다.
(collection 이아니라 collation 임을 주의하기 바람.)

변경사항 미리보기를 하면 아래와 같을 것입니다.

이는 데이터베이스의 한글사용(utf-8)과 이모티콘 사용(m64)등 다양한 인코딩방식이 사용가능한 타입 인코딩 설정입니다.

다 확인된다음 변경 사항 저장을 클릭합니다.

이후 변경된 DB 파라미터 그룹을 적용시켜줘야됩니다.

(추가: 시간대 설정)
아래와 같이 time_zone 파라미터의 값을 Asia/Seoul로 고친 후 위와 동일하게 변경 사항 저장해주시기 바랍니다!

RDS > DB 인스턴스 클릭

생성했던 database 클릭 후 오른쪽 상단에 있는 수정 버튼 클릭

다음과 같이 DB 파라미터 그룹을 변경해줍니다.

RDS와 MySQL Workbrench 연동

[AWS RDS] Cannot modify a default parameter group 에러 해결
해당 사이트에서 소개하고 있듯이
호스트 이름, 포트, 사용자 이름, 패스워드의 입력을 통해 workbrench와 연동할 수 있습니다.

RDS > 왼쪽 목록에 데이터베이스 > 연결&보안 탭으로 이동하면

엔드 포인트 및 포트 정보를 볼 수 있습니다.

해당 정보들은 workbrench에서 상단에 Database 탭에서 Connect to Database를 선택하면 아래와 같은 창이 뜨는데 이때,

변수입력값
Hostname{RDS의 엔드포인트 주소}
Usernameadmin
Password{앞서 마스터 암호로 입력했던 비밀번호}

ok 버튼 누르고 password 입력하면 DB 스키마도 생성하고 SQL문도 작성할 수 있습니다.
서버 자체에서 MySQL 접속해서 터미널로 관리할 수도 있지만 workbrench가 더욱 편하니 workbrench로 작업 진행하겠습니다.

참조

AWS + Spring boot 서버 배포하기

AWS Support 플랜 변경 방법

[AWS RDS] Cannot modify a default parameter group 에러 해결

Amazon RDS DB인스턴스에 MySQL Workbrench 연동

[AWS RDS] Cannot modify a default parameter group 에러 해결

Puttygen설치방법

profile
부족한 부분을 인지하는 것부터가 배움의 시작이다.

0개의 댓글