こんばんは。この週末は、このブログサービスの裏側をごっそり変える改修を行っていました・・。(思った10倍骨が折れた・・)ので、この機会に、このブログサービスのつくりを記事にまとめておきたいと思います。
それではまいります。
Contents
ブログの裏側
このブログの裏側は・・・こうなっています!
この図の通り、このブログサービスは、クラウドサービスの1つであるMicrosoft Azure上で動いています。具体的にはWordpressや、MySQLデータベースなどサービス本体はAzure VM (Virtual Machine)上で動いています。
工夫は以下の点です。
- Azure VMの前段に、CDNとしてAzure Front Doorを配置。キャッシュの力で劇的に速度があがりました。
- Azure VMはメモリとIOPS性能が良いものを選択。後述ですが、以前の環境ではメモリ不足がよく起こっていたこと、Azure PaaSを利用した構成で試したところ(おそらく)IOがネックになってサイトの読み込み時間が大幅に遅くなったため。
- VMのスペックをあげると価格もはねあがっていきますが、スポットインスタンス(Azure側でリソースが不足してきた場合などには回収されることがある、SLAなしインスタンス)を利用することでコストを約80%カット。
- Azure VMはセキュアに。まだ簡易な方法ですが、NSGによるアクセス制御を行ってFront Doorからのアクセスのみを受け付けるようにしています。
以前は・・・
実は、以前(2022年6月まで)は、このブログはAWS LightSail上で動かしていました。CDNすらつかっておりませんでした。超絶シンプルですね。しかもLightSailの良いところは劇的に安いこと。最安月々300円で運用できます。(コンテンツが増えるとこのスペックでは厳しくなってきますが・・)
なので、実は上のAzure VM内のアプリケーション構成は、一から自分で組み上げたわけではなく、このLightsailのマシンイメージを使ったAzureに移植した形になります。(いやあこれもまたひと手間だったので別の記事にまとめます)
最初は全然これで良かったのですが、ブログの記事や画像といったコンテンツが増えてくると、動作の遅さと(おそらくメモリ不足による)サイトダウンが頻発するようになってきました。
まあぶっちゃけLightSailのインスタンスをスケールアップしたり、前段にLightsail CDNを配置して負荷軽減を図ってもよかったのですが、単純にAzureをもっと勉強したいという気持ちだけで(笑)、Azureに移行してしまいました。
お蔵入りしたけど・・・
ボツになりましたが、Azure上では、下のようなPaaSをフル活用する構成パターン(App Service + Azure Database for MySQL (Flexible) も考えて実験してみたのですが、どうにもパフォーマンスが出ず、あと費用対効果も考えてお蔵入り。
Amazon LightSailからAzure VMへの移行方法
ご参考までに、今回自分が試した方法をこちらに残していますので同じことを考えられている方がいらっしゃれば・・!
以上、簡単ですがこのブログの裏側のご紹介でした。面白いと思っていただけた場合には、下のいいねボタンをポチっていただけると励みになります!
おしまい
コメントを残す