AWS EC2でWordPressサイトを構築する方法と料金形態を徹底解説!



AWS EC2でWordPressサイトを構築する方法と料金形態を徹底解説!

Webサービスを構築・運営する上で欠かせないサーバー環境。レンタルサーバーや VPS 、クラウド系とある中で、多くの企業がクラウド系の AWS を選択。「AWS?」「AWSってそんなにいいの?」と思われている方も少なくないでしょう。

そこで今回は「AWSとは」から「AWSを試す」まで、AWS知識ゼロの方でも基礎マスターできるように情報をまとめてみました。 「AWSスキル」は、IT企業への就職や転職の際にも役立つと思いますので、一応の知識を習得しておきましょう。

目次
  1. AWSとは
  2. AWS EC2を使うメリット
  3. VPSとEC2の違い
  4. AWS EC2の料金
  5. AWS EC2でWordPressサイトを構築する方法
  6. EC2にWordPressを設定する様子
  7. AWSにEC2をセット
  8. WordPressを表示、確認
  9. phpMyAdminへのアクセス
  10. 他サーバーからAWS EC2へ移行する方法
  11. 移行準備
  12. 移行作業
  13. まとめ

AWSとは

AWS(Amazon Web Services)は、Amazon の子会社 Amazon WEB Services 社が手掛ける クラウド型のプラットフォーム。 2002年、Amazon のショッピングサイトのインフラ構築の開発を進める中で、サーバーを自社だけで使用するのではなく、他のユーザーにもサーバー機能を提供し、 新しいビジネスモデルとなるよう設計されたものが AWS の原型となります。

2000年初期のサーバーといえば、レンタルサーバーもしくはサーバー自社開発が主流で、大手においては新規サービス立ち上げ時のサーバー開発がコスト的にも時間的にもネックに。その点 AWS を用いれば、物理的サーバー機器がいらなく、複雑なネットワーク処理も不要に。そうした時代背景と顧客ニーズがベストマッチし、 2018年には 約 25兆円* の売上高を記録し、現在も躍進中。

【AWSの主な特徴】

  • 物理的サーバー機器が不要
  • 5分程度でサーバーを利用できるようになる
  • 必要に応じてサーバースペック、規模を変更可能(スケーラブル)
  • 一時的にアクセス負荷がかかっても、サイトダウンしないシステム設計がある
  • DDoS攻撃への防御機能がある
  • 機械学習機能やブロックチェーン機能など最新のテクノロジーも利用可能
  • 課金は時間単位から
  • スペックプランが豊富で、メモリ0.5GB CPU1コア から メモリ3409GB CPU128コア というモンスター級まで

クラウドプラットフォーム市場のシェアについては、 AWS が35%*、 Microsoft Azure が 15%、 Google Cloud と IBM が約 7% ずつ、と AWS の一人勝ち状態。これほど AWS のシェアが高い理由としては、高い実績が挙げられるでしょう。

【AWSの導入実績】

  • CIA(アメリカ政府の情報局)
  • ミズーリ州カンザスシティ
  • Amazon.com
  • パナソニック株式会社
  • ダイキン工業株式会社
  • ヤフー社
  • コードキャンプ社 etc

【サービススタート時期】

  • AWS 2006年
  • Microsoft Azure 2010年
  • Google Cloud Platform 2010年

こうした背景から AWS は現在社会的インフラとして普及。そして企業の求人票項目にも AWS が記載されていたり、資格があったりとしますので、 個人としても AWS のスキル・知識が財産になってきますね。

また現在 AWS社は、年間約 5TテラWh* (日本年間 約 1000TWh)という膨大な電力を消費しており、今後これらの電力を 100% 再生可能エネルギーで賄うと約束しています。2018年時点では 約 50% を再生可能エネルギーということですが、次のビジネスモデルも視野に入れているということであればスゴイ事ですよね。

AWS EC2を使うメリット

