[AWS] EC2에 MySQL 적용 및 사용하기

2024. 6. 15. 00:14·Infra & Cloud/AWS
반응형

 

EC2에서 MySQL을 사용할 수 있는 방법은 3가지이다.

  • AWS RDS 사용
  • 로컬 환경에서 직접 MySQL 설치 후 사용
  • Docker에서 DB Container image 다운로드

개인 프로젝트를 하면서 2번째 방법으로 개발을 진행했었는데, EC2에서 MySQL에 직접 연결했었던 과정을 답습하고자 이 글을 기록한다.

 

MySQL 적용 시 EC2가 생성이 되었다고 가정한다.

1. EC2 인바운드 규칙 설정

EC2에서 MySQL에 직접 접속하기 위해 MySQL 포트를 열어주어야 한다.

 

  • EC2 > 보안 그룹

(사용 중인 보안 그룹의 이름을 모른다면, 사용 중인 EC2의 요약 페이지로 들어가 하단의 '보안' 탭에서 확인할 수 있다.)

 

인바운드 규칙 편집

 

 

아래와 같이 규칙을 추가하고 저장한다.

 

HTTP, SSH, 사용자 서버 포트, MySQL 서버 포트 총 네 개의 인바운드 규칙이 적용되어야 한다.


2. EC2에서 MySQL 접속하기

AWS EC2 인스턴스에 접속 한 뒤, apt를 업데이트한다.

sudo apt update

 

mysql 서버를 다운받는다.

sudo apt install mysql-server

 

중간에 'After this operation, 156 MB of additional disk space will be used.' 라고 묻는데, Y를 입력해주자.

 

잘 설치 되었는지 확인하려면, mysql --version 을 입력한다.

 

mysql에 접속

mysql -u root -p 명령어를 사용하면 deny되므로 sudo를 사용해야 접속이 가능하다.

sudo mysql -u root -p

 

비밀번호는 설정이 되어있지 않아서, 그냥 엔터 한 번 더 치면 위와 같이 접속이 된다.

 

root 계정 비밀번호 설정

mysql 이라는 이름의 데이터베이스를 사용한다.

use mysql

 

root 계정의 비밀번호를 변경한다.

alter user 'root'@'localhost' identified with mysql_native_password by '비밀번호';

 

변경사항을 적용시키고 종료한다.

FLUSH PRIVILEGES;
exit

 

3. 외부 접속 허용하기

외부 접속을 허용하기 위해 mysqld.cnf 파일을 수정해야 한다.

 

우선 아래 명령어로 root 권한을 부여한다.

sudo su

 

mysqld.cnf 파일이 있는 디렉토리로 이동한다.

cd /etc/mysql/mysql.conf.d

ls 명령어로 해당 디렉토리에 mysqld.cnf 파일이 있는지 확인할 수 있다.

 

vi 에디터로 mysqld.cnf 파일을 실행한다.

vi mysqld.cnf

 

 

위와 같이 파일이 열릴텐데, 하단의 bind-address를 0.0.0.0 으로 수정한다.

 

이후 mysql 서버를 재시작한다.

sudo service mysql restart
sudo mysql -u root -p

 

아까 설정한 비밀번호도 입력해주어야 한다.

 

 

root 유저를 계속 사용하는 것은 부적절하므로 유저를 만들어 권한을 부여해야 한다. (필자는 fbrjs으로 하도록 하겠다)

CREATE USER 'fbrjs'@'%' IDENTIFIED BY '비밀번호';

 

아래 명령어로 권한을 부여한다.

GRANT ALL PRIVILEGES ON *.* TO 'fbrjs'@'%';

 

 

4. MySQL Workbench로 연결 테스트하기

 

MySQL Workbench를 설치하여 새로 connection을 생성해준다.

 

  • Hostname : EC2 퍼블릭 IP
  • Username : 아까 생성해준 fbrjs 유저
  • Password : 아까 설정해준 비밀번호 (Store in KeyChain을 누르면 설정 가능하다.)

 

Test Connection을 눌러 테스트가 완료되면 정상적으로 EC2에서 MySQL에 접속이 가능하다!

 

참고

 

MySQL과 AWS EC2 연결하기

EC2에 띄울 프로젝트(Django)가 MySQL과 연동된 상태라 EC2 내부에 MySQL을 설치하고 연결하고자 한다. AWS는 RDS라는 데이터베이스 서비스를 제공 중이고, MySQL을 지원한다. 보안, 운영 측면에서 상당히

woojin.tistory.com

 

반응형

'Infra & Cloud > AWS' 카테고리의 다른 글

[AWS] AWS RDS vs AWS Aurora 비교 분석  (3) 2024.11.20
[AWS] EC2 환경에서 Redis 구축하기  (0) 2024.07.25
[AWS] EC2와 RDS 연결하기  (0) 2024.07.25
[AWS] S3 이미지 업로드 및 EC2 연결하기  (0) 2024.06.13
[AWS] EC2에서 https 프로토콜 적용하기  (1) 2024.05.25
'Infra & Cloud/AWS' 카테고리의 다른 글
  • [AWS] EC2 환경에서 Redis 구축하기
  • [AWS] EC2와 RDS 연결하기
  • [AWS] S3 이미지 업로드 및 EC2 연결하기
  • [AWS] EC2에서 https 프로토콜 적용하기
류건
류건
개발 일지
  • 류건
    건's Dev
    류건
  • 전체
    오늘
    어제
    • 분류 전체보기 (99) N
      • Back-end (56)
        • Spring (31)
        • Nest.js (3)
        • Next.js (2)
        • Node.js (3)
      • Infra & Cloud (21)
        • Cloud Computing (6)
        • Docker (3)
        • AWS (7)
      • Java (2)
      • Computer Science (12)
        • Computer Network (0)
        • Operating System (0)
        • 정보 보호와 시스템 보안 (12)
        • Software Architecture (0)
      • 회고록 (4) N
        • 우아한테크코스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CORS
    Kafka
    CD
    ssl
    오블완
    express.js
    JWT
    db
    정보보호
    고가용성
    보안
    EC2
    CI/CD
    Spring
    https
    ddl-auto
    Github Actions
    WebClient
    Spring Boot
    Webflux
    어노테이션
    nginx
    Docker
    Lock
    node.js
    aws
    티스토리챌린지
    Nest.js
    JPA
    public key
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
류건
[AWS] EC2에 MySQL 적용 및 사용하기
상단으로

티스토리툴바