목차
SpringBoot로 작업한 서버를 docker를 사용해서 배포하면서 mysql 컨테이너까지 함께 묶어서 docker-compose를 사용하려고 계획했다.
EC2 프리티어는 작고 소중해서 웹애플리케이션과 mysql 이미지 사이즈를 감당하지 못해 웹서버와 DB서버를 분리하기로 결정했다.
AWS EC2 인스턴스 생성 과정은 생략하고 인스턴스에 최초로 접속한 이후 명령어에 대한 내용
1. 패키지 업데이트
sudo apt update
2. MySQL 서버 설치
sudo apt install mysql-server -y
3. MySQL 보안 설정
sudo mysql_secure_installation
- 비밀번호 유효성 검사 설정 : Y (유효성 레벨을 선택)
- 익명 사용자 삭제 : Y
- 원격 root 로그인 비활성화 : Y
- 테스트 데이터베이스 삭제 : Y
- 권한 테이블 다시 로드 : Y
4. MySQL 서비스 시작 및 활성화
sudo systemctl start mysql
sudo systemctl enable mysql
5. MySQL 원격 접속 설정
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
// vi 편집기에서 모든 IP 주소에서 접속할 수 있도록 편집
// i 눌러서 편집모드로 진입
bind-address = 0.0.0.0
// 편집완료 후 esc -> :wq 엔터
// 포트를 변경하려면 port 부분 주석을 제거하고 원하는 포트 번호로 변경
기본 포트는 3306, EC2 보안 탭의 인바운드 규칙에서 사용하는 포트를 설정해야 한다.
6. MySQL 재시작
sudo systemctl restart mysql
7. 원격 접속 사용자 추가와 권한 설정
보안 설정에서 원격 root 접속을 비활성화했기 때문에 사용자를 추가한다.
sudo mysql -u root -p
use mysql;
CREATE USER '사용자 아이디'@'%' IDENTIFIED BY '사용자 비밀번호-위에서 설정한 유효성에 맞춰서';
GRANT ALL PRIVILEGES ON *.* TO '사용자 아이디'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
'프로그래밍 > SpringBoot' 카테고리의 다른 글
Github Actions + AWS CI/CD (3) (0) | 2024.03.08 |
---|---|
Github Actions + AWS CI/CD (2) (0) | 2024.03.08 |
Github Actions + AWS CI/CD (1) (1) | 2024.03.08 |