3、EC2でインスタンスを作成 + Apacheをインストールする【AWSでWordPressを公開しよう】

こんにちは。まさかずです。

AWSでWordPressサイトを公開する方法についてシリーズで書いています。

今回は第3回目になります。

1回目は初期準備編、2回目はネットワーク構築編を書きました。

シリーズ化していますので、ぜひこちらの記事もご確認ください。

それでは本編に進みます。

3、EC2でインスタンスを作成 + Apacheをインストールする【AWSでWordPressを公開しよう】

AWSでWordPressサイトを公開する方法の第3回目は「EC2でインスタンスを作成 + Apacheをインストールする」内容になります。

一般的にWebサーバと呼ばれるものを構築し、実際にサイトが見られるようにします。

EC2(Elastic Compute Cloud)という仮想サーバを用いてWebサイトが見られるように環境を構築します。

具体的な内容は下記のとおりです。

  • EC2のインスタンス作成
  • SSHでWebサーバにログイン
  • Apacheのインストール
  • Webサイトの表示

次にEC2について簡単に説明します。

EC2とは

EC2(Amazon Elastic Compute Cloud)とはクラウド上で仮想のサーバを作成できるAWSのサービスです。

昔はサーバ設置をする場合、本体を準備してネットワークやソフトの設定を行わないといけませんでした。

EC2ではその手間を省き、サーバをクラウドで素早く・手軽に使えるようにしました。

EC2のメリット

EC2のメリットは下記のような点が挙げられます。

  • 構築する時間が短縮できる
  • サーバの規模を柔軟に変更できる
  • 従量課金制なので低コストで導入可能
  • 冗長化(異常時に備えた予備機器の運用)が簡単

EC2は導入のしやすさ、柔軟性もあって世界中で広がっています。

EC2に関してはこちらの記事がわかりやすく説明されていますので、ぜひ目を通しておいてください。

EC2インスタンスの作成

それではここから実際に手を動かしていきましょう。

ヘッダーの「サービス」から検索窓に「ec2」と入力し、「EC2」に移動します。

EC2のダッシュボードに移動しますので、左側中央の「インスタンス」をクリックします。

次に「インスタンスの作成」をクリックします。

AMIの選択

インスタンス作成時に一番初めにAMI(Amazon Machine Image)と呼ばれるテンプレートを選びます。

AMIにはOSやアプリケーションがパックされていて、それをコピー(インスタンス化)して使います。

今回はAmazon が提供する「Amazon Linux 2」を使用します。

Amazon Linux 2 はLinuxベースのOSでコマンド等は通常のLinuxとほとんど変わりません。

「Amazon Linux 2 AMI」「選択」を押して遷移します。

インスタンスタイプの選択

サービスの規模や使う用途に応じて、選ぶ種類のサーバが変わってきます。

ですのでEC2でも様々なサーバの種類「インスタンスタイプ」が用意されています。

インスタンスタイプについてはこちらを参考にしてみてください。

今回は無料枠で利用できる「t2.micro」を選択します。

次に「インスタンスの詳細の設定」に進みます。

インスタンスの詳細の設定

次に選択したインスタンスの詳細内容について設定します。

詳細内容で変更する点は下記になります。

インスタンスの詳細の設定

※変更点のみ抜粋

インスタンス数:1
ネットワーク:作成したVPC(今回は「wordpress-vpc」としました)
サブネット作成したパブリックのサブネット(今回は「wordpress-subnet-public-1a」としました)
自動割り当てパブリックIP:有効
キャパシティーの予約:なし
IAMロール:なし

ネットワークインターフェースのプライマリIP
任意のサブネットの範囲内のIPアドレス(今回は「192.168.10.1」としました)

今回示した内容以外はデフォルト状態のままにして「次のステップ:ストレージの追加」をクリックします。

ストレージの追加

つぎに「ストレージの追加」となりますが、サーバの容量を増やす必要はありませんので、そのまま「次のステップ:タグの追加」をクリックします。

タグの追加

次に「タグの追加」です。

タグはEC2が複数あるときに識別をしやすくするためにつけるものです。

タグの追加

キー:Name
値:wordpress-web-server

この様に設定して「次のステップ:セキュリティグループの設定」に進みます。

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

次はセキュリティグループ(ファイアウォール)の設定です。

個々では通信できるIPアドレスやプロトコルのタイプ(HTTP、SSHなど)を設定することができます。

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

セキュリティグループの割り当て:新しいセキュリティグループを作成する
セキュリティグループ名:任意の値(今回は「wordpress-ec2-sg」としました)
説明:任意の説明内容(今回は「wordpress-ec2-sg」としました)

ルールの追加で「HTTP」と「HTTPS」を追加します。それ以外はデフォルトのままにしておきます。

この内容で「確認と作成」に進みます。

最期に確認画面が出てきます。

