プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

AWS無料枠内でEC2とRDSでnodeアプリケーション公開まで

  • 2019年9月5日
  • 2019年9月5日
  • その他
  • 858view
  • 0件

はじめに

AWSって敷居が高そうなのと、急に無料枠飛び越して請求きたら怖いなと思って
で触っていませんでしたが、ようやくやってみました。

まずVPSとの違いについても把握しておく必要があると思いますが、基本的には似たような感じの役割で使えると思っておけばいいのかな(ゆるゆる)

以下のページでわかりやすく説明していたので、違いをはっきりさせなきゃ気持ち悪いという方は読んでみるといいかも。
https://blog.arena.ne.jp/vps/927

この記事では実際にAWS契約からWebサーバーの立ち上げとDBサーバーの立ち上げ、接続までやっていきます。

AWS契約

以下ページから契約。特に難しい部分はなかったので割愛しますが、個人利用か法人利用かといった選択や、請求先のクレジット、デビットカードの口座を登録します。登録はしますが無料範囲内であれば請求はきません。

Webサーバーを作るには

AWSの契約が完了すると、AWSのコンソール画面にログインできるようになります。頭が痛くなるような無数の数の提供サービスがありますが、もちろん全部把握する必要なんてありません。

今回したいのはWebアプリを動かすサーバーを用意したいということなので、EC2やElastic Beanstalkといったサービスを利用します。

EC2とElastic Beanstalkの違い

ざっくりと書くと、EC2はサーバーマシンをクラウド上に用意する。
Elastic Beanstalkはサーバーマシンにアプリケーション構成が整った状態(phpやruby…その他)で始めることができるといった感じ。

どちらも使ってみましたが、Elastic Beanstalkの場合はアプリケーションを圧縮してアップロードするだけで即deployができて、バージョン管理も簡単にできる印象でした。
ただ、VPSに慣れている筆者はEC2で始めてみることにしました。

EC2でクラウドサーバー作成

サービス一覧から、EC2を選択し、EC2のダッシュボードにいきます。
インスタンスの作成という項目があるので、そこをクリック。
下の画像のように、OSのテンプレートがずらっと表示されるので、希望のものを選択します。

無料利用できるものについては「無料利用枠の対象」というラベルがついているので、そちらを選択しましょう。また、左メニューの「無料利用枠のみ」にチェックを入れると無料利用できるもののみ表示することができます。

続いてインスタンスタイプの選択。
無料利用ではデフォルトチェックのまま、次の手順に進みます。

インスタンス作成の確認の経て、起動をクリック。
すると、少し待ったあと、作成したインスタンスがダッシュボード上に表示されます。

ぼかしだらけですが、この作成したインスタンスに対してSSHする際には以下赤枠のIPで行います

EC2にSSH

teratermを使ってSSHする場合

ホスト名にさきほどのIPを入力。

ユーザー名はAmazon Linuxの場合「ec2-user」となるようですが、ubuntuを選択した場合は「ubuntu」となるようです。

ユーザー名と秘密鍵を指定しログインができれば、あとはVPSと同じようにサーバー内をいろいろ弄っていくことができます。

RDSでDBサーバーの準備

続いて、先ほど作ったサーバーとは別にDBサーバーを構築します。

AWSのサービス一覧からRDSをクリック。
続いてデータベースの作成をクリックし、エンジンやバージョンを選び、EC2のときと同じように作成をクリック数分後、DBサーバーが立ち上がります。

アプリケーションサーバーとDBサーバーの接続

AWSの設定でポート開放ができます。
https://www.ipentec.com/document/amazon-ec2-add-rule-to-security-group

その後、アプリケーションサーバー側から以下のようにmysqlにログインをします。

mysql -h <RDSのエンドポイント> -P 3306 -u <RDSマスターユーザー名> -p

接続が確認できたら、アプリケーションの設定ファイルに接続先情報を書き込んで終了