본문 바로가기
Server

[AWS] ubuntu 서버, MySQL DB 한 번에 배포하기 1(Lightsail)

by DuncanKim 2022. 9. 29.
728x90

[AWS] ubuntu 서버, MySQL DB 한 번에 배포하기 1(Lightsail)

널리 배포하라...

 

1. 왜 EC2가 아닌 라이트세일인가?

 

 EC2는 회사에 인프라 관리자가 있거나 자신이 가상 서버, 네트워크, 디스크 볼륨, 보안 그룹 등의 관리를 하드하게 해야할 때 상대적으로 더 적합하다. 상세 설정을 통해서 비용이든 성능이든 이득을 얻을 수 있는 환경에서 일하고 있다면 EC2와 관련 서비스들의 유연한 환경설정은 큰 장점이기 때문이다.

 또한 EC2는 네트워크 트래픽보다는 CPU 연산 위주의 프로젝트를 돌릴 때 더 유리하다. 무엇보다 서버를 껏다 켰다 하면서 과금되는 시간을 조절할 수도 있다는 온디멘드 방식은 매우 매력적인 옵션이다.

그러나 뒤집어 이야기하면 세팅 하려고 정작 개발을 못하고 인프라 관리하는 시간이 더 들어가기에 주객전도가 되는 상황이 발생할 수 있다.

 

Lightsail은 인프라 관리해줄 사람이 없고 혼자서 빠르게 웹서비스를 호스팅 해보려는 사람에게 적합하다.

만일 라이트세일을 사용하다 서버 성능을 올리고 싶으면, 이미지를 떠서 고사양의 Lightsail 인스턴스를 만든다음 import하면 몇 분 안에 똑같이 생성되니 문제 없다. Lightsail은 CPU 연산 위주의 작업보다 네트워크 트래픽에 더 중점을 두는 서비스에 적합하다.

 

 

둘에 대한 자세한 비교는 AWS 공식 문서를 통해 확인해 볼 수 있다 .

https://aws.amazon.com/ko/premiumsupport/knowledge-center/lightsail-differences-from-ec2/

 

Amazon EC2와 Amazon Lightsail 비교

Amazon EC2와 Amazon Lightsail의 차이점은 무엇입니까? 최종 업데이트 날짜: 2021년 10월 27일 가상 서버를 사용하여 애플리케이션을 실행하고 싶습니다. Amazon Elastic Compute Cloud(Amazon EC2)와 Amazon Lightsail의

aws.amazon.com

 

 

2. Lightsail 서버 생성

 

사전에 필요한 것은 AWS 계정이다. 아래를 따라하기 전에 만들어 놓아야 한다.

또한 Lightsail 과금이 없기 위해서는 Lightsail을 사용한 적이 없어야 한다.

 

 

1) AWS 페이지에 접속하고 돋보기를 클릭하여 Lightsail을 찾는다. 

 

 

2) Create instance를 클릭하여 인스턴스를 생성한다.

 

3) 서버 기본 설정

 

 

Ubuntu Linux를 선택한다.

 

 

 

첫 3개월은 무료다. $5의 용량을 가진 인스턴스를 생성해보도록 한다. 그래야 스프링부트를 돌릴정도의 램이 확보된다.

cf. 주의 할 점은 서버를 두 개 이상 만들 경우, 약간의 과금이 발생할 수도 있으니 주의해야 한다. 나는 시험삼아 만들어본 서버때문에 302원을 AWS에 헌납하였다...

 

 

4) 하단의 Create New를 선택한다. 서버 이름은 바꿔도 상관 없다.

 

 

 

5) 인스턴스가 생성되는 시간이 1~2분 소요될 수도 있다.

 

인스턴스가 생성되었다. 클릭하여 인스턴스의 정보를 볼 수 있다 .

 

 

6) 고정 IP 생성

 

AWS에 접속하여 사람들이 페이지를 보려면 고정 IP가 필요하다. 이유는 이것을 보는 사람들은 충분히 알 수 있을 것이라 생각하여 자세히 적지는 않는다.

 

(1) 라이트세일 홈 화면에서 Networking 탭에 들어와서 Add rule을 클릭한다.

 

(2) 네트워크 설정(방화벽 해제)

스프링부트 기본 포트 번호는 8080이다. 외부에서 8080포트로 접속하여 프로젝트를 보려면 방화벽 해제 작업을 해야 한다. 

 

네트워킹 탭에서 IPv4 방화벽 탭에서 '규칙 추가'를 누른다.

사용자 지정 -> 8080 포트로 설정하고, 생성을 누른다.

설정이 완료되었다.

 

 

 

7) 키페어 생성 후 터미널로 서버 접근하기

 

터미널에서 서버에 접속하기 위해 필요한 키페어를 생성해야 한다.

홈 화면 우측 상단의 계정 토글 박스를 내리고, 계정 탭을 클릭한다.

 

 

키페어가 없을 수도 있는데, 그럴 경우 키 페어 생성을 하고, 다운로드를 받아야 한다.

나같은 경우에는 이미 키페어를 다운로드 받아서 다운로드 버튼이 없는데, 휴지통 모양 옆에 보면 다운로드 받는 버튼이 있다. 그것을 클릭하고 다운로드 받는다.

 

키페어를 잃어버릴 경우, 재발급이 어려우니, 백업을 항시 해두도록 한다. 또한 다른 사람에게 노출되지 않아야 한다.

 

맥북의 경우, 키페어가 위치할 곳은 루트폴더이다. /Users/<사용자명> 폴더에 키페어를 넣어준다.

 

키페어의 이름은 편의상 mysite.pem으로 해두는 것이 좋겠다. 바꿔도 상관없다.

 

 

8) 키페어 권한 설정 후 서버 시작

 

(1) 권한 설절

터미널로 들어간다.

donghyeon@Dong-Hyeon ~ % chmod 600 mysite.pem

 

키페어가 들어있는 디렉토리에서 chomod 600 mysite.pem을 해준다. 만약 키 이름이 다를 경우, 그 부분만 다르게 해주면 된다.

 

 

(2) 서버 시작

 

ssh -i mysite.pem ubuntu@(서버 ip)

 

프라이빗 키를 비밀번호로 하여 서버에 접속하는 것이다. 키페어가 있는 디렉토리에서 위 명령어를 실행하면, 아래와 같이 터미널이 바뀌는 것을 볼 수 있다.

 

 

서버에 접속한 것이다. 이제 여기에서 배포에 필요한 작업을 진행할 것이다.

 

 

9) 호스트네임 변경
 
여러 개의 서버를 쓸 수도 있기 때문에 호스트네임을 변경한다.
 
$ sudo hostnamectl set-hostname [변경할 hostname]

재부팅 후 재접속

$ sudo reboot now

실행 결과

 

 

10) 현재 시간 변경

sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

초기 서버 설정은 9시간이 차이난다. date를 써보면 알 수 있다.

위의 명령어를 입력해주면, 서버시간이 한국 시간으로 바뀐다.

 

 

 

3. 정리

 

여기 까지 AWS Lightsail 서버 인스턴스를 생성하고 접속하는 것 까지 끝냈다.

바로 다음편에는 MySQL 서버와 연동하고, ssl, 도메인등록까지 하여 https://(본인 도메인).com 으로 접속했을 때, 데이터베이스를 활용하는 스프링부트 홈페이지를 남들이 볼 수 있게끔 배포를 완성해볼 것이다.

 

 

 

 

 

<참고>

https://wikidocs.net/book/7601
https://sh970901.tistory.com/79
728x90

댓글