동일한 서버 내에 백엔드, 데이터베이스가 위치하고 있었다
임시로 Docker로 올려놓고 사용하고 있었는데 ec2 분리하는 김에 AWS RDS는 비싸니 직접 설치하여 사용하기로 했다
- mysql에 접근할 때 사용할 유저이름, 패스워드 설정
spring.datasource.url=jdbc:mysql://<MySQL_Server_Private_IP>:3306/<데이터베이스>
spring.datasource.username=<username>
spring.datasource.password=<password>
1. ec2 생성
2. MySQL 설치
sudo apt update
sudo apt install mysql-client
mysql -h <MySQL_Server_Private_IP> -u <username> -p
3. MySQL 보안 설정 실행
mysql_secure_installation
VALIDATE PASSWORD COMPONENT 사용 여부 : y(Yes) 또는 n(No) 선택 (선택 사항)
익명 사용자 삭제 → Y
원격 Root 접속 비활성화 → Y
테스트 데이터베이스 삭제 → Y
권한 적용 → Y
4. 유저 생성
🔍 MySQL의 auth_socket 플러그인이란?
auth_socket은 MySQL이 Linux 시스템의 사용자 인증을 직접 활용하는 방식
MySQL root 계정에 접속할 때 별도의 비밀번호 없이도 Linux 시스템 계정(root 또는 mysql)으로 로그인하면 자동으로 인증됨
이 방식은 보안성을 높이고, 시스템 관리자의 MySQL 접근을 간편하게 만들어 줌
CREATE USER '<username>'@'%' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON <데이터베이스>.* TO '<username>'@'%';
(최소권한의 원칙) 직접 테이블 구조 변경 불가능하도록 하는 것이 보안상 더 좋지만..
5. 데이터베이스 생성
CREATE DATABASE IF NOT EXISTS <데이터베이스>;
6. MySQL 원격 접속 활성화
기본적으로 로컬에서만 접속 가능하도록 설정되어 있다
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
7. MySQL이 있는 EC2의 보안 그룹 규칙 수정
백엔드 보안 그룹에서만 접근 가능하도록 변경
8. 백엔드 서버에서 MySQL 접속이 가능한지 확인
[쀼] S3에 업로드한 사진 : 이미지 핫링크 방지 과정 (3) (0) | 2025.02.11 |
---|---|
[쀼] S3에 업로드한 사진 : 이미지 핫링크 방지 과정 (2) (1) | 2025.02.10 |
[쀼] S3에 업로드한 사진 : S3 퍼블릭 엑세스 차단 활성화(1) (1) | 2025.01.12 |
[쀼] 카카오맵 API 사용하기 (0) | 2025.01.08 |
[쀼] 화면이 실시간으로 바뀌어야 하는 요구사항을 해결해보자 (2) : 프론트앤드 (0) | 2025.01.06 |