PC & IT

AWS EC2 で ブログサイトを立ち上げる

Amazon AWS EC2 でWordpress を立ち上げる (AWSだけでWeb サーバーを立ち上げることが可能です)

最初の一年間は無料枠で利用可能、2年目以降は EC2 t2.micro で 30 $~/月で利用できます(データ量、通信量で変動)。
(ELB の利用で18 $~/月、その他が10 $~/月)

個人で作成する場合はより安く、簡単な Amazon Lightsail(月額3.5ドル〜)をお勧めいたします

❏数あるプログ運営サービスでわざわざ敷居の高いAWSを利用するする理由、安いことと高可用性且つ柔軟であることです
例:WoedPress プラグイン UpdraftPlus で Amazon S3 に簡単バックアップ、復元が可能
Amazon SES でメールの配信が可能

❏あらゆるサービスが利用できるので夢が広がるからです、将来的にはブログ以外に自分でなにかサービスを立ち上げたいと言う思いからです

❏Amazon Lightsail の紹介ページ

Amazon Lightsail からEC2の移行ツールも準備されています。

仮想サーバー、ストレージ、データベース、およびネットワーキングを予測可能な低価格でご提供
https://aws.amazon.com/jp/lightsail/

Amazon Lightsail 料金表
Amazon Lightsail 料金表

Amazon Lightsail WordPress インスタンスを起動して設定する
https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-tutorial-launching-and-configuring-wordpress

今回使用するAWSサービスの一覧

Amazon EC2 仮想サーバー ( ubuntu + WordPress )
Amazon ELB    アプリケーションへのトラフィックを複数のターゲット に自動的に分散
(今回はELBのALBを利用して簡単にSSL 化を実現するために利用)
Amazon S3   オンラインストレージ( コンテンツのバックアップストレージとして利用)
Amazon Route53  ドメインネームシステム (DNS) ウェブサービス
Amazon SES  メール配信 (問い合わせ画面のメール配信で利用)

❏事前にドメイン(www.myblog.com)名を決めてドメインの登録権利を購入する必要があります、利用されていないドメイン名にするために事前に購入可能かに調べて利用したい名前(ドメイン名)を購入する必要があります。
(例)ドメイン販売仲介会社 ムームードメイン https://muumuu-domain.com/ 
価格は年間で69円 ~ 企業向けはほとんど購入できないか高額ある

※AWS でドメインの登録権利を購入することは可能です、費用請求等管理面で統一したい場合は AWSから登録権利を購入することをお勧め致します。
※google adsense では独自のドメインしか認めないなど審査が厳しくなり www などのサブドメインも登録しにくいため、2019年5月時点では www は不要な感じがします、より短いドメイン名にすべきだと感じています。
www をつけて既に運用している場合の対応方法は⑪で記載しています。

以下のURL ステップ 2: ドメイン名を登録するを参照下さい。
https://aws.amazon.com/jp/getting-started/tutorials/get-a-domain/

目次

① Amazon EC2 を使用して、インスタンス(仮想サーバー)を立ち上げる
② ELB(ロードバランサー)の作成とインスタンスへの接続、SSL対応もここで行います
③ AWSドメインサーバーへのマイドメイン登録(DNS登録)
④ Https 対応 ELBの ルールの表示・編集で(Httpsへリダイレクト)
⑤ Wordpressの設定 プラグインの導入 と wp-config.php修正
⑥ インスタンスへの接続(Teraterm による接続)

連絡等メールで転送する場合に利用
⑦ 問い合わせ等ためのメールゲートウェイ(smtp)の作成
⑧ Amazon S3 (クラウドストレージ)を利用したバックアップ
⑨ ブログサイトにBitnami ロゴが表示されるため削除
⑩ 料金(無料枠12ヶ月を超えた場合)

⑪ www なし URL の対応 ELBの ルールの修正とDNS追加

WordPress お勧め 書籍

できる100ワザ WordPress 必ず集客できる実践・サイト運営術 WordPress 4.x対応 できる100ワザシリーズ
Wordpress の基本、サイトの立ち上げ、お勧めプタグイン、SEO対策、導入、SEO、google アナリティクス、SNS、Google AdSense、サイト運用まで網羅

          

