どurakuの作ったもの、作ろうとしているもの、作ろうとしていたものの近況。AMIが先日バージョン2017.09となりました。1.0.2k)等、それなりに変更点の大きいリリースとなっており、これによりディストリビューション標準のパッケージのみでApache/Nginxのhttp/2に対応できるようになりました。ソースコンパイルを伴うミドルウェアは実運用においては、メンテナンス性に難が有りましたが、今後は簡単に導入が可能なはずです。「今こそ」、なタイミングかと思いますので対応していきます。updateしてください。古いリリースはセキュリティ修正も行われません。7.1を使っています。Webサイトは(常時)SSL/TLS対応になっているものとして進めます。Encryptなど各種方法で対応して下さい。ロードバランサELB(ALB/CLB/NLB)は未導入のものとして話を進めます。MPMではなく別のMPMを使う必要が有るからです※1。その為、PHPをApacheモジュール版ではなく、php-fpmで動作させる必要があります。導入手順php-fpmをyumからインストール。preforkpreforkで動いています。OKスレッド数の部分で警告が出ていますが、これは後で修正します。バーチャルホストの設定PHPファイルの実行をphp-fpmに渡すための設定を追加する。Apache(やNginx)とphp-fpmの接続は、UNIXドメインソケットと127.0.0.1:9090へのTCP/IP接続が選べますが、ApacheとPHPを同じサーバーで実行する場合は、応答速度の速いUNIXドメインソケットの方で設定します。対象のバーチャルホスト設定に以下を追記。拡張子がphpのファイルをphp-fpmに渡します。"proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost"&amp;amp;amp;amp;amp;amp;lt;/FilesMatch&amp;amp;amp;amp;amp;amp;gt;FilesMatchにマッチしたファイルしかphp-fpmに渡されない事に注意。OKphp-fpm側の設定ユーザーの設定やソケットファイル名の設定など修正。apache,nginxphp-fpmのログレベルをnoticeからwarningに変更する。]まずはこの時点でWebサイトが正常に表示されることを確認する。eventあとはドキュメントルートに適当にphpinfoを実行するファイルを置いて確認。2.0」ではなく「FPM/FastCGI」と表示されていればOK。phpinfo();※確認後はこのファイルの消し忘れにご注意ください。MPMかつ、php-fpmでPHPが動作する環境になりました。MPMがeventになった事により、多数のアクセスに対しても(適切にチューニングをすれば)preforkよりもスケールする事が出来ると思われます。http2/対応ここまでくればhttp/2対応は簡単です。restartこれでもうhttp2対応です。Apacheで出ている、MaxRequestWorkersやThreadsPerChildのワーニングについては、MaxRequestWorkersがThreadsPerChildの整数倍になるように、各自調整を行ってください。ここの調整はアクセス数などによっても異なります。Lightsailに移設してみた。Lightsailに移設してみました。EC2(AWSにおけるIaaSなクラウドサーバ)とLightsail(AWSにおけるVPS)の違いは以下のようになっております。EC2完全従量課金で1時間単位の課金。ネットワーク使用量についても従量課金。スケールアップ、スケールダウンがいつでも自由にできる。ディスクの拡張も比較的容易。オートスケーリングを用いたスケールアウト、スケールインも(動かすプログラムが対応していれば)簡単。VPCでの様々なネットワーク制御。IAMによる細かな権限制御。Lightsailマシン自体は月額定額制の固定料金(5ドル~)。スナップショットについては容量に応じた従量課金。ネットワーク使用量に比較的大きめ(1TB~)の無料枠有り。ディスク容量はプランごとに固定。スケールアップする場合はスナップショット作成からの新マシン作成となる。EC2のコンパネとは色々と勝手が異なる。EC2のVPCとも異なるのでVPC関連で出来る事でLightsailでは出来ない事が多々ある。中身はEC2のt2インスタンス(のような物)だと思われる。ハイエンドな性能は求められない。Linux」が使える。今回はt2.nanoベースと思われる月額5ドルのプランにしてみました。無料プランよりは快適に動いています。以下、移設の中で引っかかった所をまとめておきます。Route53とは別のDNS管理機能が有り、一般的なVPSサーバを建てるための設定が全てLighsail側で完結するようになっているのですが、ここでRoute53でドメインを取得しているとひと手間必要になります。Route53で新規取得したドメインは自動でNSレコードやSOAレコードがRoute53側に設定されますが、LightsailのDNS管理機能を使うにはここでネームサーバの指定をLighsailのDNS機能のネームサーバーへ変更してやる必要が有ります。考えてみれば当たり前なのですが気づくのに結構時間がかかりました。フラッシュ機能でもフラッシュ出来ないので、結構な時間変更の反映を待つ形になります。仕方が無いのでRoute53側でも一次的なAレコードを追加しました。今思うとドメイン関連は、Route53だけで完結させても良かった気がします。昔SQLでパパっと変更すればOKだったような気がしますが、実際にはテキストではない形でデータを持っている部分も有りダメという情報を見かけました。日本語版https://wpdocs.osdn.jp/%E3%82%B5%E3%82%A4%E3%83%88_URL_%E3%81%AE%E5%A4%89%E6%9B%B4上記を参考にwp-login.phpに一次的にupdate_option('siteurl','http://example.com/');update_option('home','http://example.com');を記載する形で対応しました。Redirects」「Redirection」等を試してみたのですが、なぜか動かない。WebAppsはIISなので)web.configを編集して対応しました。以下略これで問題なく新サイトへのパス指定を維持したリダイレクトが動いています。最初からこれでよかったですね。Killerで死ぬMySQL最初からメモリが少ない(一番下の月額5ドルのプランは512MB)事が分かっているので、innodb_buffer_pool_size=64Mにするなど相当にしょっぱい設定にしていましたが、それでもMySQLが起動しません。スワップ領域を追加する事で起動するようになりました。12https://stackoverflow.com/questions/10284532/amazon-ec2-mysql-aborting-start-because-innodb-mmap-x-bytes-failed-errno-12に記載の方法で追加(以下引用)。/etc/fstab私は1024MBではなく2048MBでスワップを作成しました。一度の接続数が10に満たないサイトですが、以下のようなメモリ使用状況になります。vm.swappinessは20に設定しています。1711月額10ドルのプランではメモリが1GB有るので、お試しでも512MBはちょっと......という方はそちらを選ぶといいと思います。稲葉サーバーデザインhttps://inaba-serverdesign.jp/blog/20161208/aws_lightsail_benchmark.htmlt2系では重要なCPUクレジットバランス(CPUクレジット残高)を確認する方法が、すくなくともマネジメントコンソール上では見当たりません。CloudWatch側のメトリクスにも有りません。t2系インスタンスはクレジットが枯渇しそうでないか、だけを見ればCPUについて今のスペックが適切かどうかが分かりますが、それが無いのでサーバー監視の設定は何かしら別で用意した方がよさそうです。Linuxを立ち上げるような気持ちではるかに格安なサーバーを建てる事が可能でした。Linuxが使えることなどにメリットを感じるならなかなか良いんじゃないでしょうか。