このブログはこうやってうごいています

こんばんは。この週末は、このブログサービスの裏側をごっそり変える改修を行っていました・・。(思った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への移行方法

ご参考までに、今回自分が試した方法をこちらに残していますので同じことを考えられている方がいらっしゃれば・・!

以上、簡単ですがこのブログの裏側のご紹介でした。面白いと思っていただけた場合には、下のいいねボタンをポチっていただけると励みになります!

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。