카테고리 없음

[AWS] RDS 생성 및 설정 (MariaDB)

웹개발자(진) 2024. 6. 22. 01:33
반응형

 

 

 

잡담

프로젝트 진행 중에 작업 중인 내용들을 중간중간 호스팅해가면서 작업해야 오류를 줄일 수 있고 필요한 부분을 알 수 있다는 조언을 들어서 AWS 아마존에서 지원하는 호스팅 중 DB도 지원해 준다는 것을 알게 되어 해당내용에 대해 설명해보려 합니다.

 


 

AWS RDS?

AWS RDS (Amazon Relational Database Service)는 아마존 웹 서비스(AWS)에서 제공하는 관리형 관계형 데이터베이스 서비스입니다. RDS를 사용하면 데이터베이스 설정, 운영, 확장과 같은 시간 소모적인 관리 작업을 자동화하여 데이터베이스를 보다 쉽게 관리할 수 있습니다.

쉽게 말해서 DB를 아마존에 만들어놓고 아마존에서는 그것을 관리해 준다입니다.

사실 Ubuntu를 사용하게 될 때 Ubuntu안에 DB를 넣어서 사용해도 됩니다. 그럼에도 RDS를 사용하는 데는 여러 이유가 있는데요

장점

  • 관리의 편리성:
    • 자동 백업, 소프트웨어 패치, 모니터링 등 관리 작업이 자동화되어 있어 관리 부담이 적습니다.
  • 고가용성:
    • Multi-AZ 배포와 자동 장애 조치(failover)를 통해 고가용성을 제공합니다.
  • 보안:
    • VPC 내에서 격리된 환경, 자동 데이터 암호화, IAM을 통한 접근 제어 등 다양한 보안 기능을 지원합니다.
  • 확장성:
    • 필요에 따라 쉽게 인스턴스의 크기나 스토리지를 확장할 수 있습니다.
  • 성능 최적화:
    • 읽기 전용 복제본을 통해 읽기 성능을 향상할 수 있으며, 다양한 인스턴스 유형과 스토리지 옵션을 통해 성능을 최적화할 수 있습니다.

단점

  1. 비용:
    • AWS RDS는 편리함과 관리 기능을 제공하는 만큼 비용이 발생합니다. 장기적으로 보면 직접 관리하는 것보다 더 비쌀 수 있습니다.
  2. 제한된 제어:
    • RDS에서는 일부 데이터베이스 설정 및 최적화에 대한 완전한 제어가 제한될 수 있습니다.

 

AWS RDS는 관리의 편리성과 고가용성, 보안 등의 장점을 제공하지만, 비용이 발생하며 제어가 제한될 수 있습니다.

우분투 내 직접 DB 설치는 비용 효율성과 완전한 제어, 유연성을 제공하지만, 관리가 복잡하고 고가용성 및 보안 관리가 어려울 수 있습니다.

프로젝트의 규모, 예산, 관리 능력 등에 따라 적합한 방식을 선택하면 됩니다.


RDS 사용

그럼 이제 본격적으로 간단하게 RDS를 사용해 보도록 하겠습니다. 저도 제가 사용해 본 것만 알고 있기 때문에 여러 가지 디테일한 부분은 잘 모르고 연결이 될 수 있도록 만들기만 해 보겠습니다.

콘솔홈에서 검색을 통해 RDS를 찾아 클릭해 줍니다.


 

 

데이터베이스 생성 클릭


 

MariaDB를 생성할 것이기 때문에 MariaDB클릭해 주고 엔진 버전 한번 확인해 줍니다.

다른 DB들도 생성하는데 크게 차이가 없는 게 많기 때문에 필요에 따라 만드시면 될 거 같습니다.


 

이 부분에서 무조건 프리 티어 선택해주셔야 합니다.

프리 티어로 템플릿을 만들지 않으면 요금이 결제됩니다. 주의하세요!


 

DB식별자 이름 / 마스터 사용자 이름 / 마스터 암호를 설정합니다.

DB식별자 이름: 인스턴스 생성 시 목록에 표시되는 이름

마스터 사용자 이름 : DB 접속 시 필요한 username

마스터 암호 : DB 접속시 필요한 password

마스터 사용자 이름과 암호는 기억하고 있어야 합니다. DB연결 시 필요합니다.


DB 인스턴스 클래스는 AWS RDS에서 사용할 인스턴스의 하드웨어 성능(예: CPU, 메모리)을 정의합니다. 사용자의 필요에 따라 적절한 인스턴스 클래스를 선택할 수 있습니다. 

인스턴스 클래스 유형

  • 스탠더드 클래스(m 클래스 포함):
    • 일반적인 용도로 사용되는 인스턴스 클래스입니다. m 시리즈 인스턴스는 균형 잡힌 컴퓨팅, 메모리, 네트워킹 리소스를 제공합니다.
  • 메모리 최적화 클래스(r 및 x 클래스 포함):
    • 메모리 집약적인 애플리케이션을 위해 설계된 인스턴스 클래스입니다. r 시리즈와 x 시리즈 인스턴스는 대용량 메모리를 필요로 하는 작업에 적합합니다.
  • 버스트 가능 클래스(t 클래스 포함):
    • 간헐적으로 높은 CPU 성능이 필요한 애플리케이션을 위해 설계된 인스턴스 클래스입니다. t 시리즈 인스턴스는 짧은 시간 동안 높은 CPU 성능을 제공할 수 있으며, 비용 효율적입니다.

