AWS EC2에 AWS RDS 연동하기
이번 시간에는 AWS EC2에 AWS RDS를 연동하는 방법에 대해서 알아보도록 하겠습니다. 기존에 운영하는 AWS EC2 서비스가 있을 때 이에 안전한 방법으로 데이터베이스를 연결해야 하는 경우가 존재할 수 있습니다. 따라서 그럴 때를 대비하여 한 번 AWS EC2에 AWS RDS를 연동해보도록 하겠습니다.
※ AWS EC2 인스턴스의 VPC 정보 확인 ※
일단 자신이 현재 가지고 있는 AWS EC2 정보를 먼저 파악하는 것이 중요합니다. 우리는 이 EC2에 AWS RDS 서비스를 연결할 것이기 때문에 EC2와 동일한 VPC에 AWS RDS를 설치해야 해요. 그러므로 VPC ID를 확인하는 것이 첫 번째입니다. 이후에는 [보안 그룹]을 확인합니다. 현재 제 AWS EC2 인스턴스의 보안 그룹은 launch-wizard-2입니다.
※ DB 보안 그룹 설정하기 ※
따라서 [보안 그룹] 탭으로 이동해보도록 합시다. 그러면 아까 확인했던 launch-wizard-2라는 이름의 보안 그룹이 눈에 보입니다. 이 보안 그룹의 ID 값을 기록하세요. 우리는 이 보안 그룹에서만 DB에 접근할 수 있도록 설정할 것입니다. 이후에 [보안 그룹 생성] 버튼을 눌러보도록 합시다.
이제 DB Security Group이라는 이름으로 우리가 만들 DB가 들어갈 보안 그룹을 만들어 주시면 됩니다. 이 때 [인바운드] 보안 그룹 규칙으로 방금 우리가 확인했던 EC2의 보안 그룹에서만 접근할 수 있도록 설정해주시면 됩니다. 이 때 저는 MySQL DB를 사용할 것이므로 MySQL 포트인 3306으로 설정했습니다.
※ DB 서브넷 그룹 설정하기 ※
이제 AWS RDS의 [서브넷 그룹] 탭으로 이동하여 [DB 서브넷 그룹 생성] 버튼을 눌러서 서브넷 그룹을 만들어 보도록 하겠습니다.
다음과 같이 DB Subnet Group이라는 이름으로 서브넷 그룹을 만든 이후에 EC2와 동일한 VPC를 선택합니다. 그리고 [이 VPC와 관련된 모든 서브넷 추가] 버튼을 누르시면 됩니다.
결과적으로 DB 서브넷 그룹을 생성해주시면 됩니다. 그러면 다음과 같이 하나의 서브넷 그룹 생성이 완료됩니다.
※ DB 한글 설정을 위한 파라미터 그룹 설정하기 ※
MySQL 데이터베이스는 기본적으로 한글을 지원하지 않습니다. 그래서 [파라미터 그룹] 탭으로 이동하여 한글 지원을 위한 [파라미터 그룹 생성]을 진행하셔야 합니다.
다음과 같이 MySQL 5.6 버전의 파라미터 그룹을 만들어 줍시다.
이제 만들어진 파라미터 그룹으로 들어가 편집을 수행합니다.
가장 먼저 [char]를 검색하여 모든 캐릭터 인코딩 관련 값을 UTF8으로 변경해주세요.
이후에 [collation]을 검색하여 모든 값을 utf8_general_ci로 변경해 주시면 됩니다.
이후에는 꼭 [변경 사항 저장] 버튼을 눌러서 저장해 주시면 됩니다.
※ AWS RDS 데이터베이스 생성하기 ※
이제 실질적으로 MySQL 데이터베이스를 생성해보도록 하겠습니다. 그리고 AWS EC2에서만 접속이 가능하도록 설정할 것입니다.
다음과 같이 MySQL 엔진을 선택하여 [RDS 프리 티어에 적용되는 옵션만 사용]을 체크해주세요. 무료로 이용하는 편이 좋을 거예요.
결과적으로 다음과 같이 MySQL 5.6을 선택하여 만들어 주시면 됩니다.
다만 고급 설정 구성을 하실 때에는 서브넷 그룹으로는 우리가 만들었던 DB Subnet Group을 선택한 뒤에, 보안 그룹도 마찬가지로 우리가 만들었던 DB Security Group을 선택하시면 됩니다. 그리고 [퍼블릭 액세스 가능성]을 아니요로 선택해주셔야 VPC 내부의 EC2에서만 접근이 가능합니다.
결과적으로 데이터베이스 옵션으로는 아까 만들었던 한글 전용 파라미터 그룹을 선택하시고, 나머지는 기본 설정으로 데이터베이스를 생성해주시면 됩니다.
결과적으로 다음과 같이 DB 인스턴스가 생성되었습니다.
※ AWS RDS에 연결하기 ※
이제 만들어진 데이터베이스의 정보를 확인해보도록 합시다.
다음과 같이 [연결] 탭에서 엔드포인트를 확인하시면 됩니다. 이 엔드포인트 주소로 접속할 수 있어요.
이제 한 번 접속을 해봅시다.
▶ MySQL 접속 명령어: mysql -u empo -p --host empo.crtzcfwok2ed.ap-northeast-2.rds.amazonaws.com
다음과 같이 외부 IP에서 해당 MySQL에 접속하려고 하면 연결 오류 메시지가 출력됩니다. 보안 그룹이 우리를 지켜주고 있는 거예요.
하지만 같은 VPC 내에 있는 EC2에서 접근을 시도하면 다음과 같이 성공적으로 연결이 이루어지는 것을 확인할 수 있습니다.
따라서 성공적으로 AWS EC2에 AWS RDS를 연동하게 된 것입니다.
'기타' 카테고리의 다른 글
| XML, JSON, YAML 형식 내용 정리 및 비교 분석 (0) | 2019.01.20 |
|---|---|
| 다른 사람 컴퓨터에서 깃 허브(Git Hub) 이용할 때 주의할 점 (0) | 2019.01.19 |
| AWS VPC 안에 포함되어 있는 서비스들을 통째로 제거하는 방법 (2) | 2019.01.03 |
| AWS VPC를 이용해 EC2와 RDS를 안전하게 관리하기 (1) | 2019.01.02 |
| 노션(Notion)을 활용한 팀 프로젝트 관리 (0) | 2018.12.31 |
AWS VPC 안에 포함되어 있는 서비스들을 통째로 제거하는 방법
기본적으로 AWS VPC 안에 다양한 AWS 서비스를 포함하여 전체 시스템을 구축하는 경우가 많습니다. 다만 AWS VPC를 제거하고자 할 때 여러 개의 서비스가 서로 복잡하게 연결되어 있으면 제거가 안 될 수도 있습니다. 따라서 이번 시간에는 AWS VPC 안에 포함되어 있는 서비스들을 통째로 제거하는 방법에 대해서 알아보도록 하겠습니다.
※ 제거 순서를 고려하여 제거하기 ※
기본적으로 VPC, [보안 그룹] 등을 지우기 전에는 그 안에 포함되어 있는 EC2나 RDS와 같은 실제 서비스들을 먼저 제거하셔야 합니다. 저는 지난 포스트(http://ndb796.tistory.com/224)에서 EC2와 RDS를 하나의 VPC 안에 넣어서 관리하는 방법에 대해서 알아보았습니다. 저는 이렇게 만들어진 시스템 구성을 통째로 제거해 볼 것입니다. 당연히 EC2와 RDS를 먼저 제거해야 합니다.
따라서 다음과 같이 EC2 관리 화면에서 인스턴스부터 [제거] 해주겠습니다. 제거할 때는 [인스턴스 상태] 탭에서 [종료] 버튼을 누르시면 됩니다. 실제로는 인스턴스를 종료했을 때 완전히 제거가 이루어집니다.
인스턴스를 종료하면 자동으로 볼륨 저장소가 제거됩니다. 당연한 겁니다.
이후에 해당 인스턴스의 공인 IP를 위해 사용되던 탄력적 IP가 있다면 [탄력적 IP] 탭에서 이 또한 제거해주시면 됩니다.
다음과 같이 [주소 연결 해제]를 먼저 진행해 주시고, [주소 릴리즈]까지 해주시면 됩니다.
이제 EC2가 완전히 VPC에서 제거되었으므로 RDS 또한 지워주도록 하겠습니다. AWS RDS 서비스에서 [데이터베이스] 탭에 가서 우리 VPC에 포함되어 있는 데이터베이스를 찾아서 [수정] 버튼을 눌러주시면 됩니다.
기본적으로 데이터베이스는 [삭제 방지] 기능이 적용되기 때문에 이를 비활성화 처리 해주셔야 합니다.
다음과 같이 삭제 방지 비활성화 처리를 [즉시 적용] 해주시면 됩니다.
이후에 데이터베이스를 삭제할 수 있습니다. [삭제] 버튼을 눌러 삭제해주세요.
데이터베이스는 EC2보다 삭제하는 과정이 귀찮습니다. 왜냐하면 실제로 상당수 서비스에서 가장 중요한 데이터는 모두 데이터베이스 안에 있기 때문입니다. 그래서 [delete me]라는 문구를 입력하여 삭제를 진행해주셔야 합니다.
이제야 VPC로 돌아오셔서 VPC를 삭제 처리할 수 있습니다. VPC 안에 포함되어 있는 EC2 및 RDS가 모두 제거된 상태라면 어렵지 않게 VPC를 삭제할 수 있습니다.
다음과 같이 [Delete VPC] 버튼을 눌러서 VPC를 제거해보세요.
만약 네트워크 인터페이스 등이 존재하는 경우 VPC를 곧바로 제거하실 수 없습니다. 이럴 때는 네트워크 인터페이스를 먼저 제거해주시면 됩니다.
다음과 같이 네트워크 인터페이스를 먼저 제거해주세요.
이제 VPC를 다시 제거해주시면 안정적으로 제거가 완료됩니다.
VPC를 지우면서 연관된 오브젝트를 한꺼번에 지우도록 처리하시면 깔끔하게 제거가 완료됩니다.
'기타' 카테고리의 다른 글
| 다른 사람 컴퓨터에서 깃 허브(Git Hub) 이용할 때 주의할 점 (0) | 2019.01.19 |
|---|---|
| AWS EC2에 AWS RDS 연동하기 (3) | 2019.01.03 |
| AWS VPC를 이용해 EC2와 RDS를 안전하게 관리하기 (1) | 2019.01.02 |
| 노션(Notion)을 활용한 팀 프로젝트 관리 (0) | 2018.12.31 |
| Freenom 서비스로 무료 도메인 호스팅 이용하기! (2) | 2018.12.31 |