cho.sh
Node.js 앱을 AWS EB에서 Heroku로 옮기기

Node.js 앱을 AWS EB에서 Heroku로 옮기기

Warning

Over a year old. May be outdated

위험

Node.js를 거의 모르던 시절에 쓴 글이다. 여기 나오는 방법은 딱히 쓸모 있는 정보가 아니다. 그냥 내 블로그의 이정표로 남겨 둔다.

예전부터 AWS Elastic Beanstalk을 써 왔는데, 최근에 Heroku가 AWS보다 나은 점이 몇 개 있다는 걸 알게 됐다. 그래서 예전에 만든 공문서 모음집을 Heroku로 옮겼다.

  1. 비용. AWS는 Free Tier가 끝나면 돈을 받는다. 내 웹사이트에도 트래픽이 조금 있어서 매달 $10 정도가 나갔다. Heroku는 트래픽 때문에 돈이 더 붙지는 않는 것 같았다.
  2. https 기본 지원. Heroku는 기본으로 https를 지원한다. 개인 도메인이 없어도 모든 Dyno 앱이 Heroku 도메인을 쓸 수 있다. AWS EB는 이걸 지원하지 않아서 Certificate를 따로 설정해야 했다. AWS에서도 인증서 설치가 어렵진 않은데, 개인적으로 좀 번거로웠다.

EB랑 Heroku 둘 다 PaaS라서 app.js와 package.json만 살짝 고치면 된다.

AWS 버전

js
// app.js

// ...

http.createServer(app).listen(8081, "0.0.0.0");
console.log("App is running on http://0.0.0.0:8081");

Heroku 버전

js
// app.js

// ...

const port = process.env.PORT || 8000;

// ...

app.listen(port, () => {
  console.log("App is running on port " + port);
});

그리고 package.json에 "start": "node app.js"를 넣었다. 코드는 GitHub에 올려 뒀고, 웹사이트는 여기서 돌아간다.

Backlinks2