AWSでWEBサーバーをたてよう(1)
AWS(アマゾンウェブサービス)でWEBサービスを構築する手順の紹介です。同じ手順をPDFファイルにしました、オフラインで手順を見たい人はそちらをどーぞ、本記事の一番最後にあります。
概要
今回、作るものの構成図です。
※補足:構成図について
・AWSで構成図を描くときは、AWS提供のアイコンを使用します。
・AWS提供のアイコンは、2種類あります。
・構成図では、旧アイコン、新アイコンと呼称しています。
・構成図は、新旧アイコンで2通り作図しています。
2.1 はじめに
AWSコンソールに入り、東京リージョンを選択します。
セキュリティを考慮すると、Rootアカウントではなく、IAMユーザーの利用を推奨します。では、早速つくっていきます。
2.2 VPCの作成
2.2.1 AWS管理コンソールでVPC開く
AWS管理コンソールでVPC開きます。検索キー `vpc` で見つけられます。
2.2.2 VPCウィザードを起動
`VPCウィザード`ボタンをクリックします。
2.2.3.VPC設定の選択
`1個のパブリックサブネットを持つVPC`を選択し、`選択`ボタンをクリックします
2.2.4.パラメーターの設定
図のようにパラメーターを設定し、`VPCの作成`をクリックします
2.2.5.VPC作成を確認する
エラーメッセージなくVPC作成のメッセージが表示されることを確認します。
2.2.6.作成したことを確認
手順2.2.5でここまで作成しました。
2.3.EC2インスタンスを作る
2.3.1.EC2を開く
検索キー`ec2`で、ヒットした結果からEC2を選択します
2.3.2.インスタンスを作成する
`インスタンスの作成`ボタンをクリックします
2.3.3.OSを選択する
OSを選択します。(本書では、Linuxを選択しました)
2.3.4.スペックを選択する
インスタンスタイプを選択し、画面上部の`インスタンスの設定`のリンクをクリックします。インスタンスタイプによって、CPUやメモリなどのスペックが異なります。高スペックのインスタンスを選択すると料金が高くなので注意です。本書では、安価なt2.micro(ティーツーマイクロ)を選択します。
2.3.5.インスタンスを設定します。
インスタンスをどのネットワーク上に作成するか、などを設定します。手順2.2.で作成したVPCとサブネットを選択します。`自動割り当てパブリックIP`は、`有効`に設定し、グローバルIPを持つEC2インスタンスにします。
2.3.6.ストレージ(記憶域)の設定
今回はデフォルト設定をそのまま使います。`タグの追加`のリンクをクリックします。
2.3.7.タグの設定
タグとは、目印のこと。本書では何も設定しません。`セキュリティグループの確認`のリンクをクリックします。
2.3.8.セキュリティグループの設定
セキュリティグループを設定します。ここで新規に作成することもできます。設定するセキュリティグループは図のように、SSH接続のポートを許可します。セキュリティを高めるなら、ソース(アクセス元IPアドレス)を`マイIP`にします。
セキュリティグループの設定例
【赤枠】OSにサインインするためのSSH接続と
サイトを開くためのHTTP(80番)ポートのアクセスを許可
【青枠】すべてのトラフィックを許可
(SSHとかHTTPとか面倒な場合に使用)
【黄枠】同じセキュリティグループの通信はすべてのトラフィックを許可
2.3.9.設定を確認
これまでの設定を確認し問題なければ、`起動`ボタンをクリックします。
2.3.10.キーペアの設定
キーペアを設定します。`新しいキーペアの選択`から、新規作成することもできます。
2.3.11.インスタンスの作成
『選択したプライベートキー・・・・』のチェックボックスにチェックを入れ、`インスタンスの作成`ボタンをクリックします。
2.3.12.ステータス画面
作成中のメッセージが作成されることを確認します。
2.3.13.EC2インスタンス作成完了
AWSコンソールの`EC2`を開き、作成したインスタンスの状態を確認します図のように、『2/2のチェックに合格…』と表示されれば作成完了です。
2.4.EC2インスタンス上のOSに接続(サインイン)する
2.4.1.接続方法を表示
接続したいインスタンスを選択し`接続`ボタンをクリックします。
2.4.2.接続方法(コマンド)をコピーする
図の赤枠『ssh -i "xxxxx" xxxxx.ap-northeast-1.compute.amazonaws.com』のコマンドをコピーして、保管するためにメモ帳などに貼り付けます
2.4.3.ダウンロードしたpemファイル確認
EC2インスタンス作成時に設定したpemファイルがあることを確認します。
2.4.4.SSH接続
gitbashを起動して、pemファイルのあるパスをカレントディレクトリにします。手順2.4.2でコピーしたコマンド『ssh -i "xxxxx" xxxxx.ap-northeast-1.compute.amazonaws.com』を実行します
これで、EC2上のOS(Linux)にサインインができました。
2.5.WEBサーバー構築
2.5.1.バージョン確認
OSバージョンを確認します
[ec2-user@ip-192-168-1-204 ~]$ cat /etc/*release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Amazon Linux release 2 (Karoo)
[ec2-user@ip-192-168-1-204 ~]$ cat /etc/system-release
Amazon Linux release 2 (Karoo)
2.5.2.Apacheインストール準備
Apacheのインストールに必要となるものを用意します。
# pip インストール
sudo easy_install pip
# AWSCLIアップデート
sudo pip install -U awscli
# Javaインストール
sudo yum install -y java-1.8.0-openjdk
sudo yum install -y java-1.8.0-openjdk-devel
# Javaバージョン確認
$ java -version
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
2.5.3.Apacheインストール
Apacheをインストールします。
# Apacheインストール
sudo yum install -y httpd
# Apache確認
$ httpd -v
Server version: Apache/2.4.39 ()
Server built: Apr 4 2019 18:09:28
# Apache起動確認
systemctl status httpd.service
※補足※ Apacheの基本コマンド
# Apache起動
sudo systemctl start httpd.service
# Apache停止
sudo systemctl stop httpd.service
# 状態の確認
$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2019-07-28 12:40:18 UTC; 8s ago
Docs: man:httpd.service(8)
Main PID: 3325 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─3325 /usr/sbin/httpd -DFOREGROUND
├─3326 /usr/sbin/httpd -DFOREGROUND
├─3327 /usr/sbin/httpd -DFOREGROUND
├─3328 /usr/sbin/httpd -DFOREGROUND
├─3329 /usr/sbin/httpd -DFOREGROUND
└─3330 /usr/sbin/httpd -DFOREGROUND
Jul 28 12:40:18 ip-192-168-1-204.ap-northeast-1.compute.internal systemd[1]: Starting The Apache HTTP Server...
Jul 28 12:40:18 ip-192-168-1-204.ap-northeast-1.compute.internal systemd[1]: Started The Apache HTTP Server.
これでWEBサーバーの構築まで完了しました。
2.5.4.WEBサイトのパブリックDNS名
作成したWEBサイトにアクセスします。※Apacheは起動した状態にしてください
WEBサイトにアクセスするため、作成したWEBサーバーのグローバルな名前(パブリックDNS名)を確認します。WEBサイトにアクセスするため、作成したWEBサーバーのグローバルな名前(パブリックDNS名)を確認します。パブリックDNS名は、図の赤枠です
2.5.5.WEBサイトにアクセス
手順2.5.4のパブリックDNS名を使い、ブラウザで以下のURLを開きます。
http://{パブリックDNS名}/
# 例
http://xxxx.ap-northeast-1.compute.amazonaws.com/
このように、Test Pageが開くと成功です。
これで、構築したWEBサーバーのサイトにアクセスすることができました。
2.6.後片付け
AWSの時間課金で利用料が発生するので、作成したAWSリソースを削除します。本書では、EC2とEIPの削除方法を紹介します。VPCなど課金が発生しないサービスもありますが、どれに課金が発生するかわからない場合は、他のリソースも削除することをオススメします。
2.6.1.EC2インスタンスの削除
AWSコンソールでEC2の画面を開き、削除したインスタンスを選択し、『アクション>インスタンスの状態>終了』 で削除します。
※注意※ `停止`はOSのシャットダウンであり、EC2インスタンスは削除しません。
2.6.2.EIP確認
今回紹介した手順であれば、EC2を削除したときにEIPも削除されるので、EIPは残らないはずですが、念のためEIPを確認します。
EIPとはパブリックIPアドレスです。未使用のEIPは課金対象です。残す理由がないなら、未使用のEIPは解放した方が良いと思います。
図は、EIPが何も登録されていない状態です。
以上で、AWSでWEBサーバーを作ろうは、終了です。
手順書PDF版について
同じ手順のPDFファイルです。有料ですが、オフラインで手順が見たい人にいいと思います。
PDFファイルの中身
手順書PDF版(ダウンロード)
ここから先は
¥ 500
こんな弱小ブログでもサポートしてくれる人がいることに感謝です。