본문으로 바로가기

[AWS]AWS를 이용하여 MySQL 환경 구축하기

category Skills/AWS 2021. 11. 19. 00:47
반응형

과거에는 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.10.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/

 

MySQL :: Download MySQL Workbench (Archived Versions)

Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Workbench, please visit MySQL Downloads. MySQL open source software is provided under the GPL License.

downloads.mysql.com

- 설치가 완료되었으면 +버튼을 클릭하여 연결을 추가한다.

- 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