(2022-08-23수정)
인스턴스 생성/Amazon Linux -> Ubuntu18.04LTS로 OS변경
신용카드가 필요하고, 플랜은 무료로 사용하기 위해서 기본회원(Basic)으로 진행
아래 사이트를 통해서 현재 자신이 가입한 플랜을 확인 및 변경할 수 있다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/change-support-plan/
현재 블로그에선 프리티어
계정으로 진행할 것입니다.
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
으로 설정해줍니다.
최종적으로 오른쪽에 나오는 인스턴스 요약정보는 다음과 같습니다.
이후 인스턴스 시작
을 누르면
다음과 같이 성공적으로 인스턴스가 생성되는 것을 볼 수 있습니다.
오른쪽에 모든 인스턴스 보기
or EC2홈페이지에서 현재 사용중인 인스턴스를 확인할 수 있고 해당 인스턴스의 id를 누르면 상세정보를 볼 수 있다.
그 중에 퍼블릭IPv4주소
를 많이 사용할 것이다.
아래의 사이트를 통해서 putty
(ec2접속)와 puttygen
(pem -> ppk 변환)를 설치해줍니다.
puttygen에서 pem -> ppk로 변환하는 과정은 아래와 같다.
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을 입력하면 됩니다.
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
$ 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
데이터베이스 생성
클릭
사용하려는 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가지
를 utf8mb4_unicode_ci
로 변경합니다.
(collection 이아니라 collation
임을 주의하기 바람.)
변경사항 미리보기를 하면 아래와 같을 것입니다.
이는 데이터베이스의 한글사용(utf-8)과 이모티콘 사용(m64)등 다양한 인코딩방식이 사용가능한 타입 인코딩 설정입니다.
다 확인된다음 변경 사항 저장
을 클릭합니다.
이후 변경된 DB 파라미터 그룹을 적용시켜줘야됩니다.
(추가: 시간대 설정)
아래와 같이 time_zone
파라미터의 값을 Asia/Seoul
로 고친 후 위와 동일하게 변경 사항 저장해주시기 바랍니다!
RDS > DB 인스턴스 클릭
생성했던 database 클릭 후 오른쪽 상단에 있는 수정
버튼 클릭
다음과 같이 DB 파라미터 그룹을 변경해줍니다.
[AWS RDS] Cannot modify a default parameter group 에러 해결
해당 사이트에서 소개하고 있듯이
호스트 이름
, 포트
, 사용자 이름
, 패스워드
의 입력을 통해 workbrench와 연동할 수 있습니다.
RDS > 왼쪽 목록에 데이터베이스
> 연결&보안
탭으로 이동하면
엔드 포인트 및 포트 정보를 볼 수 있습니다.
해당 정보들은 workbrench에서 상단에 Database
탭에서 Connect to Database
를 선택하면 아래와 같은 창이 뜨는데 이때,
변수 | 입력값 |
---|---|
Hostname | {RDS의 엔드포인트 주소} |
Username | admin |
Password | {앞서 마스터 암호로 입력했던 비밀번호} |
ok
버튼 누르고 password 입력하면 DB 스키마도 생성하고 SQL문도 작성할 수 있습니다.
서버 자체에서 MySQL 접속해서 터미널로 관리할 수도 있지만 workbrench가 더욱 편하니 workbrench로 작업 진행하겠습니다.
[AWS RDS] Cannot modify a default parameter group 에러 해결
Amazon RDS DB인스턴스에 MySQL Workbrench 연동