2024.08.16 - [DevOps/AWS] - [AWS] Amazon EC2 원격 로그인
이전 포스팅에서는 네트워크를 구축하고 그 안에 EC2 인스턴스를 만드는 작업까지 진행해봤다.
DB에 대해서 외부인터넷에 접속하려고 하면 어떻게 해야할까?
RDS에 대해 살펴보기 이전, DB에 대해 간략하게 알아보자.
- RDBMS(Relational DataBase Management System)
- 관계형 데이터베이스(하나이상의 열과 행의 테이블에 저장되는 데이터들의 관계 정의)에 대해 관리하는 소프트웨어
Amazon RDS
관계형 데이터베이스를 더쉽게 설치, 운영 및 확장할 수 있는 웹 서비스
특징
- 유연한 인스턴스 및 스토리지 확장
- 쉬운 백업과 복원 기능
- 멀티 AZ(가용 영역)를 통한 고가용성 확보
- RDS 암호화 옵션을 통한 보안성 강화
- Database Migration 서비스
그렇다면 AWS에서는 RDS를 통해서만 데이터베이스를 관리할수 있는것일까?
-> EC2로도 데이터베이스를 직접 설치해서 운영이 가능하다!
??? 그러면 왜 RDS라는 기능을 제공하고 사람들이 사용하는데?
EC2에 데이터베이스를 설치하게 되면 애플리케이션 최적화, 확장성, 가용성, 백업, 소프트웨어 설치 등을 전부 사용자가 설정해줘야하는 불편함이 있기에 이런설정들을 자동으로 관리해주는 RDS를 쓰는것이다.
RDS를 사용하면 우리는 애플리케이션 최적화 만 해주면 된다!
Amazon RDS의 엔진
DB 엔진 : DB 인스턴스에서 실행되는 특정 관계형 데이터베이스 소프트웨어
Amazon RDS에서 지원하는 엔진
- MariaDB
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
** 프리티어 적용시 MySQL, MariaDB, PostgreSQL 데이터베이스로 단일 AZ(가용 영역) 할당
** db.t2.micro, db.t3.micro, db.t4g.micro 인스턴스 사용량 750시간 / 년
Amazon RDS에 데이터 저장하기
순서
- 서브넷 그룹 선택
- 파라미터 그룹
- 옵션 그룹
- 데이터베이스 생성
서브넷 그룹 생성
- DB를 어떤 네트워크에 만들것인지 설정
> RDS 접속후 서브넷 그룹클릭
> 우측 상단 DB 서브넷 그룹 생성 클릭
> 이름, 설명, VPC 선택
> VPC에 해당하는 서브넷 선택
> 생성 클릭
파라미터 그룹 생성
- 어떤 RDBMS를 선택할것인지 설정
> 파라미터 그룹선택
> 파라미터 그룹 생성 클릭
> 이름, 설명 설정
> 엔진 유형 MySQL Community 선택
> 그룹 패밀리 mysql8.0 선택
> 생성
옵션 그룹 생성
- 파라미터 그룹에서 선택한 RDBMS의 엔진 버전 등록
> 옵션 그룹 선택
> 그룹 생성 클릭
> 현업에서 가장 많이 사용하는 버전인 8.0 버전으로 설정후 생성
데이터베이스 생성
> 데이터베이스 선택후 데이터베이스 생성 클릭
> 표준 생성 방식 선택
> MySQL 엔진유형 선택
> 프리 티어 선택
> 프리 티어 선택시 가용성 및 내구성을 따로 커스터마이징 할수없다.
> DB 인스턴스 식별자 입력
> 마스터 사용자 이름 입력 (developer)
> 자체 관리 선택
> 비밀번호 입력
> MySQL을 설치할 컴퓨팅 EC2 선택
> 프리티어 제공 인스턴스 db.t3.micro 선택
> 스토리지 유형 : 범용 SSD(gp3) 선택
> 할당된 스토리지 : 최소 20GiB
> 스토리지 자동 조정 해제 -> 자동 조정하면 돈나감.
(ex. 할당된 스토리지 넘어가면 자동으로 할당된 스토리지의 + 10% 부터 최대 용량까지 늘려줄수 있음)
> EC2 컴퓨팅 리소스에 연결 안 함
> Default VPC
> 미리 생성해둔 네트워크인 DB서브넷 그룹 선택
> 퍼블릭 액세스 = 예 (사실 DB와 같은 컴퓨팅 자원은 보안을 위해 private으로 두는게 좋지만 테스트를 위해 일단 예한것)
> 보안 그룹 새로 생성
> 이름 입력
> 가용영역 할당된 서브넷 두개중 하나 선택(a, c)
> 데이터베이스 포트 3306 설정
> 데이터베이스에 원격 로그인할때 인증 방식으로 -> 암호인증
> 월별 추정 요금 확인
>> 데이터베이스 최종 생성
> 생성되는데 시간좀 오래걸림... 생성완료!
세부정보
- 엔드포인트 : MySQL에 접속할수 있는 HOST 이름
- 인바운드 규칙 : RDS에 접속할수 있는 IP, PORT
- EC2의 IP 주소가 정해져있는 것이 아니기 때문에(탄력적 IP 설정하면 정해져있음) 보안그룹 설정 -> 소스 어디서나로 변경
> DB 보안그룹으로 접속
> 소스 : Anywhere-IPv4, 0.0.0.0/0 으로 변경
> 규칙 저장
EC2에서 RDS 연결
- shell에서 ssh 명령어로 EC2에 원격접속
ssh -i developer.pem ec2-user@43.202.62.115
EC2 | RDS |
클라이언트 | 서버 |
- EC2에 클라이언트 프로그램 설치
- Amazon Linux는 root 권한으로 yum명령을 통해 설치할수 있다.
sudo yum install -y mysql
- mysql 클라이언트를 이용해서 RDS 접속하기
mysql -h [호스트의 이름 = 서버의 이름 = RDS 엔드포인트] -u [RDS에서 설정한 사용자] -p
> 이후 설정한 패스워드 입력
> 접속완료!
직접 RDS를 만들고 EC2에서 RDS에 접속하는 과정을 살펴봤다.
'DevOps > AWS' 카테고리의 다른 글
[AWS] Route 53으로 도메인 서비스 구축하기 (0) | 2024.09.04 |
---|---|
[AWS] EC2에 스프링 프로젝트 띄우기 (0) | 2024.08.18 |
[AWS] Amazon EC2 원격 로그인 (0) | 2024.08.16 |
[AWS] Amazon EC2 인스턴스 만들기 (3) | 2024.08.15 |
[AWS] Amazon 네트워크 운영하기 (0) | 2024.08.15 |