Amazon Web Services徹底活用ガイド(日経BP Next ICT選書)
図解が大変わかり安い、 本書では、企業情報システムの企画・開発・運用を担当するITエンジニア向けに、AWSを使いこなす上で必要な知識やノウハウを、基本から解説します 記者が取材したユーザー企業20社の事例を収録上で必要な知識やノウハウを、基本から解説します 記者が取材したユーザー企業20社の事例を収録

          

① Amazon EC2 を使用して、Web サーバーを立ち上げる

AWS にサインイン ( Amazon の購入用IDと併用できます)

❏インスタンス(仮想サーバー)をどのリージョン(エリア)に作成するか決める(指定しないと米国となる)
下記 URL リージョンとアベイラビリティーゾーンを参考
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
ホームページの閲覧者が日本がメインの場合は「アジアパシフィック (東京)」の方が断然快適です(通信速度)。

※「WordPress Certified by Bitnami」はインスタンスのイメージを作成することは可能ですが、イメージからインスタンスを作成することはできないようです(Bitnamiのライセンス購入メッセージが表示される)、そのためリージョンを変更した場合は、利用したいリージョンにインスタンスを新たに作成して、移動元のインスタンスのバックアップを行い、新しいインスタンスにアップロードを行いました、WoedPressの プラグイン「UpdraftPlus」を利用ししてwordpressとデータを移行しました。

❏ EC2 を選択する

1. AWSのサービスを起動してEC2を選択する
2. AWSのコンソールでインスタンスを作成するリージョンを選択する

3.  キーペヤを作成して、キー xxxxxx.pem をPCをに保存する、次のインスタンス作成の最後のステップでインスタンスに登録するため、事前に作成する。( インスタンスへログインするために鍵を作成します)

4. インスタンスの作成

下記手順に従う、

但しWordpress は「WordPress powered by BitNami」がないので (2018年10現在)「WordPress Certified by Bitnami」を選択しました。インスタンスの作成は AWS のWordPress ウェブサイトを立ち上げる  参照してください。インスタンス作成の最後のステップでキーペヤをインスタンスに登録することを忘れないでください、インスタンスに接続する時に必要です

WordPress ウェブサイトを構築して立ち上げる方法 - AWS の開始方法
https://aws.amazon.com/jp/getting-started/tutorials/launch-a-wordpress-website/

WordPress の管理画面にログイン
グローバルIPアドレスの確認、グローバルIPアドレスでブラウザでWordpress 表示確認

できれば⑥のインスタンスへの接続の確認する、ここまでの作業は簡単なので何度でもやり直しができます。
( 接続できない場合、インスタンスを再作成する必要があります 、config の修正 、障害等やはりコンソールが必要です)

② ELBロードバランサー作成(AWSのELBを利用してSSL化)

❏Elastic Load Balancing で Application Load Balancer のリダイレクトおよび固定レスポンスのサポートを発表 (Jul 25, 2018 )
https://aws.amazon.com/jp/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/

❏Application Load Balancer とは
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/introduction.html
(ロードバランサー)を利用してWEBサーバーのDNSへの登録とSSL化を行います。

1. 証明書の作成

AWS サービス 画面より
Certificate ManagerでSSL証明書を発行
AWSのサービスを起動して Certificate Manager を起動する、下記 Certificate Manager をクリックする。

サイトのドメインを入力  *.myblog.com 等を入れる

メールが届くので、確認サイトから「I Approve」をクリック

2. ELB(Elastic Load Balancing)を利用して証明書の設置とインスタンスへ接続

Application Load Balancer 作成
・AWSのサービスを起動してEC2を起動する。
左枠のロードバランサーを選択してロードバランサーの作成を行う

Application Load Balancer (http https) を選択

・ロードバランサーの名前 myblog-alb  等を入力
・Application Load Balancer リスナーを追加
リスナーの作成 http:80 https: 443 を追加する

リスナーでは「HTTP」の80番ポートと「リスナーの追加」「HTTPS」の443番ポートをあける

3.ターゲットグループの作成 ELBとインスタンスの紐づける、後でドメインネームとELBを紐づける。
左枠のターゲットグループを選択して「ターゲットグループ作成」を行う。

ターゲットグループ名「myblog-target-g」等を入力する

下記「ターゲット」を選択して「編集」でインスタンスと紐付ける

例:ターゲットグループ「tiemblog-routing」とインスタンスID 「i-07802xxxx」が紐付けられている。

③ AWSドメインサーバーへのマイドメイン登録(DNS登録登録)

1. Route 53でドメインの登録(DNSの登録)

AWS サービス画面より「route 53」を選択

