일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- web security academy
- File Upload
- 블록체인
- metacodem
- 메타코드
- 보안 그룹
- Session Manager
- ELB
- web shell
- metacode
- 탈중앙화
- 스마트컨트랙트
- 정처기필기
- web3 보안
- 오블완
- amazon s3 트리거
- aws lambda
- 스마트 컨트랙트
- 티스토리챌린지
- 정보처리기사
- systems manager
- web3
- aws 트리거
- splunk db connect
- 정처기 필기
- Path Traversal
- 정처기
- AWS CLI
- 메타코드M
- AWS SSM
- Today
- Total
min8282
[AWS] Amazon RDS를 사용하여 MySQL 데이터베이스 생성 및 연결 본문
https://aws.amazon.com/ko/getting-started/hands-on/create-mysql-db/
Amazon RDS를 사용하여 MySQL 데이터베이스 생성 및 연결
닫기 피드백을 제공해 주셔서 감사합니다. 피드백은 AWS 경험을 개선하는 데 도움이 됩니다. 피드백에 대한 자세한 정보를 제공하려면 아래의 피드백 단추를 클릭하세요.
aws.amazon.com
AWS 공식 자습서를 참고하여 Amazon RDS에서 MySQL 데이터베이스를 생성하고 MySQL Workbench를 통해 연결하는 과정을 정리하겠습니다. 목표 아키텍처는 아래와 같습니다.
1. 보안그룹 생성
보안 그룹(SG-DB) 생성 및 인바운드 규칙 추가
경로: AWS 콘솔 > EC2 > 보안 그룹 > 보안 그룹 생성
- 보안 그룹 이름: SG-DB
- 설명: 간략하게 작성
- VPC: myvpc
인바운드 규칙 추가
- 유형: MySQL/Aurora (TCP 3306)
- 소스: 0.0.0.0/0 (테스트용이므로 실무에서는 제한 필요)
2. DB 서브넷 그룹 생성
DB 서브넷 그룹을 생성하여 RDS 인스턴스가 VPC 내에서 적절한 서브넷을 사용할 수 있도록 설정하겠습니다.
경로: AWS 콘솔 > RDS > 서브넷 그룹 > DB 서브넷 그룹 생성
- 이름: My-DB-SubnetGroup
- 설명: 간략히 작성
- VPC: myvpc
- 가용 영역: us-east-2a, us-east-2c
- 서브넷: 퍼블릭 서브넷 2개 (10.0.1.0/24, 10.0.2.0/24)
3. DB 인스턴스 생성
MySQL RDS 인스턴스를 생성하여 사용할 준비 하겠습니다.
경로: AWS 콘솔 > RDS > DB 생성
- 엔진 옵션: MySQL
- 엔진 버전: MySQL 8.0.41
템플릿은 프리티어 선택
- DB 인스턴스 식별자: MY-RDS-01
- 마스터 사용자 이름: dbadmin
- 마스터 암호: abcd1234
인스턴스는 db.t3.micro
- VPC: myvpc
- 퍼블릭 액세스: 예
- 보안 그룹: SG-DB
추가구성에서는 데이터베이스 옵션을 설정해야 합니다.
- 초기 데이터베이스 이름: mydatabase01
- 암호화: 비활성화 (활성화 시 키 생성 비용 발생)
DB 생성 중 오류 해결
데이터베이스 생성 시 아래와 같은 에러가 나타납니다. 해당 에러는 DNS 호스트네임이 설정되어 있지 않아서 나타나는 에러이므로 현재 사용할 VPC 설정을 편집해야 합니다.
DB 인스턴스 MY-RDS-01 생성 요청이 실패했습니다.
Cannot create a publicly accessible DBInstance. The specified VPC does not support DNS resolution, DNS hostnames, or both. Update the VPC and then try again
해결 방법
AWS 콘솔 > VPC > myvpc 선택 > 설정 편집
DNS 호스트 이름 활성화 체크 후 저장
이렇게 하면 EC2를 만들 때마다 퍼블릭한 도메인 네임이 자동으로 만들어집니다.
편집 후 myvpc 세부 정보를 확인하면 DNS 호스트 이름이 활성화된 것을 볼 수 있습니다.
다시 돌아와서 데이터베이스 생성을 하면 에러 없이 DB가 생성되는 것을 볼 수 있습니다.
(DB를 생성하는데 조금 시간이 소요됩니다)
4. MySQL Workbench를 이용한 DB 연결
MySQL Workbench를 설치하고 생성한 RDS 인스턴스와 연결하겠습니다.
MySQL workbench는 아래 링크에서 다운로드하면 됩니다. 이미 설치되어 있다면 설치된 버전으로 RDS를 수정해야 합니다.
https://dev.mysql.com/downloads/workbench/
MySQL :: Download MySQL Workbench
dev.mysql.com
위와 같이 8.0.41의 mysql workbench 설치 진행
설치 완료
Database > Connect to Database 클릭
- 호스트 이름: 스크린샷과 같이 Amazon RDS 콘솔에서 호스트 이름을 확인할 수 있습니다.
- 포트: 기본값인 3306을 유지합니다.
- Username: Amazon RDS 데이터베이스용으로 생성한 사용자 이름을 입력합니다. (= dbadmin)
- 암호: 저장소에 저장을 선택하고 Amazon RDS 데이터베이스를 생성할 때 사용한 암호를 입력합니다.(= abcd1234)
확인을 선택합니다.
이제 데이터베이스에 연결되었습니다! MySQL Workbench에서는 데이터베이스에서 사용할 수 있는 다양한 스키마 객체가 제공됩니다. 이제 테이블을 생성하고, 데이터를 삽입하고, 쿼리를 실행할 수 있습니다.
5. SQL 실행 및 테스트
연결된 데이터베이스에서 간단한 SQL 실행하겠습니다. SQL 쿼리는 아래와 같습니다.
create database db001;
use db001;
CREATE TABLE tbl01 (
empno INT NOT NULL PRIMARY KEY,
ename VARCHAR(10)
);
select * from tbl01;
insert into tbl01 values (1,"Emma");
번개 마크(실행 버튼)를 클릭하면 output 창에서 실행 결과를 확인 가능합니다.
6. 마무리 (DB 인스턴스 삭제)
실습이 끝나면 비용 절감을 위해 사용한 AWS 리소스를 삭제해야 합니다.
AWS 콘솔 > RDS > my-rds-01 선택 > 작업 > 삭제 진행
다시 사용 자원이 아니기 때문에 최종 스냅샷 생성과 자동 백업 보존은 비활성화 상태로 삭제를 진행합니다. 두 가지 옵션은 비용이 지불되기 때문에 필요한 경우가 아닌 이상 비활성화 상태로 삭제를 진행합니다.
이번 실습에서는 AWS RDS를 사용하여 MySQL 데이터베이스를 생성하고, MySQL Workbench를 통해 연결하여 간단한 SQL을 실행하는 과정을 진행했습니다.
- 보안 그룹 설정: 3306 포트 개방
- VPC 설정: DNS 호스트 이름 활성화 필요
- DB 인스턴스 설정: 프리티어 선택 가능
- MySQL Workbench 사용하여 RDS 연결 및 SQL 실행
실제 프로젝트에서는 보안 그룹을 특정 IP로 제한하고, RDS 퍼블릭 액세스를 비활성화하는 것이 권장됩니다.
'Security > Cloud' 카테고리의 다른 글
[AWS] AWS CloudFormation을 통한 인프라 구성 (0) | 2025.03.07 |
---|---|
[AWS] Amazon S3 트리거를 사용하여 썸네일 이미지 생성 (0) | 2025.03.06 |
[AWS] AWS VPC 엔드포인트 설정 및 프라이빗 인스턴스에서 S3 접근 (0) | 2025.03.05 |
[AWS] AWS ELB & Auto Scaling을 활용한 고가용성 웹서버 구축 (0) | 2025.03.04 |
[AWS] AWS EC2 인스턴스 생성 및 웹 서버 연결 (보안 그룹 설정 & HTTP 접근 설정) (0) | 2025.03.04 |