まずAWS の EC2 について少しご紹介。 EC2Amazon Elastic Compute Cloud は、 181 あるAWS 商品の中の一つで、日本語に訳すと「クラウド型の弾力性のあるコンピュータ」。弾力性、これはコンピュータが柔らかいというわけではなく、 Webサービスなどにおいて一時的にアクセスが集中した際も自動的にサーバー機能を拡大できるという意味。自動的に拡大、このあたりがクラウド型サーバーの利点でしょう。

そして私達はこの EC2 を使うことで、世界 21箇所、66 ある AWS のサーバーマシンを利用して、簡単にスケーラブルなサーバー環境を手に入れることができます。

こうした「弾力性のあるクラウド・コンピューター」は Amazon 以外の Microsoft Azure や Google Cloud からも提供中。他社も EC2 同様の商品を展開する中、あえて EC2 を選択するメリットを確認しておきます。

まずは EC2 と Microsoft Azure、 Google Cloud を比較しておきましょう。

【EC2、他社との比較表】

EC2
(AWS)
Linux Virtual Machines
(Azure)
Google Compute Engine
(Google)
サーバー機能の拡縮
料金体系 従量課金 従量課金 従量課金
無料期間 1年間 1年間 1年間 or 定量
無料中に使える製品
(全製品数)
60種
(181)

37種
(241)

178
(178)
価格 $0.0152USD/時間
(1CPU、1GB)
¥1.5232円/時間
(1CPU、1GB)
$0.0610USD/時間
(1CPU、3.75GB)

料金、無料お試し、他サービスとの合わせ技を考えた際、「AWS の EC2 だから特別すごい!」 という点は少ない様子。むしろ実際に使ってみると分かるのですが、EC2の操作画面はややマニアック。Azure や Google の方が使いやすい画面と思います。

そうした中あえて EC2 を選択するメリットは、以下の点でしょう。

  • 安定感
  • 豊富なプラグイン
  • 豊富なプログラミング情報
  • 就職・転職に役立つ

つい先日 2019年5月2日、 Microsoft Azure は 2時間ほど世界規模で機能停止に*。 Google Cloudにおいても 2019年 6月 2日、大規模な障害が発生*。一方 AWS は、2017年2月以降目立った障害は発生していない模様。仮想サーバー EC2 の元となる AWS は、比較的 ”安定している” と考えられますね。

プラグインやプログラミング情報については、GitHub や stackoverflow.com で 「AWS」や「EC2」 と検索してみると、他社サービスより情報量が多いことが確認できます。特に独学エンジニアにとって、こうしたソリューション・ボリュームは重要なファクターでしょう。

そして最後に「スキルになる」「就職・転職に役立つ」というメリット。ご承知のように AWS はクラウド・サーバー市場でトップシェア、そのため既存 Web サービスの多くに AWS が使用されています。必然的に AWS や AWSの代表格 EC2 の仕事量も多くなり、求人票に「AWS」「EC2」というキーワードもチラホラ。エンジニア以外の方でも Web や モバイルApp に携わる方なら 「AWS」 と 「EC2」 必須かもしれませんね。ちなみに AWS、資格制度が運用されていますが、これは Microsoft Azure、 Google Cloud も独自の資格制度が運用中。

【各サービス毎の求人件数】

AWS Azure Google Cloud
求人件数 14,142 4,638 713

2019.06.14 jp.indeed.com

VPSとEC2の違い

image

AWS や EC2 の説明文を見ていると、「ん、VPS と EC2、同じでは?」と思われる方も。私も最初は違いが分かりませんでした。「仮想環境のサーバー」「拡張性」という言葉と機能がラップしていて、EC2 と VPS 混同してしまいます。

まず EC2 と VPS の定義を再確認してみましょう。 VPS は Virtual Private Server で、データセンター内のメインホストのコンピューティング・リソースを共有する形。ユーザーは一か所のデータセンターにアクセスし、データセンター間を横断することはムリ。

