이번 학기 캡스톤디자인의 졸업작품 준비에서 나는 DB&인프라 구축과 데이터 파이프라인 제작 분야를 담당했다. 팀프로젝트를 하면서 나 뿐만 아니라 같은 팀원들도 MySQL 쿼리를 작성해보고 테스트할 수 있도록 빠르게 AWS ec2로 서버를 배포해야겠다라는 생각이 들었다. 이번 포스팅에서는 AWS ec2 클라우드 호스팅과 MySQL 설치에 대한 글을 작성해보도록 하자.
먼저 구글에 "AWS ec2"라고 검색만 하면 바로 상단에 ec2를 사용할 수 있는 aws 링크가 나온다.
그로 들어가면 '인스턴스' 라는 항목이 있는데, 인스턴스란 심플하게 말하면 서버 하나를 인스턴스 하나로 대응해서 생각하면 된다. 아무튼 인스턴스 시작을 눌러서 인스턴스 이름, 운영체제, 인스턴스 유형, 키페어 및 네트워크 설정을 하고 인스턴스를 시작하면 된다.
(이 부분에서 모든 IP에서 접속을 허용할 지, 사용자가 허용한 IP주소에서만 접속을 허용할 지 설정할 수 있다)
참고로, AWS를 처음 사용하는 사람은 1년 동안 무료로 ec2를 사용할 수 있으니 "프리 티어" 라고 되어있는 인스턴스 유형을 선택하는 것을 추천한다.
나는 Ubuntu 20.04 LTS x84 이미지를 인스턴스로 만들었다.
인스턴스를 만들었으면, 로컬 환경에서 SSH를 통해 AWS에서 만들어준 우분투 서버로 연결해야 한다. 인스턴스 대시보드를 찾아보면 "인스턴스에 연결" 이라는 항목이 있으니 그쪽으로 이동.
스크린샷에서 하얀 네모박스는 보안상 가려두었고, 사용자마다 내용이 다를테니 여기에서 설명하는대로 명령어만 터미널에 입력하면 SSH에 간단하게 접속 성공.
아, 참고로 ssh-client는 미리 설치해놔야 접속할 수 있다(맥은 기본으로 깔려있음).
짠! 내 OS 환경은 MAC인데 터미널을 보면 ssh로 AWS ubuntu server에 성공적으로 접속한 것을 확인할 수 있다.
이번에는 만들어진 인스턴스 환경에 MySQL를 설치해보도록 하자. 설명은 아래 링크를 참고했다.
package 업데이트
$ sudo apt-get update
mysql 설치
$ sudo apt-get install mysql-server
mysql server 실행
$ sudo systemctl start mysql.service
mysql server 실행되었는지 확인
$ ps -ef | grep mysql
mysql workbench에서 mysql 접속 허용
mysql workbench를 사용하여 작업을 할 수 있도록 mysqld.cnf 파일을 수정한다.
$ cd /etc/mysql/mysql.conf.d/
$ sudo vi mysqld.cnf
mysqld.cnf 파일에서 bind-address를 127.0.0.1에서 0.0.0.0 으로 수정한다. 로컬 뿐만 아니라 모든 IP에서 접속을 허용한다는 뜻이다.
root 계정으로 mysql 접속
$ sudo mysql -u root -p
mysql> create user 'johaun' identified by '1234'
;오늘은 학생들이 많이 쓰는 클라우드인 AWS ec2에 인스턴스를 생성해서 mysql을 설치해보았다. 다음 포스팅에는 mysql workbench를 연동하고 팀원들이 접근할 수 있도록 서버 인프라를 구축해보려고 한다.
참고 링크
[AWS] AWS EC2 에 mysql 서버 만들기(with. React, express)
[AWS] Mac (M1) 기본 터미널로 SSH 접속