LoginSignup
2
2

More than 5 years have passed since last update.

AWS Webアプリ公開①~VPC、EC2、SSH接続~

Last updated at Posted at 2018-05-13

前説

今週は一旦Railsから離れてAWSの勉強しようかなと思いました。(Railsもちょこちょこやる)

やりたいこと(2つ)

  • AWSでExpressの環境構築
  • Railsアプリをデプロイ

まず何をすべき?

  • AWS VPCでネットワーク整備
  • AWS EC2で仮想環境作成
  • EC2内で環境構築

実際作った

一回目に作った環境にSSHしたが・・・

ssh: connect to host 184.168.221.104 port 22: Connection refused

認証の問題でもなく、何かがアクセスを弾いてる?ネットワークが完成していないのか?

うーん。。。接続できてない。
パプリックDNSで検索しても同じ結果。DNS逆引きしてみる。

Non-authoritative answer:
Name:   ip-10-0-1-8.ap-northeast-1.compute.amazonaws.com
Address: 184.168.212.72
ping  184.168.212.72
64 bytes from 184.168.221.104: icmp_seq=2 ttl=49 time=174.616 ms
64 bytes from 184.168.221.104: icmp_seq=3 ttl=49 time=194.756 ms

上のような感じで出てきました。
グローバルIPでpingを打つとしっかりとパケットが帰ってきます。
つまり、接続はできていると・・・。何らかののファイアウォールが弾いてるのかと予想。

やり直すか

というわけで2回目

VPCでネットワーク整備

VPC構成準備

VPCのウィザード作成をクリック

最初にこういう画面が出てきますよね!

スクリーンショット 2018-05-14 11.05.25.png

これはネットワークの構成を選択できます。
サブネットは同一IPネットワークで形成された空間を分割する仕組みです。
VPC構築時点でサブネットによってIP空間を分割してくれるよう指定できるわけです。
そのVPC構成をここで選択できます。

スクリーンショット 2018-05-14 11.08.00.png

今回僕らが選んだのはパブリックサブネットのみを作成する構成。
一応、VPC作成後もパブリックサブネットとプライベートサブネットに分割できるっぽい。

CIDRブロックはVPCのイメージとしては全体「10.0.0.0/16」
サブネットは「10.0.1.0/24」(ここにWebサーバーを設置)
アベイラビリティゾーンでは「ap-northeast-1a」(アジア東京)を指定。
1回目は「ap-northeast-1c」にしてた。
これが原因で弾かれていたのかもしれない・・・

Web系の環境構築だとこんな感じになりそうですね!

  • パブリックIPアドレスにおいて、Webサーバーやメールサーバーなどインターネットとの接続の必要があるサーバーを設置します。
  • プライベートIPアドレスにおいて、データベースサーバーなどインターネットとは接続しないサーバーを設置します。

VPC作成後

VPC確認

スクリーンショット 2018-05-14 11.13.21.png

VPC作成により「10.0.0.0/16」のプライベートIPアドレスを取得

サブネット確認

送信先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 igw-★★★★★★★

今回は「10.0.1.0/24」というプライベートIPアドレスでパブリックIPネットワーク空間を形成。
「0.0.0.0/0」というインターネットゲートウェイが自動で追加されてます。

インターネットゲートウェイの役割としては、VPCからインターネットへのアクセスやプライベートIPアドレスとグローバルIPアドレス変換を行うNATの役割を果たしてくれるらしい。(自信ない)

ルーティングテーブル確認

「サブネット関連づけ」
作成したサブネットが登録されているのを確認!
「10.0.0.0/16」
「0.0.0.0/0」
が揃っていれば問題ないです。

EC2インスタンスを作成

AMI

無料利用枠のLinuxのAMIを選択。

インスタンスタイプ

無料利用枠のインスタンスタイプを選択。

インスタンスの設定

真ん中のネットワーク関連の設定にて

項目 選択
ネットワーク 自分が作成したVPC
サブネット VPCに登録済みのサブネット
自動割り当てパブリック IP 有効

下のネットワークインターフェイスにて

プライマリIPは10.0.1.0/16内に作成するので10.0.1.10とした。

ストレージ

デフォルトでいい。

タグ

特になし

セキュリティグループ

セキュリティグループに以下の設定を行う

タイプ プロトコル ポート範囲 ソース
HTTP TCP 80 0.0.0.0/0
SSH TCP 22 0.0.0.0/0

HTTPを追加する。
しかし、サーバー公開するとなった場合、この「0.0.0.0/0」とデフォルトのポート範囲はセキュリティ上まずいので変更は必須すべきかなと思う。
悪い人にアドレスやポート番号の予測をつけられやすくなるため。

キーペア作成

なんでもいいです。ダウンロードしてローカルPCに配置しましょう。

インスタンス作成

これで作成!!

SSH接続

ターミナルにて

ssh -i keyペアファイル名 ec2-user@パブリックDNS or パブリックIP

結果

スクリーンショット 2018-05-14 11.01.25.png

原因

リージョンとアベイラビリティゾーンの設定がよろしくなく、外部IPとして認識してセキュリティグループの設定に乗っ取り弾いていた説。

終わり

次回はnode.js環境の構築をするか。
初心者なのでアドバイスや鉞、ドシドシ応募しています!!

参考

https://qiita.com/shunsuke227ono/items/23dbf4f3bc663a2875f0
https://qiita.com/hit/items/336dfa6d1121a09fb4e5

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2