대충이라도 하자

Local에서 작업한 프로젝트 aws lightsail에 올리기 + DB 세팅 ( without RDS) 본문

꼬꼬마 개발자 노트/AWS

Local에서 작업한 프로젝트 aws lightsail에 올리기 + DB 세팅 ( without RDS)

Sueeeeee
반응형

Situation 

1. Using AWS lightsail

2. nginx 웹 서버 설정

3. Having local DB, schema

4. Projects of backend and frontend

5. config 파일 설정 및 업로드

========================================================================

 

제일 먼저 DB를 세팅해주어야 한다.

 

lightsail에서 mysql이 있어야 하고 터미널에서 sudo mysql 실행

아래의 명령어를 통해, 데이터베이스 생성!

create database [ database name] ;

그런 다음, user를 세팅해주어야 한다.

먼저, mysql로 들어가고 (사실 이 과정 생략해도 user 만들 수 있음)

mysql -u root -p mysql

User id와 Password를 생성한다. / localhost이면 localhost, %라고 하면 모든 외부 IP (User id 기억!!!)

mysql> create user 'USER_ID'@'localhost' identified by 'USER_PASSWORD'; 

위의 사용자의 권한을 부여한다. 

mysql> grant all privileges on DATABASE_NAME.* to USER_ID@'localhost';
부여된 권한 적용

mysql>flush previleges;

 

 

그런 다음, Schema 를 복제하기 위해서는 DB 파일을 만든 뒤, 서버에 올려주어야 한다.

mysql의 wmb 파일(스키마)파일에서 Database -> Forward Engineer 해주면, SQL파일로 추출된다.

파일이 준비되면, 파일을 서버에 올리기 위해 FileZila를 다운 받을 것!

다운은 간단하므로 과정은 생략!

다운이 완료되면, FileZila를 실행해서, 파일 ->사이트 관리자로 들어간다.

그래서 아래처럼 1. SFTP 프로토콜 2. 로그온 유형은 키 파일 형식 

호스트에는 AWS서버의 Public IP를 입력한다. 

그리고 중요한 키 파일!!!

AWS 서버를 가지고 있으면 pem 파일을 가지고 있는데 이 파일을 ppk 파일로 변경해주어야 한다.

그리고 이 ppk 파일은 puttyGen으로 생성 가능하다. 다시 puttyGen 설치!

설치를 하고 나면, load에서 Pem 파일을 가져오고 RSA 형식을 한뒤, save private key를 클릭한다. (Generate X )

파일을 Load 하면 key 위쪽의 key라는 빈 칸에 키 값이 나타난다. ( 이 key 값 기억!!!)

 

이렇게 ppk가 생성되면 다시 FileZila에서 키 값을 불러오면 AWS 서버와 연결이 되고 Local에 있는 파일을 AWS 서버로 옮길 수 있다. -> 내가 옮길 파일은 앞서 만든 SQL 파일과 Config.yaml 파일!!!

 

***

Putty 연결 중, server refused key, No supported..와 같은 오류가 발생하는 경우

EC2 쪽에, public key가 등록되어 있지 않기 때문.

- AWS console의 instance를 클릭해, ssh 터미널 실행

- cd .ssh

- ls 누르면 authorized_keys 파일 확인 가능

- vi authorized_keys

- puttyGen에서 만든 기억하라고 한 key를 복사해서 붙여넣은 후, 저장 종료.

***

 

이제 스키마를 복제할 준비가 완료!

- AWS에서 sudo mysql로 mysql terminal로 들어가기

- 사용할 데이터베이스 설정 use DBl;

- 아래의 명령어 실행하면 sql 파일이 실행되면서 스키마가 복제된다.

source [sql파일이 저장된 경로];

*** sql파일이 저장된 경로 찾기   :  sudo find / -name [파일이름.sql]  ***

 

 

웹서버 설정 !!!

sudo apt-get install nginx 로 설치한 뒤, 

route를 설정해주어야 하는데 팀장님께 다시 여쭤봐야....ㅜㅜ

 

 

AWS 서버에 Frontend, Backend clone 하기

git을 일단 설치한 뒤, git clone 가지고 와야 하는데

그럴려면 ssh 키 설정이 필요 -> 다시 여쭤봐야...ㅜㅜ

*** 조심해야 할 점은 서브모듈이 있는 경우, clone 해오면 가지고 오지 않기 때문에 아래를 통해 가지고 와야 한다.

git submodule init
git submodule update

참고 : https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-%EC%84%9C%EB%B8%8C%EB%AA%A8%EB%93%88

 

Git - 서브모듈

gitmodules 파일에 있는 URL은 조건에 맞는 사람이면 누구든지 Clone 하고 Fetch 할 수 있도록 접근할 수 있어야 한다. 예를 들어 다른 사람이 Pull을 하는 URL과 라이브러리의 작업을 Push 하는 URL이 서로

git-scm.com

 

Config 파일 설정하기

원래 Backend 파일에 있었던 config 파일은 gitigore되기 때문에 FileZila를 통해 별도로 업로드해주어야 한다.

dsn에 host를 AWS 서버 Public IP로 변경을 해주어야 한다고 생각했는데 안해줘도 되서 shocked....

이렇게 설정을 한 파일을 Backend가 있는 경로에 FileZile로 업로드 시키면 완성!!!!

 

 

이런 기본 설정도 몰라 팀장님을 괴롭게 만들어 너무 죄송스럽다.....ㅜㅜㅜ

잘 기록해놓고 공부해서 다음에는 처음부터 끝까지 내 힘으로 해야지ㅜㅜㅜ

반응형

'꼬꼬마 개발자 노트 > AWS' 카테고리의 다른 글

AWS 인스턴스 cmd, powershell 통해 접속  (0) 2021.11.30
Comments