이번 4주차 챌린지 과제는 RDS를 생성하고, 우리가 생성한 EC2 인스턴스와 RDS를 연동하는 것입니다.
본격적으로 시작하겠습니다!!!!
그럼 먼저 RDS란 무엇인가??
먼저 RDS는 아래 AWS 공식 페이지를 통해 알아볼 수 있었다.
https://aws.amazon.com/ko/rds/
공식 페이지 정의는 아래와 같다.
RDS는 "Amazon Relational Database Service(RDS)는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음"이다.
쉽게 말해 클라우드에서 데이터베이스를 운영하는 것이라고 생각할 수 있겠다.
그럼 RDS는 어떤 상황에서 사용할까??
먼저 아래는 서버 1개당 데이터베이스를 1개 가지는 모습이다.
이러면 서버가 터지면 데이터베이스도 터질 확률이 높다.
그래서 사람들은 여러 개의 서버가 1개의 데이터베이스를 공유하는 아키텍쳐를 떠올렸다.
여기서 사용되는 데이터베이스가 대표적으로 RDS가 있다.
이제 간단한 RDS의 소개를 마무리했으니 EC2와 RDS를 연동해보자.
EC2와 RDS 연동
1. 먼저 우리가 사용할 EC2 인스턴스의 몇 가지 정보를 확인해야 한다.
우리는 EC2와 RDS를 연결할 것이므로 동일한 네트워크(VPC)에서 작업이 이루어져야한다.
따라서 VPC ID와 서브넷 ID를 확인해야 한다.
또한 해당 인스턴스의 보안 그룹 아이디도 확인해놔야 한다.
그럼 이제 좌측에 보안 그룹 탭을 누르고 보안 그룹 생성을 누르자.
그럼 아래와 같은 창이 뜨는데 이름과 설명을 넣고 이전에 확인한 EC2 메인 화면에서 확인한 VPC ID를 VPC에 넣자
그리고 이제 아래와 같이 인바운드 규칙을 작성하자.
우리는 MySQL을 사용할 것이다. 또한 소스에는 아까 확인한 보안그룹아이디를 넣자.
이제 완료 버튼을 누르자.
이번에는 EC2 서비스 창에서 RDS 서비스 창으로 옮겨가자.
이후에 좌측에 서브넷 그룹을 누르자. 이후 DB 서브넷 그룹 생성 버튼을 누르면 된다.
그러면 아래와 같은 화면이 뜨는데 이전과 동일하다.
이름과 설명을 적고 아까 우리가 적은 VPC ID를 넣자.
이제 아래 그림처럼 서브넷을 설정한다.
본인은 선택할 수 있는 모든 서브넷을 추가했다.
이제 완료를 누른다.
다음은 파라미터 그룹을 생성할 차례다.
파라미터 그룹을 생성하는 이유는 한글 사용을 가능하게 하기 위함과 DB의 시간을 한국 시간으로 설정하기 위함이다.
좌측 탭에서 파라미터 그룹을 클릭하자. 이후 파라미터 그룹 생성을 누른다.
우리의 EC2 MySQL 버전은 5.7이다. 아래와 같이 작성한 후 생성을 누르자.
이제 한글 지원을 위해 몇 가지 작업이 남았다.
우리가 만든 파라미터로 들어가서 char을 검색한 후 character_set_client의 값을 utf8로 변경했다.
또한 collation_connection 값을 utf8_general_ci로 변경했다. 아래
그러면 이제 파라미터 그룹까지 완료했다. 이제 준비가 끝난 것이다.
그러면 이제 DB를 생성해보자.
좌측 탭에 데이터베이스를 클릭하자. 이제 데이터베이스 생성을 누르자.
필자는 아래와 같은 세팅으로 진행했다.
이제 스크롤을 내려 무료 사용을 위해 템플릿으로 프리티어를 선택한다.
그럼 이제 아래와 같이 설정 정보를 넣자.
이제 다른 설정은 건드리지 말고 내리다가 아래 이미지와 동일한 설정이 나올 것이다.
서브넷 그룹은 우리가 위에서 작성한 그룹을 넣는다. VPC 보안 그룹도 우리가 위에서 작성한 것을 넣는다.
그리고 추가 구성에서 파라미터 그룹은 아까 우리가 만든 한글 파라미터 그룹을 넣는다.
그리고 완료를 누르면 아래와 같이 데이터베이스가 완성되었다.
그럼 이제 마지막 부분인 EC2와 RDS를 연동해보자
위 이미지에서 만든 데이터베이스를 클릭해보자. 그러면 아래와 같이 엔드포인트를 확인할 수 있다. 이것을 복사한다.
그리고 아래와 같은 코드를 EC2 터미널에 입력한다.
mysql -u admin -p --host umc-debin-db.cg7cko9hkkgb.ap-northeast-2.rds.amazonaws.com
비밀번호만 성공적으로 넣으면 이제 EC2 터미널에서 접속할 수 있다.
성공화면은 아래와 같다!!!
(비밀번호 오류가 있어서 데이터베이스를 다시 생성했습니다. 그래서 위 명령어와 아래 명령어가 다릅니다.)
4주차 챌린지 과제도 이것으로 끝!!! 다음부터 본격적인 데이터베이스 파트다.
이상으로 포스팅을 마치겠습니다. 감사합니다!
참고 자료
댓글