対して EC2は、VPC(Virtual Private Cloud)形式で、イメージ的にはデータセンターをネットワークでつないだもの。ユーザーは、一か所のデータセンターにアクセスしながら、必要に応じて他のデータセンターのパワーを使うことが可能。この結果、Webサービスなどでは一時的にアクセス集中した際もトラフィックを裁け、「サイトにアクセスできない」という事態を回避できます。そしてクラウド化されたコンピューティング・リソースを利用することから「毎月」ではなく「毎時」単位でサービスを利用することが可能。常時稼働しないような Webサービスなどには適した環境といえそうです。

ちなみに国内有数の VPS プロバイダー「ConoHa」から提供さている最大のスペックは、メモリ 64GB、CPU 24コア。対して EC2 は、メモリ 3409GB、CPU 128コアというお化けサーバーがお金さえあれば利用できます。

AWS EC2の料金

image

「就職や転職にも EC2 スキル使えそうなのではじめてみようかな?」と思った時、無料枠があるとはいうものの料金気になりますよね。先ほど EC2 メリット紹介でも料金少しご紹介させて頂きましたが、もう少し詳しくご紹介していきます。

まず EC2 を必要最低限の環境で使った場合の費用項目は以下の通り。

  • インスタンス代(仮想サーバー代)
  • データ転送代

インスタンス代は、使用するサーバースペックによって異なり、無料期間指定のスペック t2.micro (1CPU、メモリ 1GB)の場合は 0.0152USD/時間(東京リージョン)。毎日サーバーを稼働した場合は、月 11USD(約1200円)。ConoHa VPS 同スペックが 972円なのでビックリするほど高い、というわけではないようですね。

次はデータ転送代で、イメージ的にはパケット代のようなもの。EC2 の場合、サーバーへのデータ受信にはコストがかからず、データ送信する際にコストが発生。「データ送信」というとイメージしにくいですが、要は公開中の Web サイトにアクセスがあった場合に、データが送信。月間 1GB まではデータ送信費用は 0 * とありますが、Webサイトを公開していない段階では予想つきにくいですよね。 感覚的には月間 10,000ビューぐらいの WordPress サイトであれば問題ないと思います(筆者経験値)。

ちなみにこのデータ転送代、VPSは 0円、レンタルサーバーも 基本 0円です。ただし、一定以上のアクセス集中が起きるとサイトにアクセスできないなどの障害が発生するデメリットがありますね。

あとは t2.micro の場合であればハードディスクの容量が 30GB しかないので、必要に応じてストレージが必要に。こうしてストレージやセキュリティなど機能を足していくと料金が加算されていきます。

EC2価格表AWS計算機

AWS EC2でWordPressサイトを構築する方法

ここまでは AWS や EC2 についての表面的な説明をしてきました。実際に使ってみるとより AWS や EC2 のことが理解できますので、試しに EC2に WordPress をセットしてみます。 レンタルサーバーや VPS でも WordPress のセットは比較的簡単ですが、EC2 についても同じです。 EC2 に WordPress をセットする様子、以下の動画とチュートリアルをご参考下さい。

EC2にWordPressを設定する様子

【動画内の内容】

  • WordPress用インスタンス(仮想マシン)の始動
  • WordPress管理画面
  • phpMyAdminにログイン(Windows、Mac、Linux)

AWSの公式チュートリアル

AWSにEC2をセット

image まずは AWS の公式ページにアクセスして、管理画面(コンソール)にログイン。

AWSのアカウントがまだの方 AWS のアカウントがまだの方も、ログインページから新規アカウント作成することができます。 アカウントを作成する段階では、お金や身分証明等特別必要なものはありません。必要事項を入力して、すぐに AWS の管理画面にログインできるようになると思います。 アカウント情報を入力する中で、料金プランに関する選択ページが表示されます。下記のように無料プランを選択しておきましょう。

image AWS にログインできたら、画面上部の「サービス」を左クリックし、左上にある EC2 を選択。

image 「インスタンスの作成」を選択。

image ここでこれから利用する仮想空間のパソコンの設定を行っていきます。今回はワードプレスの環境がプレインストールされた仮想マシンを利用したいと思いますので、画面左の 「AWS Marketplace」 をクリックし、キーワード検索欄に「 WordPress」 と入力。 いくつか WordPress 搭載のマシンが紹介されますが、今回は一番上の Bitnami 提供のものを利用してみます。

