AWS Ruby on Rails プログラミング

RailsをEC2にデプロイする方法 その2

RailsをEC2をデプロイする方法の解説の続きです。
前回は下の記事でVPCやルートテーブルの設定まで行いました。

RailsをEC2にデプロイする方法 その1

RailsアプリをEC2上にデプロイする方法について解説します。 EC2上にRails+Nginx+Unicornでアプリサーバーとwebサーバーを構築し、 DBはRDS(MySQL)を使用した環境に ...

続きを見る

今回はrailsアプリをデプロイするEC2を構築する手順について解説します。

全体の手順

  1. EC2インスタンス作成
  2. セキュリティグループの設定
  3. IPアドレスの固定

EC2インスタンス作成

EC2とはOSが入っている仮想環境サーバのことです。
このEC2を使うことでユーザーは素早くアプリ等をデプロしてサービスを素早く簡単に開始することができます。

今回は前回の記事で作成したpublicサブネットにEC2を作成します。

EC2はインスタンスと呼ばれるものを使用します。
インスタンスとはAMIというテンプレートから作られた複製体です。

設定方法は以下の通りです。

  1. ダッシュボードからEC2を検索
  2. 左のメニューからインスタンスをクリック
  3. インスタンスを起動
  4. Amazonマシーンイメージ(AMI)は無料利用枠の「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択
  5. インスタンスタイプは無料利用枠の「t2.micro」を選択
  6. インスタンスの詳細の設定
    • インスタンス数:1
    • ネットワーク:test-vpc-01
    • サブネット:public-test-subnet-1a
    • 自動割り当てパブリック IP:有効
    • キャパシティー予約:なし
    • IAMロール:なし
    • シャットダウン動作:停止
    • 削除保護の有効化:チェックなし
    • モニタリング:チェックなし
    • テナンシー:共有
    • Elastic Inference:チェックなし
    • クレジット仕様:チェックなし
    • ネットワークインターフェイス:10.0.10.10
  7.  ストレージの追加
    • ボリュームタイプ:ルート
    • ボリューム:汎用SSD(gp2)
    • 合わせて削除:チェックあり
    • 暗号化:なし
  8. タグ
    1. キー:Name
    2. 値:test-web
  9. セキュリティグループ
    1. 新しいセキュリティグループを設定する
    2. セキュリティグループ名:test-web
    3. 「送信元...」という警告が出ているが、確認と作成
  10. 起動をクリック
  11. インスタンスにアクセスするためのキーペアを作成するか確認表示される
  12. 新しいキーペアの作成
  13. キーペア名:test-ssh-key
    キーペアのダウンロード 保存しておく
    ※再度ダウンロードすることはできないので、必ずダウンロード

これでRailsアプリをデプロイするための、
EC2インスタンスの設定が完了しました。
正しくEC2が設定できたか確認します。
まずは、EC2にアクセスするためのpublicIPアドレスを調べます。

  1. 作成したEC2インスタンスをダッシュボードから選択
  2. インスタンス概要に表示されるパブリック IPv4 アドレス〇〇〇.〇〇〇.〇〇〇.〇〇〇をコピー

EC2のpublicIPアドレスが分かったら、ターミナルを立ち上げて下の手順に従ってコマンドを実行して下さい。

 command
// ダウンロードしたpemファイルのアクセス権限を変更します
chmod 600 [pemファイルパス]
 
// 調べたpublicIPアドレスを@の後ろに入力して実行してEC2に接続します
ssh -i [pemファイルパス] ec2-user@[publicIPアドレス]
 
// EC2インスタンスのライブラリをアップデート
sudo yum update -y

これでEC2に接続できました。
ec2-userはEC2インスタンスの初期ユーザーになります。
この後の操作でも解説しますが、
ユーザーを別に追加して操作することもできます。

セキュリティグループの設定

publicIPアドレスをアドレスバーに入力すれば、
アクセスできるのですがEC2の初期状態ではインターネットからアクセスすることができません。
最初はssh接続用のポートだけが許可されています。
(先ほどターミナルでEC2に接続できたのはこれが理由です)

そのため、アクセスできるようにポートの許可をセキュリティグループの設定で行います。
作成したEC2インスタンスに設定したセキュリティグループは「test-web」でしたね。

  1. ダッシュボードからEC2を検索
  2. 左メニューからセキュリティグループをクリック
  3. セキュリティグループtest-webを選択
  4. 下の方のタブ[インバウンドルール]から[インバウンドルールを編集]をクリック
  5. ルールを追加
  6. 以下のように設定
    ・タイプ:HTTP
    ・ソース:任意の場所「0.0.0.0/0」「::/0」
  7. ルールを保存

これでEC2にインターネット(ブラウザ)からアクセスできるようになりました。
ただし、webサーバツール(NginxやApacheなど)を起動していないので、
アクセスしても何も表示されません。

IPアドレスの固定

EC2インスタンスを起動するたびにpublicIPアドレスが変わってしまいます。
Elastic IPという機能でグローバルIPアドレスを割りあてることで固定することができます。

ただし、注意が必要でEC2インスタンス起動中は無料ですが、
停止すると料金発生するので先にElastic IPのアクションから[Elastic IP アドレスの関連付けの解除] > [Elastic IP アドレス解放]を行って下さい。

ElasticIPの設定手順は次の通りです。

  1. ダッシュボードからEC2を検索
  2. 左メニューからElastic IPをクリック
  3. [Elastic IP アドレスの割り当て]をクリック
  4. [割り当て]をクリック
  5. 作成した固定グローバルIPアドレスを選択して[アクション]から[Elastic IPアドレスの関連付け]をクリック
  6. 以下のように設定
    ・インスタンス:test-web
    ・プライベートIPアドレス:選択したEC2インスタンスに設定されているprivate IPアドレスが選択肢として表示されるのでそちらを選択(10.0.10.10)

これでpublicIPアドレスが固定されました。
上でも説明しましたが、EC2インスタンスが停止してしまうと、
料金が発生してしまいますので先にElasticIPで固定化を解除して下さい。
手順は次のとおりです。

  1. 作成した固定グローバルIPアドレスを選択
  2. アクションからElasticIPアドレスの関連付けの解除

 

本記事ではここで一旦終わります。
続きはその3に続きます。

 

前回の記事

RailsをEC2にデプロイする方法 その1

RailsアプリをEC2上にデプロイする方法について解説します。 EC2上にRails+Nginx+Unicornでアプリサーバーとwebサーバーを構築し、 DBはRDS(MySQL)を使用した環境に ...

続きを見る

-AWS, Ruby on Rails, プログラミング

© 2021 TatsuoBlog Powered by AFFINGER5