프로젝트 배포해보기 (2) AWS lightsail로 서버 시작하기
이전 글에서는 도메인을 구매해보았다.
https://happy-youngjae.tistory.com/48
프로젝트 배포해보기 (1) 도메인 구매하기
배포를 하기 위한 준비로는 다음과 같이 크게 볼 수 있다.도메인을 구매하기서버를 구매하기도메인과 서버를 연결하기나는 우선 도메인을 가비아를 통해 구매해보았다. 도메인을 구매하는 방
happy-youngjae.tistory.com
도메인과 네임서버를 설정해주면 이제 서버를 만들어야 한다.
나는 배포를 위한 서버로 aws를 선택하였다. 공부를하는 입장에서 서버를 유지하기 위한 충분한 돈이 없었기 때문이다. aws는 신규로 가입을 하게 되면 프리티어 기간이 1년 동안 지속되는데 이 1년의 기간 동안 특정 서비스들에 제한적인 사용량을 무료로 체험해 볼 수 있기 때문에 aws 서버를 가지고 시작하였다.
예전에 국비 교육을 들으면서는 ec2 서비스를 사용했었는데 aws사용 경험과 공부를 위해 사용하기에는 너무 기능들이 많고 알아야 하는 것이 방대해서 ec2와 배포를 위한 서비스들이 짬뽕? 되어있는 aws lightsail이라는 서비스를 사용해 보았다.
lightsail 서비스로 들어가서 리전을 선택하고 사용할 인스턴스 이미지를 선택했다.
인증키를 다운한다음 구글 드라이브에 저장해주었다. 컴퓨터가 혹시 포멧되어 버렸을 때의 보험 수단으로 넣어놓았다.
그리고 방화벽 설정을 해주었다.
기본 세팅으로 SSH 접속과 80 서버는 세팅이 되있는 상태여서 3306(mysql 서버포트)를 지정해주었다.
그 다음 외부에서 이 서버로 접속할 때 필요한 공인 IP를 설정해주려고 했는데 lightsail 버전은 이미 생성할 때 주소가 지정이 되어있었다.
알아보니 lightsail에서 생성한 인스턴스는 계속 연결을 끊거나 재부팅을 할 때 동적으로 ip가 변경될 수 도 있다고 해서 고정 ip를 발급받아 동적으로 생성되지 않고 계속 안정적인 연결을 하도록 고정 ip를 발급해주었다.
외부에서 인스턴스에 접속해보기
이 때 인스턴스를 생성하면서 발급한 SSH키가 필요하다. 나는 macOS를 사용하고 있었고 macOS는 터미널을 통해 접속을 해볼 수 있다.
SSH키가 있는 디렉터리로 이동해서 해당 인스턴스의 인증키의 권한을 소유자만 읽고 쓸 수 있도록 600으로 변경해주어야 한다고 했다.
chmod 600 [자신의 인증키 이름].pem
처음 - 은 파일의 유형을 나타내는 문자고 두번째 부터 3칸씩 각각의 사용자에 대한 권한인데
- 파일을 소유한 소유자의 권한
- 그룹 권한(파일이 속한 그룹의 사용자)
- 기타 사용자(소유자도, 그룹에도 속하지 않은 사용자)의 권한
이렇게 이루어져있다. 그래서 위 명령어로 사용자만 해당 키의 내용을 읽고 쓰도록 변경해주는 작업이었다.
그리고 macOS는 터미널 프로그램을 별도로 사용하지 않고 macOS에서 기본적으로 지원하는 터미널 프로그램을 사용하면 된다.
1) 터미널 프로그램을 실행한 후 다음과 같이 명령어를 입력하자.
ssh -i ~/{키의 디렉토리 경로}/{사용할 키 이름} {사용자 이름}@{고정 IP}
인스턴스에서 발급 받은 고정 IP를 입력해야 한다.
2) 그러면 다음과 같이 서버에 접속할 수 있다. 이제 서버에 접속한 터미널을 이용하여 서버 작업을 할 수 있다!!