先日のJAWS Festaで堀内さんの発表に感銘をうけて、起ち上げたWordpress。
些細なところかもしれないですが、ハマったので残しておこうと思います。
正直サクッと立ち上がってインフラ全部用意しても1時間あれば終わるだろってナメてました。
あと、ブログにまとめるのに日にちかかりすぎて一部忘れました/(^o^)\
躓いたところ【VPC編】
よくある鉄板構成、この構成ならよくかかっても15分で終わる。
初心者ハンズオンでもここからRDSを繋げてみたり、AZ跨いだ冗長構成やらやったりする。
もちろん、VPCとサブネットはdefaultではなくちゃんと作成。
少し違う点はELBは挟んでないところかな?
構成まではすんなり行って、いざCloudFrontのURLにアクセス。
「接続が拒否されました」
・・・・あれ?w
Elastic IPも設定してるしsshは繋がるのになぜ・・・w
AMIMOTOデフォ設定なので、HTTPもHTTPSも開いてるからセキュリティグループでもない。
サブネットにもちゃんとインターネットゲートウェイつけてる、てか付けてないとsshもつながらないはず・・・
結局これについては、サブネットのパブリック IPv4 アドレスの自動割り当てをはいにしたら解決はしたんですが、Elastic IP指定してるのになぜ?って疑問はそのまま・・・💦
最終的な構成ではいいえの状態で動いてるので、今考えればCloudFrontがProgressのままだったのかもです。
躓いたところ【SSL編】
これが意外と苦戦した・・・
今回はEC2は建てますが、ELBを使わない方針で行きました。
理由は簡単で、個人ブログに最初からロードバランサーとか要らないw
CloudFrontから直でEC2のパブリックDNSを指定すれば、SSL証明書はCloudFrontに刺せばOK
というわけで実際にやってみた。
まぁ上手くいかない/(^o^)\
細かいこと忘れてしまったんだけど、
結局はCloudFrontとEC2のpublicDNSを直通はうまく行かなかった。
httpsでの通信でAMIMOTOの初期画面までは行くのですが、その先に入っていくと上手くいかないかんじ
なのでPublicDNSにRoute53でドメイン名付けて、CloudFrontはそのドメインをOriginにしました。
CloudFrontのBehaviorはRedirect HTTP to HTTPSにして以下の設定
CloudFrontからOriginの間はhttp通信にして、EC2のSGはhttpのみ受け入れにしてます
なぜそれでうまく行ってるか理解できてないですが、ブログ開設を優先しました💦
また時間のあるときに再度作って、本当にこの方法じゃないと駄目なのか検証してみます
躓いたところ【SNSリンク編】
公開してこのページを書いてるときに気づいた💦
試しにTwitterのソーシャルリンクのボタンを押してみて、記事ページへのリンクがhttps://wp.hisa-tech.siteになってた(;´∀`)
とりあえず、DB側を疑ってみることに。
wp search-replace 'https://wp.hisa-tech.site' 'https://hisa-tech.site'
・・・・治らない
次にCocoonの親テーマがソーシャルボタンがどうやってURL取得しているか調べてみた。
tmp/sns-share-buttons.php
ここを見るとget_twitter_share_url();が取得しているように見える。
lib/sns-share.php
おそらくこれが本体で、どのボタンもget_share_page_urlでURLを取得している。 じゃぁ次にget_share_page_urlを探すとこっちはget_requested_urlで取得している・・・
このPHPのどこから呼んでるのか分からない上に、あちこち飛ぶ性質がほんと大嫌い💦
結局、これ以上追っかけられずにEC2に入って/var/www/vhosts/i-xxxxxx/wp-config.phpに以下のコード追加して解決
$_SERVER['HTTP_HOST'] = 'hisa-tech.site'; $_SERVER['SERVER_NAME'] = 'hisa-tech.site'; $_ENV['HTTP_HOST'] = 'hisa-tech.site'; $_ENV['SERVER_NAME'] = 'hisa-tech.site';
まとめ
今回の教訓はとりあえず1〜2日以内には解決策をブログアップしたほうがいいですねw
技術系のまとめ記事はどうしても時間かかる傾向が・・・w
結果、何があって、どう対応したのかを忘れる始末/(^o^)\
あとは対応中に適度にまとめておくべきでした・・・
解決急いでしまって、何をやっていったか残ってないのは痛いですね💦
もう一本、書いてる途中のFeedbackあるのですが、そっちも既に忘れかけなので早めに上げますw
WordPress自体は今後も堀内さんのアーキテクチャに近づけて行こうかなと思います♪
今Shifterも気になってるので、そっちが面白そうならそっちいくかも/(^o^)\
以下、参考ページです!
参考ページ
AMIMOTO AMI版WordPressをAmazon CloudFrontとACM(AWS Certificate Manager)で常時SSL化する
WordPressを常時SSL化するときにつまずいたこと
WordPressサイトをCloudFrontで配信する
コメント