RDS는 관계형 데이터베이스를 쉽게 생성하고 확장할 수 있는 AWS 서비스이다.
MySQL, Oracle, PostgreSQL 등의 상용 DB 뿐 아니라 AWS가 개발한 Aurora DB 또한 구축하여 사용할 수 있다.
Overview
1. RDS 인스턴스 생성하기
2. EC2 인스턴스 생성하기
3. RDS 인스턴스에 접속 후 테이블 생성하기
4. RDS 스냅샷 생성하기
Step1. RDS 인스턴스 생성하기
[RDS] 서비스에서 [데이터베이스 생성]을 클릭한다.
여러 DB 엔진 중 이번 실습에선 MySQL을 사용한다.
Database에 접속하기 위한 로그인 정보를 설정하는 과정이며, 아래와 같이 마스터 ID와 PWD를 설정한다.
간단한 실습을 위해 t2.micro 유형을 선택한다.
실습을 위한 최소 용량인 20GB로 설정해주고, [스토리지 자동 조정 활성화] 옵션은 이번 실습에서 불필요하므로
비활성화 시켜준다.
[다중 AZ 배포] 기능은 장애가 발생했을 경우를 대비하여 다른 가용영역에 미리 예비 인스턴스를 프로비저닝하여
빠른 조치가 가능하도록 해주는 기능이다.
이번 실습에선 [대기 인스턴스를 생성하지 마세요]를 체크하여 진행하도록 한다.
[퍼블릭 액세스]에서 "예"를 체크해서 외부에서의 접속을 허용한다.
[초기 데이터베이스 이름]을 설정하고 아래 [백업]의 두 가지 옵션은 비활성화 시켜준다.
월별 추정 요금을 확인하고 [데이터베이스 생성]을 클릭한다.
기존 Database 서버를 설치하기 위해 겪었던 여러 복잡한 절차들이 RDS 서비스의 몇 번이 클릭만으로 데이터베이스가 생성되는 것을 확인할 수 있다.
Step2. EC2 인스턴스 생성하기
EC2 인스턴스를 생성하는 상세한 과정은 생략하며, 가용영역을 "ap-northeast-2a"로,
보안그룹을 기존 default 보안그룹으로 설정한다.
default 보안그룹에서 외부 SSH 접속을 위해 인바운드 규칙을 수정한다.
키 페어를 이용하여 EC2 인스턴스로 접속한다.
ssh -i [pem 파일] ec2-user@[인스턴스의 퍼블릭 ip]
아래와 같이 필요한 패키지 파일들을 설치한다.
[root@ip-172-31-0-231 ~]# yum -y update
[root@ip-172-31-0-231 ~]# yum -y install mysql
Step3. RDS 인스턴스에 접속 후 테이블 생성하기
이제 데이터베이스에 접속할 준비가 끝났다.
RDS 대시보드에서 조금 전 생성했던 RDS 인스턴스의 엔드포인트를 확인해보자.
다시 EC2 인스턴스로 돌아와서 DB 서버로 접속한다.
명령어는 다음과 같다.
mysql -h [RDS 엔드포인트] -u master -p
후에 Enter password: 가 표시되면 설정했던 패스워드를 입력해준다.
아래와 같이 DB 생성, 사용자 생성, 권한 할당, 테이블 생성 등을 테스트해본다.
MySQL [(none)]> create database mydb;
Query OK, 1 row affected (0.01 sec)
MySQL [(none)]> create user myuser@'%' identified by 'mypassword';
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> grant all privileges on mydb.* to myuser@'%';
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> use mydb
Database changed
실습에 사용할 Addr 테이블을 아래와 같은 스키마로 생성한다.
CREATE TABLE Addr(
No int(3) not null auto_increment,
UserId varchar(10) not null,
Password varchar(10) not null,
Name varchar(15) not null,
Age int(1),
City varchar(10),
Phone varchar(12),
Country varchar(10),
PRIMARY KEY(No),
KEY UserId(UserId),
KEY Name(Name)
);
스키마를 생성한 후 Addr 테이블에 아래 데이터를 Insert한다.
INSERT INTO Addr VALUES('', 'user1', 'user1passwd', 'Hong Kil Dong', '17', 'Seoul', '010-1111-2222', 'KOREA');
INSERT INTO Addr VALUES('', 'user2', 'user2passwd', 'Kim Chel Hee', '15', 'Busan', '010-3333-4444', 'KOREA');
INSERT INTO Addr VALUES('', 'user3', 'user3passwd', 'Kim Yeong Hee', '27', 'Daejeon', '010-5555-6666', 'KOREA');
INSERT INTO Addr VALUES('', 'user4', 'user4passwd', 'Kim Cheol Soo', '57', 'DaeGu', '010-7777-8888', 'KOREA');
INSERT INTO Addr VALUES('', 'user5', 'user5passwd', 'Ahn Yeong', '31', 'Incheon', '010-9999-9999', 'KOREA');
INSERT INTO Addr VALUES('', 'user6', 'user6passwd', 'Lee Chel Soo', '29', 'Anhyang', '010-8888-7777', 'KOREA');
INSERT INTO Addr VALUES('', 'user7', 'user7passwd', 'John Jones', '44', 'Chicago', '010-7777-9999', 'USA');
아래 명령어를 통해 스키마와 실제 저장된 데이터를 확인한다.
MySQL [mydb]> DESC Addr;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| No | int(3) | NO | PRI | NULL | auto_increment |
| UserId | varchar(10) | NO | MUL | NULL | |
| Password | varchar(10) | NO | | NULL | |
| Name | varchar(15) | NO | MUL | NULL | |
| Age | int(1) | YES | | NULL | |
| City | varchar(10) | YES | | NULL | |
| Phone | varchar(12) | YES | | NULL | |
| Country | varchar(10) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)
MySQL [mydb]> select * from Addr;
+----+--------+------------+---------------+------+---------+--------------+---------+
| No | UserId | Password | Name | Age | City | Phone | Country |
+----+--------+------------+---------------+------+---------+--------------+---------+
| 1 | user1 | user1passw | Hong Kil Dong | 17 | Seoul | 010-1111-222 | KOREA |
| 2 | user2 | user2passw | Kim Chel Hee | 15 | Busan | 010-3333-444 | KOREA |
| 3 | user3 | user3passw | Kim Yeong Hee | 27 | Daejeon | 010-5555-666 | KOREA |
| 4 | user4 | user4passw | Kim Cheol Soo | 57 | DaeGu | 010-7777-888 | KOREA |
| 5 | user5 | user5passw | Ahn Yeong | 31 | Incheon | 010-9999-999 | KOREA |
| 6 | user6 | user6passw | Lee Chel Soo | 29 | Anhyang | 010-8888-777 | KOREA |
| 7 | user7 | user7passw | John Jones | 44 | Chicago | 010-7777-999 | USA |
+----+--------+------------+---------------+------+---------+--------------+---------+
7 rows in set (0.00 sec)
Step4. RDS 스냅샷 생성하기
현재 Database의 상태를 저장하기 위해 스냅샷 기능을 제공한다.
생성했던 데이터베이스를 선택하고 [작업] - [스냅샷 생성]을 클릭한다.
[스냅샷 이름]을 지정하고 [스냅샷 생성] 버튼을 클릭한다.
스냅샷 생성에는 시간이 다소 소요되며, 생성이 완료되면 복원, 공유 등 여러 작업이 가능하다.
이것으로 RDS 실습을 마치도록 한다.
생성했던 EC2 인스턴스, RDS 인스턴스는 모두 삭제하도록 한다.
'AWS' 카테고리의 다른 글
AWS Fargate (0) | 2021.08.24 |
---|---|
EC2와 RDS 서비스를 활용한 Wordpress 구축하기 (0) | 2021.08.14 |
CloudFront를 활용한 S3 앱 배포하기 (0) | 2021.08.12 |
VPC를 구성하고 Load Balancing과 Auto Scaling 적용하기 (0) | 2021.08.11 |
AWS CLI를 통한 Amazon S3 데이터 업로드 (0) | 2021.08.11 |