ブログ周りの話 〜安価に速いサイトを作るには〜
しゅわです。
今ははてなブログでこのサイト作っていますが、技術屋としては「より安く」「より速く」「より見栄えのよい」サイトを、いかに手軽に作るか、ということを考えています(AdSenseや各種アフィリエイトも少し念頭に)。
最近注目しているのは、
順に行きましょう。
ベースとしては、独自ドメインでWordPressをという話で、当初はHerokuベースなどを考えて、
を眺めていましたが、その後、いろいろ逡巡し、
という流れでGAEにたどり着きました。
なかなか秀逸なまとめも見つけましたが、
Always Freeができたことが大きいですね。コストメリットがあるので、構築も簡単にできる人は皆こぞって使うのでは、という気がします。
実際、ちょっとした作業はCloud shellで十分で、自分のインスタンスを立てることすら減ってきています(もちろんテストにはインスタンスを使いますが)。
自分が実際に構築するならと思い、下調べのまとめです。
基盤: Google AppEngine(GAE)
最近ハマりつつあって、いろんな記事を調べています。
この記事で、まずは簡単にデプロイまでを書いています。
本家のドキュメントはしっかり作られているので、開発力のある方にはオススメなのですが、素人がとっつきやすい簡単なチュートリアルやデモサイトがあまりないので、地道に調べながら作っています。
安くGAEでホストするには、
実際に普通に冗長化したAWS EC2のサーバ構成から、費用を抑えながら機能を維持できるようです(広告システムの話)。
次はRubyにtryするつもりなので、ドキュメントを眺めています。
DB: Firestore
本当にこれを使うかは別として、バックエンドのDBとしてFirestore(実態はNoSQL)やCloud Datastore、CloudSQL、BigQueryなどを使うのですが、アクセスする回数とデータ量依存のため、システムごとに検討する必要があります。
また静的か動的か、何が得意か、RDBMSなのかNoSQLなのかにも依るでしょう。
ブログなどを小さなCMS(Contents Manage System)として、裏にDBを持つには完全自作ならFlexibleですが、WordPressなどの既存のフレームワークやスタイル・テンプレートを流用するには、既存のRDBMSなどとの接続のため、工夫が要ります。
※この点はまだ調査中(2019.6.5 時点)。
CMSをGAE/Goで自作されたケース
コンテンツがSpreadsheetなどの場合に、裏をBigQueryにするなどのアイデアもあります。
GAE + Rails や、
GAE + Rails + CloudSQL + Cloud Storageなんて取り組みもあります。
CDN: Cloudflare
速くするにはCDN(コンテンツ・デリバリー・ネットワーク、Content Delivery Network)を使います。
身近な好例はGoogleの検索結果から行きたいサイトに飛んだときに実はGoogleのキャッシュを見ている、というケースです(特にモバイルでのアクセスの場合)。ただこれだと、アドレスはバッチリGoogleなので、自分のサイト(多くは独自ドメイン)なのに高速化、となると、「Cloudflare」などを利用することになります。
何よりも無料というのが素晴らしい。
SSL対応: Let's Encrypt
通常のサイトはSSL対応(いわゆるhttps)が当たり前になりつつあるので、HTMLをぽちぽち打っていた時代から考えると隔世の感があります。どのブラウザでも非SSL(httpのみ)は非推奨という警告が出るようになりましたし、独自ドメインでデプロイから運営までするには、もはや必須ですね。
無料といえば「Let's Encrypt」で決まりかと。
Let's Encrypt+ GAE + WordPressならこちら。
Let's Encrypt設定の詳しい手順はこちら。
GAE + Let's Encryptという点では、こちらも参考になります。
ひと手間ですが、安心感は確実に増します。
終わりに
そんなこんなで、割とメモ書きを起こしたイメージですが、GAEのお陰で自作なのにAppというコンテナ型の開発に移行していき、サーバを管理というニーズも徐々にシェアが減りそうだな、という印象です。
オンプレで頑張っている方、本当にお疲れ様です。もちろんセキュリティ面への気遣いは重要ですが、Cloudは上手に付き合って行くべき相手なのだと実感する今日このごろです。
もう少し調査してから、テストしていきたいと思います。
ご参考になれば。