aws에서 DB배포하는 방법을 검색 해 보면 십중팔구 RDS에 대해 나온다. RDS는 Relational Database Service다. 데이터베이스의 종합적 관리와 배포(api 호출응답)를 편리하게 해 주는 서비스란다.
스윽 보니까 싸진 않다. 시스템 업데이트를 알아서 해 준다는 점과 데이터를 자동으로 백업 및 복구 해 준다는 것이 특장점 같다. 개발 할 때 DB서버도 백업이나 복구를 자동화 할 수 있겠지만 아마존이 아무래도 더 잘 하겠지.
구직의 관점에서도, 창업의 관점에서도 RDS 사용법을 익히는게 더 실용적이겠지만 왠지 나는 EC2에서 직접 돌리고싶다. 왜 뭐든 직접 해 보고싶은걸까...
그리하여 EC2에서 mariadb 배포하는 방법을 선택했다.
1.
ec2인스턴스에 접속해 패키지 서버를 업데이트 해 주고, mariadb를 잘 다운받는다. 내 개인컴퓨터 os가 만자로인데, 거기서쓰는 pacman은 대충 mariadb라고만 해도 알아서 잘 다운받아주는데, 오랜만에 우분투의 apt를 썼더니 패키지명을 꽤 구체적으로 써 줘야 했다.
설치 한 뒤에 systemctl start mariadb 하니까 자꾸 비밀번호를 요구하는거다. mariadb는 어느시점부터인가 os의 root계정과 maraidb서비스의 root계정을 연동한다고 들었다. 그래서 인스턴스에 비밀번호를 생성하고 뭐 maraidb에 root계정 비밀번호를 다시 설정하고 난리를 다 쳤는데...
결국은 mariadb설치 후 최신버전으로 update해주면서 해결이 됐다. 진짜 어이가 없다.
2.
env 라이브러리로 안전하게 DB와 백앤드(api서버)를 연결 해 준다.
3.
mariadb는 기본적으로 로컬네트워크에서만 접속할 수 있도록 설정 돼 있다.
/etc/mysql/mariadb.conf.d/50-server.cnf
열어보면 보안상 이유라면서 bind-address = 127.0.0.1로 설정돼 있는걸 볼 수 있다. 걍 주석처리 해 버린다.
이제 접속이 잘 되는것을 확인할 수 있다.
ps. 근데 어차피 백앤드(api서버) 돌아가는 시스템에서 DB도 같이 배포 할거면 그냥 로컬호스트로 둬도 괜찮은 것 아닌가싶다. 테스트하긴 좀 귀찮네...