📌주요 목표 : aws에 mysql 서버 만들기 (준비 : putty, .pem확장자, aws, sqlyog)
📌Step1 준비 작업
푸티(켜기) -> aws로그인 -> ec2 -> 인스턴스 -> 만들고자 하는 해당 인스턴스 선택
🎈푸티켜기
푸티 켜기 -> 호스트name이름 앞에는 항상 ec2-user@ 로 시작 + 뒤에 퍼블릭 주소 붙이기, ssh에 auth에 .ppk키 파일 저장위치 선택해서 넣어주기 -> open -> 리눅스 터미널(아마존 리눅스) 켜지면 성공
📌AWS리눅스 명령창에서 명령어 작업 하기
<🎈sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022(->참고 자료 -> 복사안되면 f12로 해당 부분 선택해서 html에 들어 있는 코드로 복사해서 사용 가능)
✏️명령어에 입력 하는 부분(MuSql설치) $ sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm $ sudo yum install mysql-community-server (만약 안되면 두개 순서 바꿔서 하기, 모두 y하기)(서버 자동 시작 설정 + mysql 서버가 실행 되있는지 확인) ->$ sudo systemctl enable mysqld ->$ sudo systemctl start mysqld ->$ sudo systemctl status mysqld =>active (running)초록색으로 뜨면 성공->sudo grep 'A temporary password' /var/log/mysqld.log -> 이명령어를 통해 아래 초기 비밀번호를 알아낸다 ->초기 비밀번호 xxxxxxxxxxx (초기 비밀번호가 나온다.) ->mysql -u root -p -> 위의 초기 비밀번호 입력 (보안상 복사 불가, 입력하는 것이 안보인다.) ==>mysql이 나오면 성공(비번 바꾸기) ALTER USER 'root'@'localhost' IDENTIFIED BY '쓰고싶은 비빌번호' (비번 규칙 : 특수문자, 대분자,대분자,소문자, 숫자 포함) ==>OK라고 뜨면 성공 (MYSQL권한 주기) ->GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '비밀번호'; ==>ok나오면 성공 (이제 모든 데이터를 조회할 수 있다.) (위의 방법이 잘 안되면 확인 방법) exit; sudo systemctl restart mysqld sudo systemctl status mysqld(mysql이 돌아가나 확인 하기)(sqlyog켜기) sqlyoug -> 파일 -> 새연결 -> 인스턴스 ip주소 , 상요자 이름 root, 비번 아까 설정한 비빌번호 입력 [오류가 뜰경우 아래 순서로 실행 하기] (AWS -> 네트워크믹 보안 -> 보안그룹 -> launch-wizard-1 -> 인바운드규칙편집 -> 규칙추가 -> 포트번호 : 3306, 소스 : anywhere ip4(첫번째 클릭) -> 규칙 저장) 📢참고 (기존 디비를 가지고 오는 방법 OR 그냥 코드만 복사해서 붙여넣기로 해도됨) 기존에 작업하던 localhost에서 해당으로 이동 ->해당데이터 베이스 우클릭 -> 백업내보내기 -> 데이터베이스를 sql 덤프로 백업 -> 구조및 데이터 클릭 -> 내보내기 -> 바탕화면에 생김 -> 해당 코드 가지고 오기
📌마지막으로 기존 에서 수정해주어야 하는 것들
(기존 server.js에서 호스트 주소랑 비밀번호만 바꾸어 주면 된다.) :
==>기존 로컬 디비로 사용하던 것을 AWS로 바꾸기DB2.add("project_apart", { //데이터베이스 이름 + 객체 host: `127.0.0.1`, // == localhost user: "root", password: "", database: "project_apart", //sql에서 만든 데이터 베이스 이름 port: 3306,++
awiat axios 에서 url를 로컬호스트가 아닌 AWS 퍼블릭 주소로 모두 바꾸어 주면 된다++
(서버 켜기) ls -> 지금 폴더가 갖고 있는 파일들을 보여준다. -> ->cd 프로젝트명 ->ls -> cd server -> node server.js++
(만약 자기 서버 포트 번호가 4000이면 4000도 추가해야 한다.) AWS -> 네트워크믹 보안 -> 보안그룹 -> launch-wizard-1 -> 인바운드규칙편집 -> 규칙추가 -> 포트번호 : 4000, 소스 : anywhere ip4(첫번째 클릭) -> 규칙 저장===============AWS서버 연결 완료===================
📌간단 부가 설명(무중단 서비스 방법)
리눅스 입력창을 종료하면 서버도 종료된다. -> 항상 켜놓지 않고 끄더라고 서버가 실행되도록 하는 방법> ==> https://to2.kr/d9e(참고)
(컴퓨터가 꺼져도 서버가 유지되기 위해서는 무중단 서비스를 해야 한다.) pm2설치 필요
vsCode ->server기준으로 통합터미널 열기 -> npm install -g pm2@latest (gloabal로 했기 때문에 package.json에는 안보인다.) -> server폴더 안에ecosystem.config.js만들기 -> module.exports = { app : [ { name : "myapp", script : './server.js', //시작할 프로그램(서버 .js파일 이름이랑 같게) instances: 1, //cpu코어 수만큼 프로세스 생성 exec_mode : "cluster", //클러스터 모드 autorestart : false, watch: false, }, ], };-> 깃허브에 올리기 -> 푸티 리눅스 명령창에서 git pull origin master(수정된 프로젝트 받아오기) ->
푸티 끌때 exit로 종료 해주기