과거에는 DB설치를 위해 Linus OS설치하고, IDC센터에 직접 방문하는 등 시스템엔지니어의 도움을 받았다고 한다.
하지만 지금은, 물리적 서버에서 논리적 서버로 클라우딩하여 마치 내 개인 서버가 있는 것 처럼 집에서도 편리하게 DB를 설치할 수 있다.
데이터베이스는 요청이 오면 LB(로드밸런서)를 통해 부하를 분해한다.
- WAS1, WAS2, .... 각각 DB1, DB2, .... 할당 후 replication(동기화)를 진행한다.
- WAS1, WAS2 가 모두 DB1로만 보내면 부하가 발생되기 때문이다.
MySQL 환경 구축 과정
1. AWS에서 EC2 인스턴스(서버)를 생성한다.
- EC2 (아마존 일래스틱 컴퓨트 클라우드) : 아마존 일래스틱 컴퓨트 클라우드는 아마존닷컴의 클라우드 컴퓨팅 플랫폼 아마존 웹 서비스의 중앙부를 이루며, 사용자가 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행할 수 있게 한다. (위키백과)
1) 인스턴스 시작
2) AMI = Ubuntu Server 18.04 선택
3) 프리 티어 선택 (무료)
- t2보다 t3가 신버전이며, 아래로 갈수록 가격이 두배정도씩 상승한다.
4) 사용할 포트 설정
- [22 : ssh] [80 : http] [443 : https] [3306 : MySQL] [27017 : MongDB] [8888 : Jupyter Notebook]
- 0.0.0.0 : 모든 IP를 허용하겠다는 의미이다. (1.1.1.1 : 개인컴퓨터 IP에 추가 : 원격PW대신 키페어 사용)
- 회사의 경우, 외부에서 회사 웹서비스에 접속하지 못하도록 source ip가 따로 설정되어있다 (회사 IP로만 접속가능)
5) ED25519 키 페어 생성
- 키 페어(.pem)는 한번만 발급되므로, 분실되지 않도록 유의한다.
6) Elastic IP 생성
- 탄력적 IP를 발급받아 생성한 인스턴스에 연결한다.
- 껐다 킬때마다 퍼블릭 IP(우리 서버의 IP 주소)가 변하는 것을 고정해주는 역할을 한다.
- 다른 방법으로는 변화하는 IP를 크롤링하여 사용하는 방법도 있다.
2. 개인PC에서 생성한 서버에 접속하고 MySQL 설치한다.
- 터미널(맥) or gitbash(윈도우)에 접속하여 코드를 입력한다.
1) 서버 접속 환경 구축
cd ~/Downloads # ~는 최상위디렉토리
mkdir ~/Downloads/.ssh # .디렉토리는 숨김폴더 : 비밀번호를 담을 것이기 때문
mv ~/Downloads/key.pem ~/Downloads/.ssh # key.pem 키페어를 .ssh 폴더에 옮김
cd ~/.ssh # .ssh 폴더로 이동
pwd # 현재 디렉토리 위치 확인
ls # 디렉토리 속에 파일들 확인
chmod 400 bda.pem # 맥os는 400권한을 설정해야함
2) 서버 접속
- 실행 후 yes를 입력하여 접속을 완료한다.
ssh -i ~/Downloads/.ssh/key.pem ubuntu@퍼블릭IP # 퍼블릭IP입력, 서버접속
3) ubuntu 에 MySQL을 설치한다.
- mysql을 설치한다
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y mysql-server mysql-client
4) 내부 pw를 설정한다,
- mysql에서 root 관리자 권한계정으로 내부 pw를 설정해준다. (root아래에 개인계정 ubuntu존재)
sudo mysql
mysql > alter user 'root'@'localhost' identified with mysql_native_password by 'password';
mysql > quit # or exit
5) 외부 접속을 설정한다.
- vi 에디터를 통해 bind-address를 수정한다.
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- vi 에디터에서 /bind (bind글자찾기) 입력 후 i를 눌러 수정모드에서 bind-address = 127.0.0.1을 0.0.0.0으로 수정한다.
- esc를 누르고, :wq를 입력하여 에디터를 빠져나온다.
6) 외부 접속 패스워드를 설정한다.
- mysql을 실행한다
mysql -u root -p # 실행 후 비밀번호 입력창 나옴
mysql -u root -ppassword # 비밀번호를 미리 입력하여 바로 실행, 비밀번호노출됨
- 외부접속 패스워드도 설정해준다.
mysql > grant all privileges on *.* to root@'%' identified by 'password';
- 설정이 완료되었으면 서버 재시작을 해준다.
sudo systemctl restart mysql.service # 서버 재시작
sudo systemctl status mysql.service # 서버 상태 확인
sudo systemctl stop mysql.service # 서버 종료
sudo systemctl start mysql.service # 서버 시작
3. MySQL WorkBench를 설치한다.
- 8.0.22 버전을 설치해준다 (최신버전에서 csv파일을 불러올때 오류가 나기때문)
- visual studio c++이 설치가 안되어있다면 설치해주어야한다.
- 맥os가 최신버전이라면 설정창에서 강제 실행을 통해 버전이 안맞는것을 해결해준다.
https://downloads.mysql.com/archives/workbench/
- 설치가 완료되었으면 +버튼을 클릭하여 연결을 추가한다.
- Connection Name을 입력하고, 퍼블릭IP을 입력한 후, password 키체인에 아까 설정한 pw를 입력한다.
- 입력한 접속 정보들로 인터넷망을 통해서 3306포트 이용하여 mysql서버에 접속하게 된다.
- Test Connection을 클릭하여 test 진행 후 OK버튼을 클릭한다.
이제 MySQL 환경구축이 완료되었다.
'Skills > AWS' 카테고리의 다른 글
[AWS] AWS Billing 확인하기 및 과금방지방법 (0) | 2021.11.21 |
---|---|
[AWS] 회원가입하기 (0) | 2021.11.18 |