프리 티어에서는 db.t3.micro만 사용하게 끔 되어있습니다. 주로 소규모 데이터베이스나 개발 및 테스트 환경에 적합합니다.


프리티어에서 무료로 제공해 주는 20GB SSD 사용 그대로 하시면 될 거 같습니다.


 

퍼블릭 액세스를 로 설정해 줍니다. 해당 부분을 예로 설정해야 다른 PC(외부)에서도 접속이 가능해집니다. VPC 외부에 Amazon EC2 인스턴스 역시 외부서버에 해당하기 때문에 연결하기 위해서는 퍼블릭 액세스를 허용해야 합니다.


기본적으로 MariaDB / MySQL은 데이터베이스포트 3306을 사용하지만 필요에 따라서 수정해 주시면 됩니다.


AWS IAM을 추가로 사용해서 인증하는 방법이 있는데 나중에 따로 다뤄보도록 하겠습니다.


데이터베이스 생성을 눌러줍니다.


 

데이터베이스 생성 클릭 시 상태값이 '생성 중'으로 나올 건데 5분 정도 기다리면 '사용 가능'으로 바뀝니다.

 


RDS 파라미터 그룹 생성 

db시간 세팅을 한국시간으로 세팅하고 언어를 utf4mb 4로 바꿔주는 작업을 진행합니다.

이건 필수는 아니고 조금 더 디테일하게 db를 사용하고 싶다 하시는 분은 따라 하시면 될 거 같습니다.

왼쪽 목록에 파라미터 그룹을 선택해 줍니다.


 

오른쪽 끝에 있는 파라미터 그룹생성을 클릭해 줍니다.


 

파라미터 그룹이름은 마음대로 적으셔도 됩니다. 나중에 해당 그룹이름으로 세팅정보를 찾아오는데 크게 중요하지 않습니다. 엔진유형은 MariaDB로 만들었기 때문에 해당 엔진 선택해 줍니다.

파라미터 그룹 패밀리는 RDS 만들 때 mariaDB의 버전을 찾아서 선택해 주시면 되는데 기억이 나지 않는다 하면?

아까 만들어놓은 데이터베이스를 선택합니다.


구성탭을 클릭합니다.


엔진 버전 확인해 주시면 됩니다.


다시 파라미터 그룹으로 돌아와서 설명을 진행하겠습니다. 

생성한 파라미터 그룹을 선택하고 작업 / 편집을 클릭합니다.


검색창에 character_set이라고 검색하여 값에 utf8mb 4를 입력해 줍니다.


검색창에 time_zone이라고 검색하여 값에 Asia/Seoul을 입력 후 변경사항 저장 버튼을 클릭합니다.


 

다시 데이터베이스로 돌아와 식별자를 클릭해 줍니다.


 

수정버튼 클릭


 

 

추가 구성에 데이터베이스옵션 / DB 파라미터 그룹을 아까지정한 그룹이름으로 바꿔주면 됩니다.


 

즉시 적용을 선택해서 수정 후 바로 적용되게 만들어 줍니다.

 


 

RDS 인바운드 보안 그룹 규칙 설정

AWS RDS 인스턴스를 사용할 때, 인바운드 보안 그룹 규칙 설정은 매우 중요합니다. 이를 통해 특정 IP 주소나 IP 범위에서만 RDS 인스턴스에 접근할 수 있도록 제한할 수 있습니다.

VRC 보안 그룹 클릭


인바운드 규칙 편집 클릭


 

규칙을 추가해 주고 저장해 주시면 됩니다.

해당 설정을 안 해놓으면 처음에 데이터베이스를 생성한 IP에서만 접속이 가능하다고 하네요.

모든 IP에서 DB에 접속을 할 수 있도록 0.0.0.0/0으로 설정하였습니다.

 


 

RDS 데이터베이스 접속 (Intellij)

생성을 완료했으니 이번엔 데이터베이스가 잘 연결되는지 확인해 보겠습니다.

인텔리지 데이터베이스에서 Data Source / MariaDB를 선택해 줍니다.


DB식별자 이름: 인스턴스 생성 시 목록에 표시되는 이름

마스터 사용자 이름 : DB 접속 시 필요한 username

마스터 암호 : DB 접속시 필요한 password

아까 RDS 만들 때 생성했던 설정값들을 입력해 줍니다.

Host에 들어갈 앤드포인트 url 값은 아래에서 확인할 수 있습니다.


 

Test Connection을 진행했을 때 Succeeded 가 출력된다면 정상작동하는 것입니다.

 


 

글을 마치며

오늘은 RDS 기본적인 생성 및 설정 방법, RDS 파라미터 그룹설정, 데이터베이스 연결 및 접속 방법에 대해서 알아봤습니다. 호스팅 하면 빠질 수 없는 게 AWS입니다. 요즘은 여러 가지 다양한 호스팅 서버가 생겨서 다양한 서버를 이용하면 되긴 합니다만 그래도 AWS를 사용하는 곳이 많은 것으로 알고 있습니다. 다른 게시글에서 AWS에 다른 기능들에 대해서도 알아볼 시간을 가지도록 하겠습니다. 감사합니다.

반응형