개발/개발TIP

[AWS] EC2서버에 MariaDB 설치

독코더 2023. 3. 14. 17:51
반응형

JAVA카테고리에 '자바웹개발워크북' 포스팅을 참고하면 AWS를 이용해 인스턴스를 생성하고, 프로젝트를 실행할수 있습니다.

 

본격적으로 데이터베이스를 구축하려고보니 방법이 2가지였습니다.

첫번째는 EC2에 직접 설치해서 운용하는 방식이고, 두번째는 AWS의 RDS서비스를 운용하는 방식입니다.

교재는 후자의 방법으로 진행됩니다.

 

그런데 본문에 RDS의 경우 개발용으로 설정하는 경우 많은 과금이 발생할수도 있다고하네요...

그렇다면 두가지 방법에 어떤 차이가 있는지 확인해보겠습니다.

 

AWS의 RDS란?

아마존 RDS(Relational Database Service)는 아마존 웹서비스(AWS)가 서비스하는 '분산 관계형 데이터베이스'입니다.

데이터베이스 소프트웨어를 패치하거나 데이터베이스를 백업, 시점복구를 활성화하는것과 같은 복잡한 관리프로세스를 자동으로 관리하고,

애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 쉽고 편하도록 설계된 클라우드내에서 동작하는 웹서비스입니다.

 

개발자로 하여금 쉽게 데이터베이스를 관리할수 있게 도와주지만 비용이 발생합니다.

요금관련 링크 : https://aws.amazon.com/ko/rds/pricing/

 

반면에 EC2에 올려서 사용하면 무료라는 장점이 있습니다.

결론적으로 실습용으로 잠깐 사용한다면 RDS, 지속적으로 운영한다면 EC2에 올려서 사용하는게 좋습니다.

본인은 EC2에 올려서 사용하려합니다.

 

1. MariaDB 설치하기

EC2에서 설치가능한 MariaDB의 버전을 확인하기위해 아래 명령어를 입력합니다.

sudo yum list | grep mariadb

순정상태라면 MariaDB 5버전이 설치가 가능합니다. 하지만 너무 오래된 버전이므로 신규프로젝트라면 10버전을 사용하는것이 좋습니다.

본인에게 필요한 저장소가 어떤건지 링크사이트를 통해 확인합니다. https://downloads.mariadb.org/mariadb/repositories

필요한조건을 입력하면 다음과 같은 MariaDB 리포지토리 관련 정보가 나옵니다. 내용을 복사해둡니다.

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

이제 아래의 명령어를 입력해서 yum저장소 파일을 편집합니다. 

sudo vi /etc/yum.repos.d/MariaDB.repo

i를 눌러 입력모드로 전환후 복사해둔 내용을 붙여넣기합니다. ESC로 나간 후 :wq로 변경된 내용을 저장합니다.

다시 아래 명령어를 입력합니다.

sudo yum list | grep mariadb

이젠 10버전도 설치가 가능해졌습니다. 아래 명령어로 설치해줍니다.

sudo yum install MariaDB-server MariaDB-client
sudo yum install -y MariaDB-server MariaDB-client MariaDB-backup

설치가 완료됐다면 'mysql -V'명령어로 설치버전을 확인해봅니다.

 

2.  초기 보안설정

Last login: Tue Mar 14 16:31:32 on ttys000
rrumang@yuminhaui-MacBookPro ~ % ssh markm
Last login: Tue Mar 14 07:31:38 2023 from 14.51.44.193

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-31-43-26 ~]$ sudo service mysql start
Starting mysql (via systemctl):                            [  OK  ]
[ec2-user@ip-172-31-43-26 ~]$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

 

아래 명령어를 통해 접속합니다.

mysql -u root -p

 

3.  DB & 계정 생성 및 권한 부여

DB를 사용할때는 root계정은 웬만해서는 쓰지않는게 좋습니다. 사용자를 새로 생성하고 권한을 부여하겠습니다.

DB 생성

create database DB명 default character set utf8;

사용자 계정 생성

create user '아이디'@'%' identified by '비밀번호';

권한부여

grant all privileges on DB명.* to 아이디@'%';

위명령의 의미는 아이디라는 계정에 DB명이라는 데이터베이스를 마음대로 할수 있는 권한(*)을 부여한다는 뜻입니다.

수정적용

flush privileges;

권한부여까지 완료했다면 위의 명령어로 적용시켜줍니다.

반응형