#初めに
この記事は私がAWSでインターネットとサーバーを構築するまでを簡単にまとめたものとなっています。
メモとして書いていますので詳細な説明が少ないことはご留意ください。
また、この記事はAWS基礎からの基礎からのネットワーク&サーバー構築という本をもとに進めていきますのでより深く細かいところまで知りたいという方は是非読んでみてください。
#アーキテクチャ
本記事はこのようなアーキテクチャになるよう構築していきます。
#手順
・インターネットを構築する
・サーバーを構築する
・Webサーバーソフトのインストール
##インターネットの構築
AWSのVPCを用いて作成。今回は10.0.0.0/16の範囲で作成しました。
この作成したVPCを二つのサブネットに分割します。
(1)サブネットの作成
1.「サブネット」メニューから「サブネットの作成」をクリック
2.「名前タグ」にサブネット名、「IPv4 CIDRブロック」に割り当てるCIDRブロックを入力(ここでは「10.0.1.0/24」と入力)
###インターネットに接続するための回線を引き込む。
このままではサブネットをインターネットに接続することができないので「インターネットゲートウェイ」を用いて可能にします。
インターネットへの接続
1.「インターネットゲートウェイ」からインターネットゲートウェイを作成し先ほど作ったVPC領域をアクションからアタッチする。
2.「ルートテーブル」を作成し、「サブネット」から作成したルートテーブルをパブリックサブネットに割り当てる。
3.「サブネット」のルートテーブルを開き、送信先が「0.0.0.0/0」、ターゲットが「インターネットゲートウェイ」のルートを追加する。
これによってもともと破棄されるよう設定されていた「10.0.0.0/16」以外の宛先のパケットが破棄されなくなり、インターネットにつなげることができます。
##サーバーを構築する
仮想サーバーはAmazon EC2を用いて制作します。
インスタンスの作成
1.リージョンが「東京」であることを確認してインスタンスを作成する。(今回使用したAMIとインスタンスタイプはどちらも無料利用枠を使用しました。)
2.インスタンスの詳細情報を設定する。ここでは以下の三つを操作します。
(a)先ほど作成したVPCとパブリックサブネットを選択します。
(b)自動割当パブリックIPを有効にします。
(c)「ネットワークインターフェース」の「プライマリIP」を「10.0.1.10」とする(今回パブリックサブネットを10.0.1.0/24としているため10.0.1.0~10.0.1.255のいずれでもよい)
3.その他はデフォルトで作成する。
4.インスタンスを起動し、キーペアを作成、ダウンロードを行う。
##Webサーバーのインストール
ここではApacheをインストールしていきます。
AWSのサーバー上で下記コマンドを実行します。
$sudo yum -y install httpd
$sudo systemctl start httpd.service
$sudo systemctl enable httpd.service
これでApacheのインストール、自動的な起動する設定が完了しました。
しかし、先ほど作成したインスタンスの「セキュリティグループ」のデフォルト設定でポート22番しか開いておらずApacheの待ち受けている80番がブロックされて通信できないため設定を変えていきます。
ポートの開放
1.セキュリティグループを開き「インバウンド」からポートの編集を行う。
2.タイプに「カスタムTCPルール」、ポート番号に「80」、ソースに「0.0.0.0/0」を入力し保存する。
ここまででWebブラウザにパブリックIPアドレスを入力することでWebサイトにアクセスできるようになりました。
#最後に
これで最初に説明したアーキテクチャが完成しました。
この後にIPアドレスではなくパブリックDNSを作りそれでWebにアクセスできるようにしたりDBサーバーを作成したりを紹介した本で行っているので気になる方は是非読んでみてください。
また、この後に自分で開発したアプリを公開したい場合はこちらの記事を参考にいていただければできると思います。
自分でアプリを作りAWSでデプロイしたいが何もわからなかった自分として今回のAWSでデプロイする試みはインフラの基礎的な知識(ネットワークとは、サーバーとはなど)から学ぶことができたためとてもためになったと感じています。
しかし、時間が経つと忘れやすいのでちゃんと定着させることが今後の課題です!