- 更新日: 2019年06月19日
- 公開日: 2019年06月18日
AWS EC2でWordPressサイトを構築する方法と料金形態を徹底解説!
Webサービスを構築・運営する上で欠かせないサーバー環境。レンタルサーバーや VPS 、クラウド系とある中で、多くの企業がクラウド系の AWS を選択。「AWS?」「AWSってそんなにいいの?」と思われている方も少なくないでしょう。
そこで今回は「AWSとは」から「AWSを試す」まで、AWS知識ゼロの方でも基礎マスターできるように情報をまとめてみました。 「AWSスキル」は、IT企業への就職や転職の際にも役立つと思いますので、一応の知識を習得しておきましょう。
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社は、年間約 5TWh* (日本年間 約 1000TWh)という膨大な電力を消費しており、今後これらの電力を 100% 再生可能エネルギーで賄うと約束しています。2018年時点では 約 50% を再生可能エネルギーということですが、次のビジネスモデルも視野に入れているということであればスゴイ事ですよね。
AWS EC2を使うメリット
まずAWS の EC2 について少しご紹介。 EC2 は、 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種 |
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の違い
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の料金
「就職や転職にも 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 しかないので、必要に応じてストレージが必要に。こうしてストレージやセキュリティなど機能を足していくと料金が加算されていきます。
AWS EC2でWordPressサイトを構築する方法
ここまでは AWS や EC2 についての表面的な説明をしてきました。実際に使ってみるとより AWS や EC2 のことが理解できますので、試しに EC2に WordPress をセットしてみます。 レンタルサーバーや VPS でも WordPress のセットは比較的簡単ですが、EC2 についても同じです。 EC2 に WordPress をセットする様子、以下の動画とチュートリアルをご参考下さい。
EC2にWordPressを設定する様子
【動画内の内容】
- WordPress用インスタンス(仮想マシン)の始動
- WordPress管理画面
- phpMyAdminにログイン(Windows、Mac、Linux)
AWSにEC2をセット
まずは AWS の公式ページにアクセスして、管理画面(コンソール)にログイン。
AWSのアカウントがまだの方
AWS のアカウントがまだの方も、ログインページから新規アカウント作成することができます。 アカウントを作成する段階では、お金や身分証明等特別必要なものはありません。必要事項を入力して、すぐに AWS の管理画面にログインできるようになると思います。 アカウント情報を入力する中で、料金プランに関する選択ページが表示されます。下記のように無料プランを選択しておきましょう。AWS にログインできたら、画面上部の「サービス」を左クリックし、左上にある EC2 を選択。
「インスタンスの作成」を選択。
ここでこれから利用する仮想空間のパソコンの設定を行っていきます。今回はワードプレスの環境がプレインストールされた仮想マシンを利用したいと思いますので、画面左の 「AWS Marketplace」 をクリックし、キーワード検索欄に「 WordPress」 と入力。 いくつか WordPress 搭載のマシンが紹介されますが、今回は一番上の Bitnami 提供のものを利用してみます。
この環境の仮想マシンを利用する場合の価格表が表示されます。一番下の 「Continue」 ボタンを押して、次の画面に移動。
今回は無料プランを利用しますので、上から2番目の 「t2.micro」 を選択。「確認と作成」で すぐにマシンを起動できますが、初めての時は一応の設定内容を確認しておきましょう。「次の手順」をクリック。
こちらは仮想マシンのネットワークに関する設定。変更なしで次の手順をクリック。
こちらは仮想マシンの保存領域に関する設定。無料プランのデフォルトの状態でも 30 GB ストレージ利用できますので、そのまま次の手順をクリック。
こちらは仮想マシンの管理に関するタグ設定。そのまま次の手順をクリック。
SSL化通信などのポート情報。そのまま「確認と作成」をクリック。
セキュリティに関する 注意が表示されますが、今回はそのまま起動。
今作成した AWS の仮想マシンに自分のパソコンからアクセスしようと思うと専用のキーが必要となります。 上図 1 で「新しいキーペア作成」、 2で任意の名称を入力、そして「キーペアのダウンロード」をクリック。
ダウンロードフォルダに専用のキー 〇〇.pem がダウンロードできたら、AWS 管理画面で 「インスタンスの作成」。
「インスタンスは現在作成中です」と表示されている横の i-0369bbfbe・・・・・・ をクリック。
するとインスタンスの管理画面に移動し、4、5分待つと「ステータスが初期化しています」から「チェックイン合格しました」に変わり、仮想マシン にアクセスできるようになります。
WordPressを表示、確認
インスタンス管理画面右の方にあるパブリック IP の番号をコピーします。 そしてブラウザに貼り付けると、 WordPress のトップ画面が表示。
WordPress の管理画面については、ログインのパスワードをチェックする必要があります。 先ほど作成したインスタンスの項目上で右クリックし、「インスタンスの設定」 → 「システムログの取得」 を選択。
【WordPress管理画面の URL】
IPアドレス/wp-admin
表示されたシステムログを下の方にスクロールし、パスワードが書かれている項目を確認。そしてそのパスワードを WordPress 管理画面に貼り付け。 なおユーザー名は、 user になります。
WordPress 管理画面にログインできました。これでプラグインをインストールしたり、新規記事を作成することができますね。
後は念のため、データベースのページにアクセスして、内容をチェックしておきましょう。
【データベースのページ】
IPアドレス/phpmyadmin
しかし結果は❌。データベースの管理画面が表示されません。
phpMyAdmin のページにアクセスしようと思うと、OS毎に適切な設定を行う必要があります。 AWS に WordPress を提供している Bitnami によると、
Windows の場合は、 PuTTY と PuTTYgen を使って phpMyAdmin に接続。Mac と Linux は、ターミナルの画面からコマンドを入力して phpMyAdmin に接続していきます。
phpMyAdmin: WordPressで書いた記事や設定したレイアウト、プラグインなどの WordPress 全般のデータが保存されているデータベースの管理ソフト。レンタルサーバーなどでは比較的分かりやすい URL(ドメイン/log/phpmyadminなど)。場合によってはハッカーの標的に。
phpMyAdminへのアクセス
EC2のインスタンス(仮想マシン)を Bitnamiベースで起動した際、 phpMyAdminへのアクセス方法は OS によって違ってきます。
- Bitnamiからの phpMyAdmin 公式ドキュメント
WindowsでEC2のWordPressデータベース管理画面にアクセス
Mac or Linux でEC2のWordPressデータベース管理画面にアクセス
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へ移行する方法
今回はレンタルサーバーにある WordPress のデータ(画像右)を、 AWS の EC2(画像左) に移行してみたいと思います。
移行準備
- 移行元(画像右)/プラグイン「All-in-One WP Migration」をセット
- 移行先(画像左)/ WordPressの動くインスタンス(仮想マシン)の準備&プラグイン「All-in-One WP Migration」
WordPress の移行作業というとデータベースの引っ越し作業が一般的と思いますが、プラグインの「All-in-One WP Migration」を使うと簡単で、便利。 今回はプラグインの「All-in-One WP Migration」 を使った移行作業をご紹介していきます。
移行作業
移行元の WordPress にプラグイン「All-in-One WP Migration」がセットできたら、All-in-One WP Migration の「エクスポート」を選択し、「追加ボタン」をクリック。そして上の行に移行元の URL、 下の段に移行先の URL を記入。最後にエクスポート先としてファイルを選択。
するとダウンロードを促すボタンが表示されますので、ダウンロードボタンをクリック。
WordPress のデータファイルをダウンロードしている間に、移行先のワードプレスを操作。 「All-in-One WP Migration」の「Import」 をクリック。移行元データのダウンロードが完了したら、インポートファイルにダウンロードしたデータファイルをセット。
すると「上書きしますけどいいですか?」と尋ねられます。問題なければ「PROCEED」。ちなみにログイン時のユーザー名やパスワードも、移行元のものに変わります。
データのインポートが完了すると上図のような表示。
ページを更新すると、移行元のデータになっていることが確認できます。
あとはドメインの設定を行えば OK ですが、文量的に今回はこのあたりまでとさせて頂きます。
\一流デザイナーのスキルが身に付く/
まとめ
iCloud に Google Drive、DropBox など今私達の生活にクラウド環境はなくてはならないものになっています。サーバー環境も同じで、AWS のようなクラウド型サーバーシステムが世界的なインフラとなって私達の生活を支えてくれています。
そうはいっても「AWS、管理画面難しすぎ😭」「サーバー以前にWebアプリとかWordPress、意味不明😭」という方、もう一人で頑張るの、辞めませんか?
オンライン形式のプログラミングスクール CodeCamp では、現役エンジニアによるマンツーマン指導でプログラミングの基礎をレッスン。また「エンジニア転職プログラム」では、AWS こそないものの Docker や git などの使い方も指導中。
「エンジニア、なんか良さそうだな」と思われている方。思っているだけでは何も始まりませんので、まずは一歩踏み出して「無料体験」挑戦してみませんか?オンラインのマンツーマン、はじめはドキドキしますけど、結構自分でもイケル?と新たな発見があるかもしれませんよ。
無料体験にご興味ある方は、 CodeCamp 公式ページ もしくは CodeCampGATE 公式ページ より参考にしてみて下さい。
- この記事を書いた人
- オシママサラ