소스 코드를 기록하는 남자

AWS 데이터베이스 환경 세팅 ( AWS RDS )

AWS

웹 서비스의 백앤드 개발에서 애플리케이션 코드 개발만큼 중요한 것이 데이터베이스 핸들링입니다.

 

규모가 있는 회사에는 전문 DBA 라는 직군이 있기에 상대적으로 데이터베이스를 다룰 일이 적다하지만 

 

백앤드 개발자 또한 데이터베이스를 잘 이해하고 있어야 합니다.

 

따라서 어느정도의 데이터베이스 구축, 쿼리 튜닝에 대한 기본적인 지식이 필요합니다. 

 

직접 데이터베이스를 설치해서 다루게 되면 모니터링 , 알람, 백업, HA 구성 등을 모두 직접 해야하며,

 

처음 구축에 며칠이 걸릴 수도 있습니다.

 

따라서 AWS 앞에서 언급한 작업을 모두 지원하는 관리형 서비스인 RDS를 제공합니다.

 

많은 부분을 자동화하였기 때문에, 개발자가 개발에 집중할 수 있게 하며, 저량 용량 부족에 대한 부분을 단순 비용 지불로

 

해소할 수 있습니다.

 

RDS 생성

1. 서비스 찾기에서 RDS 검색합니다.

 

 

 

 

 

2. 데이터베이스 생성 클릭

 

 

 

 

 

 

 

3. MariaDB를 사용합니다. 옵션은 아래와 같이 선택해주세요

 

 

4. 설정 

임의의 DB 인스턴스 식별자와 마스터 사용자 이름 암호를 지정해주세요

5. 스토리지

실습 용도로 사용하기에 할당 스토리지 크기는 20으로 지정합니다. 그리고 스토리지 자동 조정은 비활성화합니다.

6. 연결

퍼블릭 액세스 가능을 예로 변경합니다. 추후 보안 그룹에서 지정된 IP 만 접근 가능하도록 막겠습니다.

7. 추가 구성

추가 구성에서 초기 데이터베이스 이름만 지정하고 파라미터 옵션은 기본값으로 설정한 후 생성합니다.

 

8. 생성 이후 파라미터 설정

 

 

 

데이터베이스 생성 이후 왼편의 카테고리에서 파라미터 그룹으로 이동합니다.

 

이동한 다음에 우측 상단에 있는 파라미터 그룹 생성 버튼을 클릭합니다.

 

 

 

 

 

 

 

 

 

 

9. 파라미터 생성

파라미터 그룹 세부 정보에서 파라미터 그룹 패밀리라는 항목이 있는데 이 항목은 생성할 때 선택한 DB 버전 정보와 일치시켜 줘야 합니다.

 

저는 maria 10.4.8 버전을 선택했기 때문에 10.4 를 선택해주겠습니다.

 

혹여 등록할 때 선택한 버전이 기억나지 않는다면 

데이터베이스 -> 구성 -> 엔진 버전 으로 가시면 선택한 DB 버전을 확인할 수 있습니다.

 

 

 

 

 

10. 파라미터 편집

생성된 파라미터를 클릭하고 우측 상단을 보면 파라미터 편집이 있습니다.

 

클릭해줍니다.

 

우선 time_zone을 수정하겠습니다.  Asia/Seoul 로 변경해주세요.

 

다음으로 Character Set 을 변경하겠습니다.

 

아래 항목에서

character_set_client

character_set_connection

character_set_database

character_set_filesystem

character_set_results

character_set_server

collation_connection

collation_server

 

character 그룹은 모두 utf8mb4로 변경합니다.

collation 그룹은 모두 utf8mb4_general_ci로 변경합니다.

 

utf8과 utf8mb4의 차이는 이모지 저장 가능 여부입니다.

 

다음은 max_connections 수정입니다.

 

프리티어 사양으로는 60개의 커넥션만 가능합니다. 좀 더 넉넉하게 150으로 변경합니다.

 

혹여나 추후에 RDS 사양을 높이게 되면, 기본값으로 변경해주시면 됩니다.

 

값을 수정하고 변경 사항을 저장해줍니다.

 

11. 생성한 파라미터 그룹을 데이터베이스에 연결

 

데이터베이스 카테고리에 들어가서 인스턴스 체크 이후 수정을 클릭합니다. 

