おもしろ雑学集

エロジンアップデート4 ハイスペックIOPS、AMP、Gzip、HTMLONLY

日付
分類
画像2枚
PV日0 月0 年1463
94.4%

4度目となるエロジンのアップデートが本日日付で完了したことをお知らせします。どのリンクを辿ってもパッパッパとファイルエクスプローラーのように俊敏なパフォーマンスを実現しました。

ELBで分散しNginxでオープンキャッシュとプロキシキャッシュ、GZipで圧縮済みのHTMLを生成し、それを本番環境の強力IOPSを実現したのSSDインスタンスストアボリュームにサブから同期させただけの極めて軽い独自システムを採用したサイトです。今回のリリースは以下になります。

サーバ移転と経緯

正確には予めテスト開発しておいたサーバにドメインを移行させただけ。ポンと移転しました。 もともとSSL/TLS通信(セキュリティ向上)を実現させるために立ち上げたテストサーバでしたが、難しい上にアダルトサイトでHTTPS化はxHamsterぐらいしかなかったので達成できませんでした。HTTPS化にすると全てをHTTPS通信しなければならないし、少しでも抜け目があればブラウザがこのサイトは危険ですと赤い背景と出す恐れがありますので、断念しました。ここから落ち込むことなんとか漫画や24を観て現実逃避して精神を安定させた後に、コードの見易さ、描きやすさ、優しさが備わったPythonとそのモジュール『Jinja2』を使って完全静的化へと実現しました。

完全静的化というのはPHPなど動的なファイルを一切使わず、予めデータベースに更新されていく記事データをHTMLファイルに生成し、そのファイルだけをポンと置いただけのシステムです。通常、WEBサイトは次のページへ行く時や、カテゴリ・タグなど条件を絞ったり、記事ページごとに変わるタイトルや記事本文、URLなどはアクセスされるたびにプログラムで処理するのが主流です。

WEB上でプログラムできるのがPHPです。PHPではアクセスされるとプログラミングを開始して計算された後に表示します。この計算処理はアクセス数が増えるたびに重くなる原因になるのですが、HTMLファイルだけにすれば作られた文字列を読み込むだけで表示されるというものでわかりやすく例えるとWindowsのファイルエクスプローラーです。

カテゴリ・タグ・ページごとにフォルダを生成し、そのフォルダの中に.htmlファイルがズラッと並びます。ブログを更新した時に、全てのファイルを更新するのでページごとに移動されています。

軽量設計への発想と道のり

システム関連は女性と同じで軽量化は永遠の課題です。WEBサイトもアプリもたとえ高性能な端末でも、軽く快適に動作しなければ美しくありません。しかし混雑なプログラムを制御させるにはPythonやPHP、MySQLなど色々とインストールしなければなりませんし、セキュリティも複雑になってきます。そこで考えたのが、一旦サーバAで記事などのデータベースを更新し/var/www/htmlにHTMLファイルを作成、それを本番環境であるサーバBにファイル同期です。よって今見ているサーバはHTMLファイルしか存在しませんので軽くて高セキュリティです。

我々が聴いている音楽ファイルは4MB、画像は200KB、HDDは500GB、映画は8GBなどが平均ですね。 HTMLファイルは大体50KBです。どこかのサイトにアクセスした時にはそのHTMLファイル50KBと、HTMLファイルに記載されている画像URLなどを読み込みと合計1MBほどになります。スマホでポチッとWEBにアクセスすれば大体1MB読み込んでいます。それを何度もなんどもサイトを巡回すればかなりの容量をパケット通信することになりますが、実際はそうではありません。よく聞くキャッシュが活用されているからです。キャッシュは一定の動作時において、同じことをする時に記憶して早く処理できるものです。

AMP対応

AMPという3文字の英単語を<html>タグに書き込むだけでは足りませんが文書をAMP仕様に訂正することによって、Googleから画像や文字列がキャッシュされるという次世代型ウェブサービスです。先で述べたキャッシュは訪問者のパソコンに保存されるローカルキャッシュで、AMPはGoogleサーバがキャッシュしてくれます、通常のHTMLファイルより4倍高速になります。AMP仕様にするには様々な編集が必要ですが、DB置換とPHPですべての画像のWidthとHeightを一括取得することによって、容易にAMPにできました。
amp

1/2
0

毎日AnywayGZIP圧縮

HTMLファイルは約50KB、その中身は全て文字列のテキストです。たかが50KBですが10アクセスあれば500KBになります。ここのサイトは月間2000万アクセス程度なので月に2000万x50 = 1億KB = 100GBとなります。1KBでも減らせば500MBも節約できます。通常はそこでGZIP圧縮を行なってアクセスとともにHTMLファイルを圧縮させますがエロジンでは記事を更新した時に既にGzipファイルも生成します。よってCPUで圧縮させずに既に圧縮済みのGzipファイルを提供しているので負荷低減となり高速となります。HTMLファイルは英語で人間がわかる文字ですが、実際にコンピュータ間でやり取りする際は別の文字になります。

HTMLファイルは50KBで全て文字列ということは一文字一文字にBYTEが生じていることがわかります。Unicodeなど面倒を除いて一文字2BYTEが基本です。スペース、全角、記号、改行、それぞれが2BYTEと形成され何百行となって50KBもの容量を食らいます。

HTML言語
<div>YAMANE in Spain on the Bedroom</div>

コンピュータ言語
AAAAAAAAAACCCCCCCCCCFFBBBBBBBBBBBBBBBBBBBAAAAAEFFFFFFFF