「Hosted zone 」を選択する

「Create Hosted zone 」を選択

マイドメインを入力「tiemblog.com」等、
コメント「てぃえむのプログ」等を入力する
Type: Public Hosted Zone

DNS の A レコードが作成される、下記一番下を選択して右側の「Alias Target」欄に②で作成したELBを選択する

ドメインの登録(DNS登録)はマイPCに反映されるまでは2~3日掛かる場合があります。
急ぐ場合は半日ごとに確認してください。(作成したWordpressをブラウザで接続確認)
Windows PC は再起動でDNS情報を再読込するため(またはコマンド:ipconfig /flushdns)再起動が必要。

確認方法:ブラウザで http://www.myblog.com/など でWordpress の初期画面が表示されればOK
表示が確認できたら次の https 対応に進む

④Https 対応 ELBの ルールの表示・編集で(Httpsへリダイレクト)

・ELB(ALB)を利用してHttpsをhttpsにリダイレクト
・AWSのサービスを起動してEC2を起動する。
左枠のロードバランサーを選択 「リスナー」を選択「ルールの表示/編集」を選択

下記 ルール の右 「+」 で ルールを挿入する

SSL対応:httpsのアクセスをELBを利用したhttpsにリダイレクトします
パス * であれば https:443へリダイレクト

確認方法:ブラウザで http://www.myblog.com/ 等 で  https://www.myblog.com/ にリダイレクトされ
Wordpress の初期画面が表示されればOK、この段階では httpsのアクセスでは画面が正常に表示されません。

⑤Wordpressの設定 プラグインの導入 と wp-config.php修正

ここからの作業については「Wordpress」の見た目(表示)に関係あるのでWordpressのテーマを決め投稿を1記事を行い表示を確認しながら作業を進めた方が良い思います、Apache 、Wordpress 、プラグインのバージョン及び閲覧で使用するブラウザの種類とバージョンにより表示が正常にされない場合があります

❏ 今回テストで使用したブラウザ
・google chrom バージョン: 69.0.3497.100(Official Build) (64 ビット)
( https のサイト表示ではでは警告がでる httpsを推奨している、セキュリティーが厳しく表示が難しい)
・Microsoft Microsoft EdgeHTML 17.17134 (セキュリティーについて警告がでるが表示される)
・Internet Explorer 11.09 (セキュリティーが甘く最も表示がができる)

インスタンスへ接続して wp-config.php   修正
(/opt/bitnami/wordpress/wp-config.php)
❏ 以下の記述がなければ冒頭に追加
*---------------------------------------------------------------------------*
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS'] = 'on'; 
*---------------------------------------------------------------------------*

❏ http  → https へ修正
*---------------------------------------------------------------------------*
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/');
*---------------------------------------------------------------------------*

⑥インスタンス接続について (例:TeraTermによる接続)

インスタンスへの接続説明(AWS コンソール画面で接続すると下記画面は表示される)

インスタンスへの接続は「TeraTerm」で行いました、接続先はAWSのサービスを起動してEC2を起動する、下記EC2をクリックするx個の実行中のインスタンス 選択して作成したインスタンスを選択下記パブリック DNS (IPv4)xxxxx.compute-1.amazonaws.com を指定する。

TeraTerm での接続 ホスト欄に xxxxx.compute-1.amazonaws.com を入力

ユーザー名に ubuntu を入力 (Linux に色々あり ubuntu と言う固有名称らしい)

https://www.ubuntulinux.jp/ubuntu

RSA/DSA/ECDSA/ED25519 鍵を使う を選択し、鍵の場所を指定する。

ログインすると下記画面が表示される。

⑦ 問い合わせ画面等のためのメールゲートウェイ(smtp)の作成  AWS simple Email Service

どのような場合に利用したいか要件を決めることが必要、今回はブログ・サイトを立ち上げ問い合わせ画面を作成する(WordpressのプラグインContact Form 7とWP Mail SMTPを利用)。閲覧者が意見や問い合わせを行いたい場合を想定して問い合わせ画面を作成して閲覧者が入力するとブログ・サイトの運営者のメールアドレスにメールを送付することを想定しています。AWSのEC2のサービスではsmtpのサービスが提供されていないのでAWS simple Email Service(メールの件数で課金されます)を利用する、今回は大量に広告メールをは配信しないので無料を想定。