image この環境の仮想マシンを利用する場合の価格表が表示されます。一番下の 「Continue」 ボタンを押して、次の画面に移動。

image 今回は無料プランを利用しますので、上から2番目の 「t2.micro」 を選択。「確認と作成」で すぐにマシンを起動できますが、初めての時は一応の設定内容を確認しておきましょう。「次の手順」をクリック。

image こちらは仮想マシンのネットワークに関する設定。変更なしで次の手順をクリック。

image こちらは仮想マシンの保存領域に関する設定。無料プランのデフォルトの状態でも 30 GB ストレージ利用できますので、そのまま次の手順をクリック。

image こちらは仮想マシンの管理に関するタグ設定。そのまま次の手順をクリック。

image SSL化通信などのポート情報。そのまま「確認と作成」をクリック。

image セキュリティに関する 注意が表示されますが、今回はそのまま起動。

image 今作成した AWS の仮想マシンに自分のパソコンからアクセスしようと思うと専用のキーが必要となります。 上図 1 で「新しいキーペア作成」、 2で任意の名称を入力、そして「キーペアのダウンロード」をクリック。

image ダウンロードフォルダに専用のキー 〇〇.pem がダウンロードできたら、AWS 管理画面で 「インスタンスの作成」。

image 「インスタンスは現在作成中です」と表示されている横の i-0369bbfbe・・・・・・ をクリック。

image するとインスタンスの管理画面に移動し、4、5分待つと「ステータスが初期化しています」から「チェックイン合格しました」に変わり、仮想マシン にアクセスできるようになります。

WordPressを表示、確認

image インスタンス管理画面右の方にあるパブリック IP の番号をコピーします。 そしてブラウザに貼り付けると、 WordPress のトップ画面が表示。

image WordPress の管理画面については、ログインのパスワードをチェックする必要があります。 先ほど作成したインスタンスの項目上で右クリックし、「インスタンスの設定」 → 「システムログの取得」 を選択。

【WordPress管理画面の URL】

IPアドレス/wp-admin

image 表示されたシステムログを下の方にスクロールし、パスワードが書かれている項目を確認。そしてそのパスワードを WordPress 管理画面に貼り付け。 なおユーザー名は、 user になります。

image WordPress 管理画面にログインできました。これでプラグインをインストールしたり、新規記事を作成することができますね。

image 後は念のため、データベースのページにアクセスして、内容をチェックしておきましょう。

【データベースのページ】

IPアドレス/phpmyadmin

しかし結果は❌。データベースの管理画面が表示されません。

phpMyAdmin のページにアクセスしようと思うと、OS毎に適切な設定を行う必要があります。 AWS に WordPress を提供している Bitnami によると、

Windows の場合は、 PuTTY と PuTTYgen を使って phpMyAdmin に接続。Mac と Linux は、ターミナルの画面からコマンドを入力して phpMyAdmin に接続していきます。

phpMyAdmin: WordPressで書いた記事や設定したレイアウト、プラグインなどの WordPress 全般のデータが保存されているデータベースの管理ソフト。レンタルサーバーなどでは比較的分かりやすい URL(ドメイン/log/phpmyadminなど)。場合によってはハッカーの標的に。

phpMyAdminへのアクセス

image

EC2のインスタンス(仮想マシン)を Bitnamiベースで起動した際、 phpMyAdminへのアクセス方法は OS によって違ってきます。

WindowsでEC2のWordPressデータベース管理画面にアクセス

Windows の場合、EC2で設定した WordPress のデータベース phpMyAdmin にアクセスするためには、 PuTTY と PuTTYgen というソフトウェアが必要となってきます。 私の場合は 64ビットの Windows 10のため、 putty.exe 64 bit をダウンロード&インストール。 PuTTYダウンロードページ

PuTTYgen のダウンロードも PuTTY と同じページで行い、ページ下部にある puttygen.exe の 64 bit をダウンロード&インストール。

