계발하는 개발자

[AWS] AWS EC2를 이용해 배포하기 (2) - EC2에 MySQL 서버 구축 본문

🌎 Cloud & Infra/AWS

[AWS] AWS EC2를 이용해 배포하기 (2) - EC2에 MySQL 서버 구축

dev_genie 2023. 10. 20. 15:06

EC2에 MySQL 서버를 구축하기 위해선 먼저 AWS RDS MySQL 인스턴스를 생성해야한다.

 

1. AWS RDS 란?

 AWS RDS(Relational Database Service)는 AWS에서 제공하는 데이터베이스 서비스다.

    *AWS RDS 데이터베이스 엔진

RDS를 통해 직접 데이터베이스 서버를 설치하고 운영할 필요없이, RDS를 통해 원하는 데이터베이스 시스템과 버전 설정을 한 후 사용할 수 있다. 또한 직접 데이터베이스 서버를 운영하는 것보다 더 저렴한 가격에 사용할 수 있다고 장점이 있다.

 

 

*RDS 데이터베이스 엔진별 기능 정리는 아래 참고

https://aws.amazon.com/ko/rds/features/

 

2. AWS RDS MySQL 인스턴스 생성 방법

① AWS Management Console 'RDS' 검색

AWS Management Console에서 'RDS'를 검색한다.

 

② AWS RDS 대시보드 > 데이터베이스 생성

RDS 대시보드에 상단에 있는 데이터베이스 생성 클릭

 

③ 데이터베이스 생성 방식, 엔진 옵션 선택 

1) 데이터베이스 생성방식:: 표준 생성 선택

2) 엔진옵션:: MySQL 선택 

 

③ 엔진 버전, 템플릿 선택

  • MySQL 버전을 선택한다.(내 경우 최신 버전 선택)
  • 템플릿은 프리티어로 선택해준다.

 

④ 설정

1) DB 인스턴스 식별자

  • AWS 리전에서 AWS 계정이 소유하는 모든 DB인스턴스에 대해 고유한 식별자를 작성한다.

 

2) 마스터 사용자 이름, 마스터 암호

  • 마스터 사용자의 ID와 암호를 작성한다.
  • 추후 MySQL 서버 접속시 사용되는 부분이므로 잘 기억해둬야한다.

 

⑤ DB 인스턴스 구성

  • DB 인스턴스 크기를 설정해준다.
  • 본 포스팅에서는 Default로 설정된 값을 사용하겠다.

 

⑥ 스토리지

  • 이것도 그냥 디폴트 옵션을 선택해준다.
  • 스토리지 자동 조정은 동적으로 스토리지를 확장하는 기능이다. (Scale Out)
  • 최대 스토리지 임계값은 1000GB로 설정되어있다.

 

⑦ 연결

1) VPC / 서브넷 그룹

  • Default 옵션을 사용해줬다.

 

2) 퍼블릭 액세스 기능

  • Public IP를 할당하여, 외부에서 DB인스턴스를 접근할 수 있도록 하는 기능이다.
  • ubuntu에서 MySQL에 접근할 것이기 때문에, 예 옵션을 선택해준다.

 

3) VPC 보안 그룹

  • 기존에 생성한 보안그룹과 연결시킨다.
  • 보안그룹이 없다면, 새로 생성을 클릭한다.
  • 추후 EC2에서 사용하기 위해서는 EC2의 보안 그룹을 연결해야 한다.

 

4) 데이터베이스 포트

  • MySQL 포트가 3306에서 구동하므로 3306을 사용한다.

 

⑧ Ubuntu에서 AWS RDS MySQL 인스턴스 연결

1. RDS 인스턴스 생성 확인

  • 설정을 마친 뒤, 생성된 RDS 인스턴스를 확인한다. 상태가 사용가능으로 표시되어야 한다.
  • 생성된 RDS 인스턴스를 클릭한다.

 

2. AWS RDS 보안그룹 설정

EC2에서 RDS 인스턴스에 접속하려면 보안 그룹 설정을 해야한다.

보안그룹을 열어서 인바운드 규칙 2개를 추가한다.

  • EC2 그룹
  • 로컬호스트

VPC 보안 그룹을 클릭한다.

인바운드 규칙 편집을 클릭

위 두 규칙을 추가해주고 규칙 저장을 클릭

지금은 내 IP 보안 그룹 규칙 ID가 '-' 인데 저장후 다시 들어오면 보안 그룹 규칙 ID가 자동으로 생성돼있다.

(보안그룹 규칙 설정 방법은 아래 참고)

더보기

EC2 보안그룹 규칙 설정 방법

1. EC2 인스턴스 > 보안 탭에서 '보안그룹 ID', 'VPC ID' 를 복사한다. 

 

2. EC2 보안그룹 탭 이동후, 보안 그룹 생성 클릭

 

3. 보안 그룹 세부 정보 입력

  • 보안 그룹 이름/ 설명: 식별 가능한 이름과 설명을 입력한다.
  • VPC: 앞서 복사한 ec2 'VPC ID'를 넣어준다.

 

4. '규칙 추가' 클릭후 인바운드/ 아웃바운드 규칙을 추가

  • 인바운드 규칙
    • 유형: MySQL/Aurora 선택
    • 소스: 사용자 지정 > 복사한 ec2 '보안그룹 ID'를 넣어준다.
  • 아웃바운드 규칙
    • 유형: 모든 트래픽 선택
    • 대상: 위치 무관으로 설정

 

3. RDS 인스턴스의 엔드포인트 확인

  • RDS 인스턴스의 엔드포인트를 확인한다.
  • 엔드포인트를 복사해준다.

 

4. ubuntu에서 RDS MySQL 서버 접속확인

  • 다음 명령어를 입력하여 서버에 접속한다.
  • $ mysql -u root -p -h <복사한 엔드포인트>

 

5. MySQL Workbench에서 AWS RDS DB 인스턴스 연결

DB 추가 연결을 위해 workbench에서 + 버튼을 누른다.

 

위 3군데 정보를 입력한다.

  • Connection Name:: 사진에서는 test로 했지만, 실제 생성은 EC2 SERVER 란 이름으로 해줬다.
  • Hostname:: rds 인스턴스 엔드포인트 이름을 넣어준다.
  • Username:: 위의 ④ 설정에서 입력해줬던 마스터사용자 이름을 넣어준다.
  • Password:: [Store in Valut..] 클릭후 마찬가지로 ④ 설정에서 입력해줬던 마스터암호를 넣어준다.

-> 여기까지 다 끝마쳤으면 아래 [Test Connection] 클릭

 

위 모달창이 뜨면 성공적으로 RDS DB에 연결이 만들어진거다.

 

이제 위 새로 만들어진 커넥션을 클릭하면 RDS DB에 연결된다.

LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!