見出し画像

無料で4億回謝罪する方法 - サービス選定編

謝罪専用ウェブサイトとは

下記エントリーをご参照ください。

ふくゆきブログ - 乙武さん不倫の謝罪ホームページに見るプロの犯行

要はHTMLファイル1枚で構成された謝罪専用のウェブサイトを公開し、通常の情報公開に用いているドメイン名を同ウェブサイトに適用することで、過去のコンテンツを探られることなく、簡潔明瞭に謝罪を行うというメソッドです。ここでは、同ウェブサイトをAmazon S3のような高可用サービスで提供することで、大量のアクセスを捌くというノウハウも含めます。

謝罪専用ウェブサイトの特徴

まず、著名な人や組織、施設のための謝罪専用ウェブサイトの特徴を考えてみましょう。

1. 一時的に極めて大量のアクセスが発生

2. サービスダウンは悪印象を与えるため、高サービスレベルが必要

3. (初動に誤りがなければ)長くとも数ヶ月で騒動が鎮火しアクセス数は収束

4. 謝罪コンテンツなのでファイル数は比較的少数

5. 基本的にサーバサイドのスクリプトは不要

謝罪専用ウェブサイトに適したサービスとは?

以上のような要件を考えますと、同時アクセス時の負荷の観点でコストパフォーマンス的にAmazon S3やGoogle Cloud Storage系のウェブサイトのサービスが可能なオブジェクトストレージ系のサービスに絞られてきます。

両者のサービスを比較した表が以下の通りとなります。

(注1)ページビュー対象は5.5キロバイト程度のHTMLファイル1点を想定

(注2)無料サービスはAmazon AWSの場合、初回契約以降1年以内、Google Cloudの場合は初回契約時から2ヶ月という条件付きで、1ヶ月間の数値

ネイキッドドメインとは、note.muのようにwwwのようなホスト名が付いていないドメイン名です。最近のサービスの多くで利用されています。その観点でGoogle Cloud Storageのネイキッドドメインを使えない点は致命的な欠点のように思われます。

実はもう一つの選択肢があります。こちらのノートでも紹介しているように、Google App Engine上の静的ファイルはGoogleのEdge Networkにキャッシュされ極めて効率的に配信することが可能です。

上記の表にGoogle App Engineを追加してみると以下のようになります。

見ての通り、Google App Engine、圧倒的です。

何故にこのようなことが起きるかは以下に述べますが、ひとまず、結論として、謝罪専用ウェブサイトを運用するにはGoogle App Engine最強と覚えておいていただいて問題ないかと思います。

続いて、実際にGoogle App Engineでの謝罪専用ウェブサイトの構築・アップロード方法を説明します。

無料で提供できるページビュー算出の根拠

まず、Amazon S3ですが、こちらのページに説明があり、Getリクエストがページビューにあたりますので、月間20,000件となります。

一方、Google Cloud Platformですが、こちらのページに説明があり、こちらも初回利用開始時のみ、さらに2ヶ月間限定とはなりますが、300ドルの無料枠を取得できます。

300ドルでGoogle Cloud Storageをどの程度利用できるかを計算してみたものが下記となります。

Google Cloud Storageの場合、GetリクエストはClass B operationsにあたり、そちらが1.5億件のとき、1ページ5.5kBの条件下で転送量が約787GBとなりますので、合計で244ドル強となります。もう少し行けそうですが、計算が面倒ですので、1.5億ページビュー以上は提供できるということでよいでしょう。2億ページビューは無理なようです。

Google App Engineの場合、以下のようになります。

主なコスト項目はOutgoing Network Trafficとなりますが、300ドルで約2,457GBの利用が可能です。1ページ5.5kBの条件下で4.68億ページビュー強相当ということとなります。

Cloud StorageとApp Engineの価格差の理由

端的な例で説明しますと、Amazon S3とも共通するのですが、Cloud Storageの場合、1ファイルでギガバイトを超えるようなオブジェクトのサービスを可能としています。このようなファイルの転送には単純に時間がかかるため、コンピューティングリソースの拘束時間も長くなることとなります。そのため、ファイルの取得(Get)自体に課金せざるを得ないわけです。その分、App Engineよりも高価となっております。

App Engineには以下のような制限があるため、コンピューティングリソースの利用は抑止されています。

アプリケーション ファイルのアップロード数はバージョンごとに最大 10,000 に制限されています。各ファイルのサイズにも最大 32 MB という制限があります。さらに、アップロードした全バージョンのファイルの累計サイズが 1 GB に達するまでは無料ですが、1 GBを超えると 1 GB あたり月額 $ 0.026 のアップロード料金がかかります。

https://cloud.google.com/appengine/docs/quotas#Deployments

この制限自体、今となってみれば、かなり融通の利くものですが、App Engineの場合、deployの際に基本的に全ファイルをアップロードするという仕様となっているため、多数のファイルを運用することは現実的ではありません。

謝罪専用ウェブサイトの場合、基本1ファイルで済むという極めて特殊な要件であるため、ファイル数の制限は一切問題になりませんし、テキストのみですので、転送量としても極めて多数のページビューを捌けることとはなります。

実際、コーポレートサイトのやや重めのトップページを想定して、1ページビュー当たり1MBと仮定すると、提供可能なページビュー数は250万件強と(単純計算で当たり前ですが)大幅に減少します。とはいえ、それなりの数ですので、ファイル数が数千というような巨大サイトでなければ、静的ファイルのみのサイトであっても、絶対に落とせないという要件があるようであれば、App Engineを利用することは一考に値するかと思われます。
(ピーク時の同時アクセス数がそれほど多くない場合や落ちてもいいというサービスの場合、IaaS系のサービスやVPSの方が低コストとなります)

この記事が気に入ったらサポートをしてみませんか?