PuTTY と PuTTYgen のインストールが完了したら、まずは PuTTYgen から使っていきます。PuTTYgen を起動し、画面下の Parameters の設定を確認し、上図と同じようになっていれば Loadボタンをクリック。

EC2 の仮想マシン(インスタンス)作成時にダウンロードした専用キーを読み込みます。この時ファイル名の右で設定するファイル種を All Files にセットして検索しましょう。

キーの設定に関する注意書きが表示されます、そのまま OK ボタンをクリック。

pem ファイルの読み込みが正常に完了すると、画面上部に暗号が表示されます。次は Save private key ボタンをクリック。

「パスワードの設定なしでキーを生成してもいいですか?」 と注意書きが表示されますが、そのまま「はい」をクリック。

キーのファイル名を設定し保存。これで PuTTY で使用する ppk 形式の暗号ファイルが作成できました。

次は PuTTY の設定を行って、ローカル環境で phpMyAdmin の設定画面に接続できるよう手続きしていきます。 まずは上図のように 「Host Name」 と 「Saved Sessions」 の欄に EC2 のインスタンス(仮想マシン)の IPアドレスを入力。そして SAVE。

次は画面左 Category 欄にある SSH 内の Auth を左クリック。そして 右側したの Browse ボタンをクリックし、 PuTTYgen で作成した ppk ファイルを設定。

次は同じ SSH 内にある Tunnels を選択。「Source port」 と 「Destination」 を上図のように入力し、 Addボタン。

Connection 下の Data を選択し、 「Auto-login username」欄に bitnami と入力。

再び最初の Session に戻って、 Save し、 Open。

セキュリティに関する注意が表示されますが、そのまま「はい」をクリック。

上図のように画面が切り替わると、自分のパソコンと AWS の EC2 で作成したインスタンス(仮想マシン)にアクセスできたことが確認できます。

試しに Windows ではできないような ls や free などのコマンドを入力して、コンピューターの仕様を確認してみましょう。

127.0.0.1:8888/phpmyadmin にアクセスするとログイン画面が表示されます。ユーザー名は root、 パスワードは WordPress 管理画面のパスワードと同じなのになります。

WordPress のデータベース画面に接続できました。これでデータベースをインポートしたり出力したり操作することができますね。

Mac or Linux でEC2のWordPressデータベース管理画面にアクセス
Mac と Linux の場合、 ターミナルから AWS のインスタンスに接続することが可能です。 どちらも同じコマンドで、インスタンス(仮想マシン)にアクセスしたり phpMyAdmin にアクセスしたりすることができます。

Mac もしくは Linux のパソコンから EC2 のインスタンスに接続しようと思うとターミナルを使用。 まずは接続したいインスタンス(仮想マシン)の項目を左クリックして、そして接続をクリック。

するとインスタンスへの接続方法が紹介されますので、例として書かれているコードをコピーします。

ターミナルを起動して、インスタンス作成時にダウンロードしたキーファイルがあるディレクトリで、先ほどコピーしたコードを貼り付け。

キーファイルの権限設定(パーミッション)が正しくないとエラーが出て、インスタンスに接続できません。その際は、下記コードを入力。 chmod 400 〇〇.pem そして再びインスタンスへの接続コードを入力すると、 Bitnami と表示されて、インスタンスのファイル操作を行うことができるようになります。

phpMyAdmin への接続については、 Bitnami のチュートリアルに書かれているコードを一行実行するのみ。 Windows のように PuTTY などのソフトをインストールする必要はありません。

【phpMyAdminに接続するためのコマンド】

ssh -N -L 8888:127.0.0.1:80 -i 〇〇.pem bitnami@インスタンスのIPアドレス
例/ ssh -N -L 8888:127.0.0.1:80 -i myEc2.pem bitnami@52.23.208.234

ターミナルを起動して、インスタンス(仮想マシン)作成時にダウンロードしたキーファイル(〇〇.pem)があるディレクトリで、上記コマンドを実行。 そしてブラウザで 127.0.0.1:8888/phpmyadmin にアクセスするとログイン画面が表示されます。ユーザー名は root、 パスワードは WordPress の管理画面ログインパスワードと同じです。