内容を確認して「起動」を押します。

次にこの画面の続きのままSSH接続の流れに進みます。

SSHでログインする

サーバと接続をする場合、SSHと呼ばれる暗号方式の通信プロトコルでログインをします。

SSHを用いることでセキュリティレベルが上がり、より安全に通信ができます。

接続の際に公開鍵暗号方式と呼ばれる、暗号化方式で通信をします。

公開鍵暗号方式については下記の記事がわかりやすいです。

公開鍵暗号方式で使用する秘密鍵はEC2作成時に生成されます。

下記の内容で新しい秘密鍵を作成します。

新しいキーペアの作成

新しいキーペアの作成を選択
キーペア名:任意の名前(今回は「wordpress-ssh-key」としました)

これで「wordpress-ssh-key.pen」の秘密鍵をダウンロードします。

この秘密鍵は外部にもれないよう、厳重に管理しましょう。

最期に「インスタンスの作成」を押してインスタンスが起動します。

秘密鍵の権限変更

秘密鍵は外部からアクセスできないように権限を変更します。

今回はMacの場合でターミナル上での作業を記載します。

Windowsの場合は、下記の記事を参考にしてください。

Macの場合は下記の条件で秘密鍵の権限を変更します。

権限変更の条件
  • wordpress-ssh-key.pemはダウンロードフォルダあるとします。
  • Users/ユーザ名/.ssh フォルダに秘密鍵を格納します。

ターミナルを起動して下記のように作業します。

// ユーザディレクトリから作業開始する。現在のディレクトリの確認
$ pwd
/Users/ユーザ名

// sshキーを置くディレクトリの作成
$ mkdir .ssh

// 秘密鍵をダウンロードディレクトリから.sshディレクトリへ移動する
$ mv Downloads/wordpress-ssh-key.pem .ssh

// .sshディレクトリに移動
$ cd .ssh

// 権限の変更(読み取り専用にする)
$ chmod 400 wordpress-ssh-key.pem

// 権限の確認
$ ls -l
-r--------@ 1 ユーザ名  ユーザ名  XXXX  X  X XX:XX wordpress-ssh-key.pem

SSHでのログイン

SSHでログインする場合、下記のコマンドでログインします。

$ ssh -i ~/.ssh/wordpress-ssh-key.pem ec2-user@パブリック IP
sshコマンドの説明

-iオプション:秘密鍵ファイルを指定します。
~/.ssh/wordpress-ssh-key.pem:秘密鍵の場所を指定します。
ec2-user:EC2へログインする際のデフォルトユーザです。
パブリック IP:EC2に割り当てられたIPアドレスです。

パブリックIPアドレスは、EC2のインスタンス画面から、該当するインスタンスを選択すると調べることができます。

今回は「54.250.179.50」となっていました。

なお、現段階ではインスタンスを再起動するとIPアドレスが変更になるので注意が必要です。

上記内容も踏まえて今回ログインする場合は、以下の内容となります。

$ ssh -i ~/.ssh/wordpress-ssh-key.pem ec2-user@54.250.179.50

ログインが成功すると「yes/no」で質問をされますので「yes」を入力します。

下記のように表示されるとログイン成功です。

     __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
No packages needed for security; 4 packages available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-192-168-10-10 ~]$

Apacheのインストール

ログイン成功後はWebサーバのソフトである「Apache」をインストールします。

Amazon linux2 の更新

インストールする前に、Amazon Linux2を最新版に更新します。

更新にあたり、ユーザを管理ユーザ(rootユーザ)に変更します。

$ sudo su -
[root@ip-192-168-10-10 ~]#

管理ユーザになるとコマンドの前が「$」から「#」に変更となります。

次にAmazon linux2 を更新します。

# yum update

確認が出ますので「y」を押して更新して自動で更新されます。

Apacheのインストール

まずApacheをインストールします。

# yum -y install httpd

インストール後にApacheの起動と確認をします。

# systemctl start httpd 
# systemctl status httpd

statusのときに「active (running)」となっていれば、実行完了です。

次にサーバ再起動時の自動実行設定を行います。

# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
# systemctl is-enabled httpd
enabled

これでApacheのインストールが完了です。

Webサイトの表示確認

最後にWebサーバが起動しているかブラウザで確認をしてみましょう。

「http://パブリックIP」で確認ができます。

今回の場合は、 http://54.250.179.50 となります。

下記のような画面が表示されれば、Webサーバが問題なく起動していることになります。

まとめ

今回は「3、Webサーバ構築編」をお届けしました。

  • EC2のインスタンス作成
  • SSHでWebサーバにログイン
  • Apacheのインストール
  • Webサイトの表示

実際にブラウザで画面を確認できたので、動いている様子が実感できたと思います。

動くのをみると、楽しくなってきますよ。

次は「4 、ドメイン設定編」をお送りします。

それでは!