본문 바로가기
IT/AWS

AWS EC2 – mariadb 설치

by 봉즙 2019. 11. 26.

서버 타임존 변경

 aws는 기본적으로 UTC로 설정되어있어 타임존을 변경해준다.

$ date

2019. 11. 26. (화) 20:23:00 UTC

$ sudo rm /etc/localtime

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

$ date

2019. 11. 27. (수) 02:25:00 KST

 

 

nginx 설치

– amazon-linux-extras install nginx

yum으로는 nginx 패키지를 찾지 못하기에 amazon-linux-extras 명령어로 nginx를 설치한다.

$ amazon-linux-extras list

$ sudo amazon-linux-extras install nginx

$ sudo service nginx start

Redirecting to /bin/systemctl start nginx.service

 

nginx 관련 파일 위치

설정 /etc/nginx/nginx.conf
로그 /var/log/nginx

 

방화벽 오픈

웹서버에 접근하기 위해 80 port를 열어주고 다음과 같이
ec2 보안그룹 설정에서 inbound에 80 port를 추가한다.

Type : HTTP
Protocol : TCP
Port range : 80
Source : 0.0.0.0/0

nginx 실행

$ sudo service nginx start

 

 

mariadb 설치

$ sudo yum install mariadb-server
$ sudo service mariadb start

 

Port 변경 / 언어셋 변경

기본포트 3306를 변경하기 위해서는 아래와 같이 설정합니다. 언어셋을 utf8mb4로 설정하는 이유는, IOS에서 이모티콘/이모지 등을 표현할때 문자당 4byte를 사용하는데 기본설정을 사용하면 3byte까지만 받을수있어 utf8mb4로 설정해서 문자를 받을수있게 해준다.

$ sudo vim /etc/my.cnf

[mysqld]

port = 36091

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

character_set_server = utf8mb4

collation_server = utf8mb4_unicode_ci

$ sudo service mariadb restart

 

root 패스워드 변경

root패스워드는 처음엔 설정이 안되어 있으므로 설정을 해주도록 합니다.

// root 패스워드 설정

$ mysqladmin -u root -p password 'xxRootPwd^&*'

Enter password: 그냥 엔터

$ mysql -u root -p

Enter password:설정한 비밀번호 입력

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.00 sec)

 

운영용 database / id 생성

root를 그냥 사용해도 되지만. root의 경우 모든 권한을 가지고 있고 외부에서 접속 가능하게 설정할 경우엔 위험할 수 있으므로 운영 DB와 운영ID를 따로 만들어 권한을 격리시켜 사용하는 것을 추천한다.

// root로 mariadb 접속

MariaDB [(none)]> create database 데이터베이스이름;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> set password for 아이디@localhost=password('비밀먼호');

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on 스키마이름.* to 아이디@localhost identified by '비밀먼호';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit;


$ mysql -u 아이디 -p

Enter password:설정한 비밀번호 입력

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| 스키마 이름 		  |

| test               |

+--------------------+

3 rows in set (0.00 sec)

 

외부 접속 설정

ec2 security groups 설정에서 mariadb port를 inbound에 추가한다.

Type : Custom TCP Rule
Protocal : TCP
Port range : 위에서 설정한 myriadb의 port
Source : 0.0.0.0/0

운영 계정 외부 접속 권한 설정

database에 대하여 지정된 유저가 103.xxx.200. 으로 시작하는 IP에서만 비밀번호를 넣어 접근가능하도록 설정한다.

// root 로그인

MariaDB [(none)]> grant all privileges on 데이터베이스.* to 아이디@'103.xxx.200.%' identified by '비밀번호';

Query OK, 0 rows affected (0.00 sec)


MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

'IT > AWS' 카테고리의 다른 글

AWS S3 이미지 업로드  (0) 2020.02.03

댓글