로딩창에서 수정 목록이 뜰때까지 기다려줍니다.

 

이후 추가 구성 목록에서 DB 파라미터 그룹을 생성한 파라미터로 변경해줍니다.

 

 

수정 이후 적용을 해줍니다. 한번씩 파라미터 값이 제대로 적용되지 않을수 있으니 수정 완료 이후에 데이터베이스 카테고리에서 우측 상단 탭의 작업 -> 재부팅을 진행해줍니다.

 

그럼 RDS 인스턴스 생성을 마치겠습니다.

'AWS' 카테고리의 다른 글

아마존 리눅스 서버 생성 시 꼭 해야 될 설정  (0) 2020.11.23

아마존 리눅스 서버 생성 시 꼭 해야 될 설정

AWS

자바 기반의 웹 애플리케이션으로 작동해야 하는 서버들은 필수적으로 해야될 설정이 있습니다.

 

  • Java 사용할 버전 설치
  • 타임존 변경
  • 호스트네임 변경

저는 실습과정에서 aws linux ami1를 선택해서 진행해야 했었는데 aws에서 더 지원하지 않는지, 목록에 존재하지 않았습니다.

따라서 aws linux ami2 를 선택하여 진행했고, 접속하여 확인해보니 Java 가 설치되지 않았습니다. 

 

기본적으로 서버의 시간은 미국 시간대입니다. 따라서 한국의 시간대로 변경해야 합니다.

 

호스트네임은 실무에 간다면, 수십대의 서버가 동작하기에 IP주소로 구분하는 것은 어렵습니다. 따라서 호스트네임을 필수로 등록해야 합니다.

 

Java Install

sudo yum install -y java-1.8.0-openjdk-devel.x86_64

 

위 명령어를 입력하면 Java 8 version 이 설치가 됩니다.

 

혹시 이전에 설치된 버전이 있다면 아래 명령어를 입력한 다음 사용할 버전을 선택해주시면 됩니다.

 

sudo /usr/sbin/alternatives --config java

 

서버에 사용하지 않는 버전이 존재한다면 아래 명령어를 입력하여 제거해주세요

 

sudo yum remove java-version-openjdk

 

version은 제거할 버전이 1.7.0 인 경우에 version 대신 1.7.0을 입력해주시면 됩니다.

 

타임존 변경

EC2 서버의 기본 타임존은 UTC이며, 한국과 9시간 차이가 발생합니다.

현재 서버의 타임존은 date 명령어로 확인할 수 있습니다. AWS의 EC2의 기본 로컬타임은 UTC로 설정이 됩니다.

 

따라서 Seoul 시간대로 변경해보겠습니다.

 

sudo rm /etc/localtime

sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

두 명령어를 입력하고 date 명령어로 확인했을 때 시간대가 일치하면 정상적으로 변경된 것입니다.

 

Hostname 변경

명령어를 실행하여 정규화된 이름을 입력해야 합니다.

 

sudo hostnamectl set-hostname webserver.mydomain.com

 

빨간 부분을 원하는 이름으로 변경하고 명령어를 입력합니다.

 

이렇게 다 해주시고 난 뒤에 재부팅 후 호스트 네임을 확인해보십시요.

위와 같이 변경했다면 webserver 까지만 보입니다.

 

sudo reboot

 

리루팅하시면 일정 시간 이후에 재부팅이 됩니다. 따라서 기다리셨다가 접속해보세요

 

/etc/hosts 에 변경된 hostname 등록

호스트 주소를 찾을 때 가장 먼저 검색해 보는 /etc/hosts 에 변경한 hostname 을 등록해야 합니다.

추후에 hostname을 등록하지 않음으로 발생하는 장애가 존재할 수 있기에 사전에 해소합시다.

 

sudo vim /etc/hosts

hostname에 이전에 변경한 이름을 등록해주고 저장합니다.

 

등록하고 나서

 

curl 등록한 호스트 이름

 

으로 조회했을 때 잘 못 등록했다면 Could not resolve host 에러가 발생하고

 

올바르게 등록된 경우는 Failed to connect to 에러가 발생합니다. 이는 아직 80 port 접근이 안된다는 것임으로 호스트 네임 등록이 잘 되었다는 의미입니다.

'AWS' 카테고리의 다른 글

AWS 데이터베이스 환경 세팅 ( AWS RDS )  (0) 2020.11.23