Amazon Simple Email Service
企業や開発者のための、フレキシブルで可用性が高く、手頃な価格の E メール送受信プラットフォームです。
https://aws.amazon.com/jp/ses/
https://aws.amazon.com/jp/ses/pricing/  (利用料金)

AWSのサービスを起動して simple Email Service を起動する、下記 simple Email Serviceを クリックする。

・左枠の Email Address を選択する
・Verify New Email Address を選択
・受信可能なメールアドレスを入力する。

登録したE-mail アドレス宛にメール が届きます。
Amazon Web Services – Email Address Verification Request

Dear Amazon Web Services Customer,

 We have received a request to authorize this email address for use with Amazon SES and Amazon Pinpoint in region US East (N. Virginia). If you requested this verification, please go to the following URL to confirm that you are authorized to use this email address:

以下の部分をクリックしてメールアドレスの検証確認が完了

https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Femail-verification.us-east-1.amazonaws.com

SMTP Settings Create My SMTP Credeentials でSMTPの認証コードを入手する。

 

次の画面で 「作成」を選択

SMTP ユーザー名:次の画面で表示されるのでコピーする
SMTP パスワード : 次の画面で表示されるのでコピーする

WP Mail SMTP の 設定で使用する

Send test Email を行う。

左枠のEmail Address を選択して登録したメールアドレスを選択して
Send test Email を選択

to にFrom と同じメールアドレスを入力して Send Test Mail で送信メールが届けばOK

❏ ココからは Wordpress の設定です

問い合わせ画面でメール送信対応

❏問い合わせメール対応プラグインのインストール

Contact Form 7 のインストール
Contact Form 7 の設定

WP Mail SMTP の インストール
WP Mail SMTP の と設定

送信元アドレス:なんでも良い
送信者名:なんでも良い

メーラーは :other  SMTP (次の画面でAWS SES を設定する)
返信先: レ点(選択)

SMTP ホスト : email-smtp-east-1.amazon.com    SES から入手
暗号化     :  SSL
SMTPポート : 465
Auto TLS  : on
認証         : on
SMTP Username   SES から入手
SMTP   Password  SESから入手

⑧ AWS s3 を利用したバックアッププ

・WoedPress プラグイン UpdraftPlus のインストール

UpdraftPlus の設定が画面で以下の項目を設定する

❏ AWS の IAM で S3 Backup ユーザーを作成して認証情報を作成する、AWS IAM の Access key ID と Secret access key を UpdraftPlus の S3 アクセスキー: S3 シークレットキー:に設定する。

❏ S3 の場所 は AWS S3 を使用してバケットを作成して置く、バケット名を設定する。

❏この画面でスケジュールによりバックアップの指定も可能です

(手動、4,8,12時間毎,日ごと、週、月単位で指定可能です)

無料版 UpdraftPlus だけでは インスタンスがディスクパンクなどでWordpress などが正常に起動しない場合は対応できないので有料版の購入を推奨します 参考 AWS WordPress バックアップ & リストアー ( サイト移行 ) https://www.tiemblog.com/archives/1859

 

⑨ プログサイトにBitnami ロゴが表示されるため削除

インスタンスに接続して コマンド ”bnconfig --disable_banner 1” で対応可能

sudo /opt/bitnami/apps/wordpress/bnconfig  --disable_banner 1

*----------------------------------  END ----------------------------*

⑩ 料金(無料枠12ヶ月を超えた場合)

Amazon EC2 料金表

アジアパシフィック(東京)を選択、してt2.micro の料金をしらべると
https://aws.amazon.com/jp/ec2/pricing/on-demand/

t2.micro は 0.0152USD/時間なので、0.0152*24h*30 = 10.944$

メールで請求書が届きました、4$~8$/月で使用できています、8$ の時は米国リージョンから日本リージョンにデータを移しました。

Amazon S3 で約50G利用していますが、まだ無料で利用できています。

費用につては日毎にAWSのコンソールで把握できるので時々チャックすることで無駄リソースを利用しないようにすることができます。

ELB を利用初めて1年経過、ELBの利用料金18$が発生しました、まだブログで利益がでないので AWS aws lightsail に移行を検討しています。

⑪ www なし URL の対応 ELBの ルールの修正とDNS追加

・ route 53 でDNSの A レコードを登録する

 tiemblog.com   A   ALB に転送
 www.tiembog.com A   ALB に転送

・ALBのルールでhttps://www.tiemblog.com へリダイレクト

 

 

 

-PC & IT