RailsをEC2をデプロイする方法の解説の続きです。
前回は下の記事でVPCやルートテーブルの設定まで行いました。
-
-
RailsをEC2にデプロイする方法 その1
RailsアプリをEC2上にデプロイする方法について解説します。 EC2上にRails+Nginx+Unicornでアプリサーバーとwebサーバーを構築し、 DBはRDS(MySQL)を使用した環境に ...
続きを見る
今回はrailsアプリをデプロイするEC2を構築する手順について解説します。
全体の手順
- EC2インスタンス作成
- セキュリティグループの設定
- IPアドレスの固定
EC2インスタンス作成
EC2とはOSが入っている仮想環境サーバのことです。
このEC2を使うことでユーザーは素早くアプリ等をデプロしてサービスを素早く簡単に開始することができます。
今回は前回の記事で作成したpublicサブネットにEC2を作成します。
EC2はインスタンスと呼ばれるものを使用します。
インスタンスとはAMIというテンプレートから作られた複製体です。
設定方法は以下の通りです。
- ダッシュボードからEC2を検索
- 左のメニューからインスタンスをクリック
- インスタンスを起動
- Amazonマシーンイメージ(AMI)は無料利用枠の「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択
- インスタンスタイプは無料利用枠の「t2.micro」を選択
- インスタンスの詳細の設定
- インスタンス数:1
- ネットワーク:test-vpc-01
- サブネット:public-test-subnet-1a
- 自動割り当てパブリック IP:有効
- キャパシティー予約:なし
- IAMロール:なし
- シャットダウン動作:停止
- 削除保護の有効化:チェックなし
- モニタリング:チェックなし
- テナンシー:共有
- Elastic Inference:チェックなし
- クレジット仕様:チェックなし
- ネットワークインターフェイス:10.0.10.10
- ストレージの追加
- ボリュームタイプ:ルート
- ボリューム:汎用SSD(gp2)
- 合わせて削除:チェックあり
- 暗号化:なし
- タグ
- キー:Name
- 値:test-web
- セキュリティグループ
- 新しいセキュリティグループを設定する
- セキュリティグループ名:test-web
- 「送信元...」という警告が出ているが、確認と作成
- 起動をクリック
- インスタンスにアクセスするためのキーペアを作成するか確認表示される
- 新しいキーペアの作成
- キーペア名:test-ssh-key
キーペアのダウンロード 保存しておく
※再度ダウンロードすることはできないので、必ずダウンロード
これでRailsアプリをデプロイするための、
EC2インスタンスの設定が完了しました。
正しくEC2が設定できたか確認します。
まずは、EC2にアクセスするためのpublicIPアドレスを調べます。
- 作成したEC2インスタンスをダッシュボードから選択
- インスタンス概要に表示されるパブリック 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」でしたね。
- ダッシュボードからEC2を検索
- 左メニューからセキュリティグループをクリック
- セキュリティグループtest-webを選択
- 下の方のタブ[インバウンドルール]から[インバウンドルールを編集]をクリック
- ルールを追加
- 以下のように設定
・タイプ:HTTP
・ソース:任意の場所「0.0.0.0/0」「::/0」 - ルールを保存
これでEC2にインターネット(ブラウザ)からアクセスできるようになりました。
ただし、webサーバツール(NginxやApacheなど)を起動していないので、
アクセスしても何も表示されません。
IPアドレスの固定
EC2インスタンスを起動するたびにpublicIPアドレスが変わってしまいます。
Elastic IPという機能でグローバルIPアドレスを割りあてることで固定することができます。
ただし、注意が必要でEC2インスタンス起動中は無料ですが、
停止すると料金発生するので先にElastic IPのアクションから[Elastic IP アドレスの関連付けの解除] > [Elastic IP アドレス解放]を行って下さい。
ElasticIPの設定手順は次の通りです。
- ダッシュボードからEC2を検索
- 左メニューからElastic IPをクリック
- [Elastic IP アドレスの割り当て]をクリック
- [割り当て]をクリック
- 作成した固定グローバルIPアドレスを選択して[アクション]から[Elastic IPアドレスの関連付け]をクリック
- 以下のように設定
・インスタンス:test-web
・プライベートIPアドレス:選択したEC2インスタンスに設定されているprivate IPアドレスが選択肢として表示されるのでそちらを選択(10.0.10.10)
これでpublicIPアドレスが固定されました。
上でも説明しましたが、EC2インスタンスが停止してしまうと、
料金が発生してしまいますので先にElasticIPで固定化を解除して下さい。
手順は次のとおりです。
- 作成した固定グローバルIPアドレスを選択
- アクションからElasticIPアドレスの関連付けの解除
本記事ではここで一旦終わります。
続きはその3に続きます。
前回の記事
-
-
RailsをEC2にデプロイする方法 その1
RailsアプリをEC2上にデプロイする方法について解説します。 EC2上にRails+Nginx+Unicornでアプリサーバーとwebサーバーを構築し、 DBはRDS(MySQL)を使用した環境に ...
続きを見る