ログインに成功すると、データベースの管理画面にアクセス完了。

【phpMyAdminの設定ファイルを編集してアクセスする場合】

「EC2 phpmyadmin 接続」などで検索すると、phpMyAdminの設定ファイルを編集して、URL の制限を外す記事も見かけます。URLのアクセス制限を 127.0.0.1 から ALL にすると、ドメイン名/phpmyadmin で phpMyAdmin のログインページが開きます。これはセキュリティ的にあまり良ろしくなく、下手をすれば他人がログインして、データベース内の情報を操作する可能性があります。つまりハッキングリスクがある、ということです。

その点、Bitnamiデフォルト設定の 127.0.0.1:8888 からしか phpMyAdmin にアクセスできないようにしておけば、接続キーをもって、直克 接続モードに設定しているパソコンからでしか phpMyAdmin のログイン画面にアクセスできません。セキュリティ的に安心して運用できるデータベース・モデルと思います。

他サーバーからAWS EC2へ移行する方法

image 今回はレンタルサーバーにある WordPress のデータ(画像右)を、 AWS の EC2(画像左) に移行してみたいと思います。

移行準備

image

  • 移行元(画像右)/プラグイン「All-in-One WP Migration」をセット
  • 移行先(画像左)/ WordPressの動くインスタンス(仮想マシン)の準備&プラグイン「All-in-One WP Migration」

WordPress の移行作業というとデータベースの引っ越し作業が一般的と思いますが、プラグインの「All-in-One WP Migration」を使うと簡単で、便利。 今回はプラグインの「All-in-One WP Migration」 を使った移行作業をご紹介していきます。

移行作業

image 移行元の WordPress にプラグイン「All-in-One WP Migration」がセットできたら、All-in-One WP Migration の「エクスポート」を選択し、「追加ボタン」をクリック。そして上の行に移行元の URL、 下の段に移行先の URL を記入。最後にエクスポート先としてファイルを選択。

image するとダウンロードを促すボタンが表示されますので、ダウンロードボタンをクリック。

image WordPress のデータファイルをダウンロードしている間に、移行先のワードプレスを操作。 「All-in-One WP Migration」の「Import」 をクリック。移行元データのダウンロードが完了したら、インポートファイルにダウンロードしたデータファイルをセット。

image すると「上書きしますけどいいですか?」と尋ねられます。問題なければ「PROCEED」。ちなみにログイン時のユーザー名やパスワードも、移行元のものに変わります。

image データのインポートが完了すると上図のような表示。

image ページを更新すると、移行元のデータになっていることが確認できます。

あとはドメインの設定を行えば OK ですが、文量的に今回はこのあたりまでとさせて頂きます。

まとめ

iCloud に Google Drive、DropBox など今私達の生活にクラウド環境はなくてはならないものになっています。サーバー環境も同じで、AWS のようなクラウド型サーバーシステムが世界的なインフラとなって私達の生活を支えてくれています。

そうはいっても「AWS、管理画面難しすぎ😭」「サーバー以前にWebアプリとかWordPress、意味不明😭」という方、もう一人で頑張るの、辞めませんか?

オンライン形式のプログラミングスクール CodeCamp では、現役エンジニアによるマンツーマン指導でプログラミングの基礎をレッスン。また「エンジニア転職プログラム」では、AWS こそないものの Docker や git などの使い方も指導中。

「エンジニア、なんか良さそうだな」と思われている方。思っているだけでは何も始まりませんので、まずは一歩踏み出して「無料体験」挑戦してみませんか?オンラインのマンツーマン、はじめはドキドキしますけど、結構自分でもイケル?と新たな発見があるかもしれませんよ。

無料体験にご興味ある方は、 CodeCamp 公式ページ もしくは CodeCampGATE 公式ページ より参考にしてみて下さい。

関連記事

オシママサラ
この記事を書いた人
オシママサラ
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp