본 실습은 AWS 관리형 데이터베이스 인스턴스를 활용하여 관계형 데이터베이스 요구 사항을 해결하는 개념을 강화되도록 설계한다. Amazon Relational Database Sevice(Amazon RDS)를 사용하면 클라우드 관계형 데이터베이스를 더욱 간편하게 설정, 관리 및 확장할 수 있다. 시간 소모적인 데이터베이스 관리 작업을 관리하는 한편, 효율적인 비용으로 크기 조정이 가능한 용량을 제공하므로 사용자는 애플리케이션과 비즈니스에 좀 더 집중할 수 있다. Amazon RDS를 사용하면 6개의 익숙한 데이터베이스 엔진, 즉 Amazon Auroro, Oracle, Microsoft SQL Sever, PostgreSQL, MySQL 및 MariaDB 중에서 원하는 것을 선택할 수 있다. Amazon RDS 다중 AZ 배포는 데이터베이스(DB) 인스턴스의 가용성 및 내구성을 높여 주므로 프로덕션 데이터베이스 워크로드에 적합하다. 다중 AZ DB 인스턴스를 프로비저닝하면, Amazon RDS는 기본 DB인 인스턴스를 자동으로 생성하고, 다른 가용 영역(AZ)에 잇는 대기 인스턴스에 데이터를 동기식으로 복제한다. 웹 사이트의 데이터가 데이터베이스에 저장 관리 되고 자동으로 두번째 가용 영역으로 복제되어서 가용성이 올라간다. 기존에 만들어 둔 웹 서버에 데이터 스토어를 그림과 같이 만들어 보겠다.
먼저 VPC Services에 들어가서 보안그룹 생성을 하겠다. VPC는 My Lab VPC로 설정하고 이름과 설명을 입력한다.
무사히 생성되었고 DB-Secuirty-Group을 선택한다.
밑에 부분 inbound 규칙을 편집하기 위해 Edit rules 선택한다.
Type은 mysql/Aurora(3306)을 설정하여 주고 Source는 custom에 Web-Security-Group을 선택한다. 그렇게 되면 데이터베이스 보안 그룹을 포트 3306에서 Web-Security-Group과 연결되 모든 EC2 인스턴스로부터의 인바운드 트래픽을 허용한다. 인바운드 트래픽을 허용함으로써 EC2 인스턴스(웹서버) 웹페이지의 추가, 편집, 제거되는 데이터들이 무사히 데이터 스토어에 저장이 가능해지게 된다.
Services 메뉴에서 RDS를 클릭(RDS : 클라우드에서 관계형 DB를 간편하게 설정,운영,확장)
Subnet groups를 클릭 후 Create DB Subnet Group(DB인스턴스가 위치할 서브넷)을 선택!
이름과 설명 설정하고 VPC는 My Lab VPC로 설정한다.
가용 영역은 첫 번째(왼쪽)을 클릭한 후 10.0.3.0/24선택 후 Add subnet 선택한다.
가용 영역을 두 번째(오른쪽)을 클릭한 후 10.0.4.0/24선택 후 ADD subnet을 선택한다.
그 후 create 누르면 subnet group이 생성되었음을 확인할 수 있다.
이제 MySQL 지원 Amazon RDS DB 인스턴스 구성 및 시작한다. (데이터베이스 생성)
Engine options는 MySQL을 선택한다.
다중 가용영역에서 실행되고 고가용성을 확보하는 Production을 선택한다.
DB 인스턴스 이름과 Master 유저의 이름과 패스워드를 설정한다.
DB 인스턴스 사이즈는 t2.micro로 설정한다.
Connectivity는 VPC 설정과 기존에 만들었던 db-subnet-group을 사용한다.(연결)
보안 그룹은 기존에 만들었던 보안 그룹을 선택한다.
Database의 옵션을 선택한다.
백업은 하지 않도록 설정한다. 일반적으로 권장하진 않지만 실습에서는 데이터베이스
를 빠르게 배포하기 위한 설정이다.
Monitoring 기능도 사용하지 않는다.
요금에 관한 정보가 나온다. 참고로 읽어 둔다.
설정이 어느 정도 완료되고 데이터 베이스를 생성!
생성이 완료되었고 status가 modifying 또는 available이 되야 한다. 약 5분정도의 시간이 걸린다. 웹 페이지를 새로 고쳐 상태를 업데이트 할 수 있다.
데이터베이스를 클릭하면 여러가지 정보들을 볼 수 있다. Connection & security에 들어가서 endpoint를 복사해 놔야 한다. 서비스를 시작하기 위해서는 endpoint가 필요하다.
Service 메뉴에서 EC2를 클릭한 후 인스턴스를 클릭하여 확인한 후 Web Server 클릭!
아래쪽에 나타난 공인ip를 복사한 후 새로운 웹 페이지에 들어가서 접속한다.
무사히 접속이 되고 웹 어플리케이션이 표시되어 EC2 인스턴스에 대한 정보를 보여준다.
페이지 상단의 RDS를 클릭한 후 데이터베이스에 연결하여야 한다. 아까 복사해 놓았던
Endpoint 주소와 데이터베이스의 이름과 유저의 이름과 비밀번호 입력 후 제출한다.
Address BooK APP이 실행된다. RDS 데이터베이스를 사용하여 정보를 저장한다.
ADD Contact를 통해 주소를 2개 추가해 보겠다.
Address 정보가 생성됨을 확인할 수 있었다.
Duck도 Remove를 통해서 제거해보겠다. 제거도 무사히 된다. 데이터가 데이터베이스에
저장되고 관리되며 자동으로 두 번째 가용영역으로 복제된다.(백업)
데이터 베이스를 한번 작동을 중단 시켜 보겠다.
다시 웹 페이지에 들어가서 RDS에 접속한 결과 mysql서버에 연결할 수 없다고 나오면서
데이터베이스가 없음으로써 웹 페이지에 데이터를 입력할 수 없다.
'클라우드 > Public Cloud(Naver, Amazon)' 카테고리의 다른 글
aws 정적 웹사이트 호스팅 (Arch-1) (0) | 2019.09.22 |
---|---|
aws 인프라 관리 (tech-3) (0) | 2019.09.22 |
aws 웹서버 구축(tech-1) (1) | 2019.09.22 |
Block Storage, Object Storage (0) | 2019.07.09 |
Ncloud 서버 (0) | 2019.07.09 |