본문 바로가기

클라우드/AWS

[ AWS ] AWS RDS 생성, On-Premise와 RDS 연동

AWS RDS 생성, On-PremiseRDS 연동 실습

 

▶ Troubleshooting (문제 해결 방법)

1. VPC관련
- VPC에 IGW가 연결되었는가?
- Subnet이 Public 상태인가?
- 라우팅 테이블에 Subnet과 IGW가 등록되어 있는가?

2. EC2관련
- 설정 변경 또는 추가 설치 후, Apache2를 재시작 했는가?
- 웹서버 디렉토리의 권한 또는 위치가 정확하게 설치되어 있는가?    sudo  -i   (프롬프트가 #으로 변경됨, root권한으로 사용)
- 보안 그룹에서 IP허용이 정상적으로 등록되어 있는가?    /32 ----> IP주소 32자리를 모두 확인,   /24 ----> 4번째 옥텟이 바뀌더라도 무관

 

3.  RDS Troubleshooting
- RDS를 Private으로 설정한 경우, EC2를 통해서만 접속 가능
- EC2에서 접속이 안되면?  보안 그룹에서 '위치 무관'으로 변경
- 계정, 비밀번호 등 확인

 

 

▶ RDS (RDS : Relational Database Service, 관계형 데이터베이스 서비스)

- RDS는 AWS에서 관리 : 관리 잘됨(백업 등등) ----> 안정적으로 운영이 가능함
   cf. Ubuntu Server에 MySQL을 설치하면 OS, DB를 사용자(고객)가 관리 
- RDS는 사용자가 DB를 관리할 수 없음(PaaS) -----> root권한 없고 사용자 권한만 부여함

참고) IT 5대관리 : 성능, 용량, 비용, 장애, 보안  ------> AWS에 Trusted Advisor에서 확인 (상태를 Red, Yellow, Green 세가지로 구분해줌)

 

 

 


 

RDS 생성


▶ RDS 설정 방법

1) Public하게 설정 (외부에서 접속 가능) -----> 안전하지 않음, 웹서버를 On Premise로 사용하고, DB만 AWS에 설치하는 경우에 적합
2) Private하게 설정 (외부에서 접속 불가능)  -----> VPC에서만 접근 가능, VPC에 있는 Web Server를 통해서만 접근 가능

▶ 서브넷이 하나일 경우 RDS가 안 만들어지므로 Subnet을 추가
- 이니셜_subnet_private
- 10.N.20.0/24 
- ap-northeast-2b                  // 가용영역 b에 생성합니다.

 

▶ RDS에 접근할 때에는 DNS 호스트 이름이 필요 (RDS는 PaaS라서 IP를 사용하지 않음)
- VPC > 편집 > DNS 호스트 이름 편집 > DNS 호스트 이름 활성화에 체크

 

 

▶ RDS 생성

  • 메뉴에서 rds 입력해서 RDS로 이동합니다.
  • '데이터베이스 생성' 클릭합니다.   (Aurora : MySQL, PostgreSQL을 AWS에 맞게 최적화시킨 것)
  • 스토리지 : IOPS provisioned SSD는 매우 빠른 속도(매우 비쌈)  ----> 금융권, 고객이 요구하는 경우 등
                    일반적으로는 GP2 (범용 SDD)를 선택하면됨.  Magnetic선택하면 대박 느림(약간 저렴).
  • 가용 영역(Availability Zone, AZ) : 가상의 데이터센터,  a/b/c/d 등

 

 

 

 


mysql workbench - RDS 연동

 

▶ mysql workbench 설치

https://dev.mysql.com/downloads/workbench/

 

MySQL :: Download MySQL Workbench

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M

dev.mysql.com

그 후 다 next

goods.sql
0.20MB

 

 

 

 

 

File > Open SQL Script 에서 goods.sql을 선택                  // DB작업을 스크립트 형태로 만들어놓은 것
Ctrl+a를 눌러서 전체선택,  번개를 클릭                           // 한번에 실행
show  databases;                                      // classicmodels
use  classicmodels;
show  tables; 
desc products;                                         // products 테이블의 컬럼 목록을 보기
select  *  from  products;
select  distinct  productLine  from  products;               // distinct : 중복제거 

 

Quiz)페라리(Ferrari)만 골라서 보려면?
select  *  from  products  where productName  like  '%ferrari%';

 

 

 

 


 

On-Premise와 Cloud의 연동

 

VMware에 있는 Web Server(Gnuboard)에서 DB는 AWS의 RDS를 사용해서 데이터 저장하기 (On-Premise와 Cloud의 연동) ( AmazonLinux_lamp_gnuboard.txt)

AmazonLinux_lamp_gnuboard.txt
0.00MB

                                                                 

1. VMware에 있는 Ubuntu Server에 : Apache, PHP와 8개, Gnuboard 다운로드 (MySQL은 설치하지 않음!)


2. RDS를 활용 ---> board계정 만들지 않음, 권한부여하지 않음  (RDS만들때 사용한 계정으로 설정)
    ----> Workbench에서 gnuboard라는 DB를 만들어주어야 함 ( create database gnuboard; )

Host : bys-rds-public.chm9rhbwy6vo.ap-northeast-2.rds.amazonaws.com:3306