본문 바로가기
프로그래밍/Web development

AWS 라이트세일에서 홈페이지 개발환경 구축하기

by makepluscode 2022. 12. 3.
반응형

AWS 에서 Node.js 개발환경 설치하는 방법

간단한 포트폴리오 홈페이지를 제작하게 되어, 개발환경과 도구에 대해서 고민을 해봤다. (예전 같으면) 국내 CAFE24 호스팅을 이용하여 html5, php, mysql 로 개발했을 것이다. 하지만 최근 클라우드에 관심이 생겨 AWS 에서 Node.js 로 개발하려고 한다. 만들어야할 페이지가 많지 않고 업데이트가 자주 있을 것 같지 않다. 그래서, 굳이 Database 를 사용하지 않으려고 한다. Google spread sheet 으로 데이터를 작성하고 json 으로 변환해서 file db 처럼 사용해보자.

 

AWS 를 시작하며

AWS 라이트세일

AWS 라이트세일, Lightsail 은 소규모 프로젝트를 위한 가상화 서버 서비스 이다. 복잡한 설정 없이 빠르고 쉽게 가상서버 인스턴스를 생성, 관리, 삭제 할 수 있다. 2022년 12월 기준으로 아래의 서비스를 제공한다.

  • Linux 와 Windows 머신을 지원한다.
  • Linux 와 Windows 머신에서 wordpress, php LAMP, nodejs,  gitlab, Django 등 다양한 언어지원과 웹프레임워크를 제공한다.
  • 가상 서버의 사양에 따라서 비용은 Linux $3.5, Windows $8 부터 시작한다.
  • 별도의 비용이 예상된다. 예를 들어 도메인 서비스 Route53 도 (소액이지만) 따로 비용이 청구 되었다.

AWS 라이트세일에 가입한다. 가장 낮은 사양(월 $3 정도)으로 가입한다. 초기 트래픽이 많지 않을 경우 3달 무료 인것 같다. 이후에도 기본요금으로 사용이 가능할 것 같아 큰 부담은 없다.

도메인을 구입하고 AWS 에 연결하기

AWS 에서 Route53 라는 서비스를 통해 도메인 등록을 지원한다. 하지만, Route53 에서 모든 도메인을 살 수 있는 것은 아니다. Route53 에서 구입할 수 있는 도메인 리스트는 링크를 참고한다. [Route53 구매 가능 도메인]

사용할 도메인이 .kr 이라서, 다른 업체에서 도메인을 구입하였다. AWS 연결을 위해 name server 를 등록했다. 그리고 AWS 에서 Route53 를 통해 구입한 도메인을 등록 하였다. 등록 후에는 새로운 레코드를 생성해서 위에서 만든 인스턴스의 정적IP 와 연결해야 한다.

첫 인스턴스 생성하기

새로운 인스턴스를 생성한다. 우분투 18.04 가 가장 익숙하지만, 20.04 로 정했다. 왜냐하면, Node.js 를 사용할 건데, glibc 바인딩에서 버전때문에 에러가 나는 경우가 있었다. 물론 해결방법은 있지만, 운영체제에 포함된 legacy 라이브러리를 변경하고 싶지 않다. 게다가 glibc 는 가장 많이 사용되는 라이브러리이기 때문이다. 그외에도 여러모로 20.04 로 갈아타야 하는 시점인 것 같다.

인스턴스 연결하기

생성한 인스턴스에 연결하는 방법은 아래와 같다.

  1. AWS 에서 제공하는 브라우저 기반의 SSH 를 사용한다.
  2. Microsoft VSCode 의 ssh 익스텐션을 이용해서 접속한다.
  3. Windows Terminal 에서 ssh 로 접속한다.
ssh -i server.pem ubuntu@5.X.X.X

1번 방법을 제외한 다른 방법들은 key (*.pem) 가 필요하다. AWS 에서 다운 받거나, 인스턴스에서 직접 생성하자.

Node.js 와 NPM 설치하기

인스턴스 터미널에서 apt-get 을 통해 nodejs 와 npm 패키지를 설치한다.

$ sudo apt-get install -y nodejs npm

최신버전으로 업그레이드 하기 위해 npm cache 를 삭제하고 n 모듈을 설치 한다

$ sudo npm cache clean -f
$ sudo npm install -g n

n 모듈을 이용하여 최신 안정화된 버전으로 업그레이드 한다.

$ sudo n stable
     copying : node/18.12.1
   installed : 18.12.1 (with npm 8.19.2)

npm 을 최신 버전으로 업데이트 한다.

$ sudo npm update -g npm

node 와 np, 명령어를 실행하여 버전을 확인한다. (2022년 12월 기준 v18.12.1)

$ node -v
v18.12.1
$ npm -v
8.19.2

참고자료

AWS 라이트세일 관련 내용은 정식 홈페이지를 참고한다.

https://aws.amazon.com/ko/lightsail/

 

가상 프라이빗 서버 및 웹 호스팅–Amazon Lightsail—Amazon Web Services

WordPress, Magento, Prestashop, Joomla와 같은 사전 구성된 애플리케이션을 통해 단 몇 번의 클릭으로 블로그, 전자 상거래 또는 개인 웹 사이트를 구축합니다.

aws.amazon.com

 

반응형