GZIP圧縮
A9AC9CFFB9B3A5EF7

特殊なアルゴリズムで読み込む文字列を減らします。よってコンピュータは少ない文字列を計算するので速くなるという原理です。エロジンでは/var/www/html/にindex.htmlがあったとすればindex.html.gzも作られるようになています。この拡張子.gzは前方の拡張子をGzipしたよという意味です。Gzip圧縮はSSHやPHP,Pythonで簡単に圧縮できます。

AWS EC2 Instance Store Volume

今回のアップデートで一番苦労しました。サーバでSSHでPHPなどのプログラムはいつも通りスムーズにできますが、今回はSSHでのハードウェア環境をいじっていきました。慣れないコマンドを使ってサーバのSSDを初期化とパーティションで区切りext4にフォーマットしてRAID0にするだけでしたが難儀なものでした。結果的にIOPSはランダム書き込み16KBで3万4千を記録しました。通常のEBSでは最適化されていなければ3千程度なので、約10倍ものパフォーマンスを得られます。エロジンは全て静的ファイルだけなので、ファイル数が多いので、IOPSは重要です。
ベンチマーク AWS EC2 インスタンスストアボリューム

2/2
0

アダルト動画の追加とカテゴリを簡略化、三高層

当初エロジンは二次元画像、三次元画像、二次元動画、三次元動画、2ちゃんねる、グロ、おもしろ画像など豊富なジャンルにしていましたが、シンプルに建て直しエロ漫画、エロ動画、その他というくくりでわかりやすさを実現しました。

抜けた萎えたボタン

記事のはじめと終わりに良い悪いを表すレビューボタンを付加しました。あまり押されないとは思っていたのですが、意外とポンポン押されるもので一日200回ほど押さられていただけています。苦労したかいがありました。この調子でコメントシステムを追加しようと思うのですが、AMPモードにするとJAVASCRIPTが使用厳禁となるため、あまり需要が見込めませんので保留したいと思います。Ajaxにせず単純に旧式なForm形式にすれば可能ですが、コメントを投稿するといちいちリダイレクトされてしまいます。

今後のエロジン

今後と言えるほど未来があるかわかりませんが、コメント追加、HTTPS化を目指しWEBスキルを磨いていきたいと思います。

  • 🥰抜けました
    229
  • 🥹感動しました
    6
  • 😆笑いました
    1
  • 🤔意味わからんです
    1
  • 😡胸糞悪かったです
    1
  • 😣萎えてしまいました
    12
  • 投票する
この記事をブックマーク
    日付
    分類
    画像2枚
    PV日0 月0 年1463
    94.4%
    お読み頂きありがとうございました!
    Thanks Good Read again!
    コメントを書き込め
    本文必須 最低2字 最大400字 名前空欄可 最大20字
    コメント一覧
    1
    ae46c1

    抜けた

    1
    1
    返信
    2
    a3d55c

    ee

    0
    0
    返信
    3
    da7ede

    ee

    0
    0
    返信
    4
    da7ede

    ee

    0
    0
    返信
    5
    7d7ef7

    Lick me where I’m split f1nd me on patsyrolon_mooo_com change _ to dot

    0
    0
    返信
    関連記事
    Imgur、Twitter、4ちゃん、2ちゃんなどから集めた画像150枚のサムネイル画像
    Imgur、Twitter、4ちゃん、2ちゃんなどから集めた画像150枚
    日0 年798
    29
    15

    ee5件

    HTTP/2のサムネイル画像
    HTTP/2
    日0 年581
    7
    3

    ee3件

    進撃の巨人season2のよくできたOPと春に集めたおもしろ画像149枚とそこまで面白くないGIF数枚のサムネイル画像
    進撃の巨人season2のよくできたOPと春に集めたおもしろ画像149枚とそこまで面白くないGIF数枚
    日0 年854
    43
    15

    ee2件

    2020年5月23日に空き地で拾った秘密の画像集130万枚を贈呈のサムネイル画像
    2020年5月23日に空き地で拾った秘密の画像集130万枚を贈呈
    日0 年973
    72
    12

    ee39件

    【成年向け同人誌】恋愛サンプル[なぱた]のサムネイル画像
    【成年向け同人誌】恋愛サンプル[なぱた]
    日539 月8.32k 年68.95k
    412
    41

    ee13件

    2020年センター試験の日に徹夜で保存した135枚のすべらない画像集のサムネイル画像
    2020年センター試験の日に徹夜で保存した135枚のすべらない画像集
    日0 月707 年3.54k
    65
    15

    ee23件

    【エロ同人誌】鼓動伝えて命の貴方へのサムネイル画像
    【エロ同人誌】鼓動伝えて命の貴方へ
    14
    46

    見たかった2件

    What's the Fucking Gazouzu 1 hundred forty myのサムネイル画像
    What's the Fucking Gazouzu 1 hundred forty my
    日0 月448 年4.22k
    49
    9

    ee28件

    2023年バレンタインデー前日に保存した写真集214枚のサムネイル画像
    2023年バレンタインデー前日に保存した写真集214枚
    日0 月3.96k 年214.52k
    182
    23

    AI絵は何か抜けない<br>絵は23件

    第一回 令和五年G.Wスペシャル画像集166枚 Episode.01 前編 序章のサムネイル画像
    第一回 令和五年G.Wスペシャル画像集166枚 Episode.01 前編 序章
    日413 月5.56k 年231.17k
    95
    52

    ee34件

    広告