74
KUSANAGIを触ってみた Presented by WordFes Nagoya 2016 -実際に運用してみて-

KUSANAGIを触ってみた (WordFes Nagoya 2016 セッション)

Embed Size (px)

Citation preview

KUSANAGIを触ってみた

Presented by WordFes Nagoya 2016

-実際に運用してみて-

自己紹介

• 横井 公紀• https://www.facebook.com/kiminori.yokoi

• Sierに勤務しています。

• 主にクラウド(AWS, Azure)の活用提案・環境構築を行っています。

まず取り急ぎ理解しておいてほしいこと

IoT時代の到来

2 0 1 6 年

あらゆる情報がインターネットに集まる時代

集まった情報はどうなる?

常時、分析され可視化される

可視化されたデータはどうなる?

みんなが見に来る

!!→

リアルタイムに情報を集めリアルタイムに見せる基盤が必要

WordPressなら

プログラムXMLRPC

WordPressなら

プログラムXMLRPC

API サービス

自動

自動

自然事象SENSOR

自動

IoT時代には高性能が求められる

プログラムXMLRPC

API サービス

自動

自動

自然事象SENSOR

自動

非常に多くのリクエスト非常に多くのセッション

非常に多くのデータさらにリアムタイム更新

リアルタイムに大量のデータを素早く表示させたいでもコストはかけたくない

★ニーズ

そこで

KUSANAGI

KUSANAGIとは

KUSANAGIとは

私は非常に残念です。解散しない道はなかったのでしょうか。ちなみに「どんないいこと」と「セロリ」が好きです。

KUSANAGIとは三種の神器の一つ。草薙剣(くさなぎのつるぎ)、草那芸之大刀(くさなぎのたち)の異名である。熱田神宮の神体となっている。三種の神器の中では天皇の持つ武力の象徴であるとされる。「草を薙いだ剣」ヤマトタケルが伊勢神宮でこれを拝受し、東征の途上の駿河国で、この神剣によって野火の難を払い、草薙剣の別名を与えた。この説は広く知られているが、日本書紀では異伝とされている。現在の静岡県には、焼津、草薙など、この神話に由来する地名が残る。 Wikipediaより!

ということは、熱田神宮にあるってこと?

KUSANAGIとは

KUSANAGIとは

•はやい

•やすい

•うまい

KUSANAGIとは

•はやい

•やすい

•うまい

KUSANAGIとは

•はやい: 素速い応答

•やすい: 利用は無償

•うまい: チューニング

KUSANAGIは速い

実際に運用した例

今のWordPress環境

AWS東京リージョン

エンドユーザ

AZ-A

WEB WEB S3(動的変更コンテンツ用ストレージ)

画像等の静的コンテンツ

CloudWatch(監視サービス)

AWS Labmda(自動記事投稿用)

AWS Labmda(データ取得用)

WEBサービス

以下モデルを具現化したもの

プログラムXMLRPC

API サービス

自動

自動

自然事象SENSOR

自動

(参考) 昔のWordPress環境

AWS東京リージョン

エンドユーザ

AZ-A AZ-C

・・・ ・・・WEB WEB WEB WEB

EC2

RDS(Master)

S3(コンテンツ用ストレージ)

EC2

画像等の静的コンテンツ

RDS(Slave)

CloudWatch(監視サービス)

何が変わったのか

ランニングコストが落ちた

EC2 (昨年12/20に移行)

全体

確実にコストが落ちている

Before

After

Before vs After

• EC2利用料 $55.34 → $28.89– Auto Scalingしなくても負荷に耐えるため、

サーバ1台分の費用まで落ちた。–ロードバランサー(ELB)が不要になり

費用が落ちた。• データ通信料 $18.42 → $22.97–レスポンスが早くなり、ページ回遊数と

滞在時間が増えたためと推測。• 広告クリック率は0.25% → 0.64%に!

従来型クラウド時代のコスト

費用

期間

これからの時代のコスト

費用

期間

なんと応答速度が・・・

!!!!??!?!?!?

そんな!KUSANAGIにしたけど早くならないなんて!

• 全てのコンテンツが自サーバあるいは、ブラウザキャッシュが効いている他サーバから返されているか?

• Google Chromeでレスポンス速度を確認することが可能でした。一度見てみたところ・・・

多くはキャッシュから返ります

ワースト3を見てみましょう

まさかのボトルネック

Adsenseは表示が遅い

• Google Adsenseの「非同期コード」を使うと、他のHTMLコードの読み込みを待たずに読み込むことができるため、多少早まりますが、Nginxを極めると、このオプションを使用しても広告の表示のほうが遅い場合があります。

• ページの読み込みが遅い時の対策に有効だったのですが、ページのほうが早くなってしまいました。。。

自サーバだけで完結していなければならない (大前提)

外部参照はできる限り少なく

• Google Adsenseのように外部サーバを参照するコードはなるべく書かないようにします。

• ほとんど気にならない程度とはいえ、KUSANAGIの効果を打ち消してしまいます。

ページが早く表示されることの意味

出展:ページ表示2秒でイライラし始め、3分の1は「もういいや」となる, 安田英久, ITMediaビジネスオンライン, http://bizmakoto.jp/makoto/articles/1005/19/news005.html

速度以上に悩まされたのが…

502それは破滅の始まり

• 3週間に1度くらいの頻度で出現

• 厄介なことに原因がよくわからない (調査中)– KUSANAGI固有ではなくnginxの事象か?– 色んなログを見ても明確に特定が難しい。– アクセスログを見ると前触れ無く突然に

502が出現している。

• 一度出現すると502のまま復旧しない– 個人運営ゆえ、ユーザ様からの連絡に気づかず

24時間以上放置したことも…– 放置すると「閲覧不可である状態」のキャッシュが

残ってしまう?

眠れない夜。君のせいだよ。

早朝帯とはいえ3時間止まり、約400ユーザ様が閲覧できず。

502をやっつけろ!

I will give you all my love.

2 0 1 6 年 6 月

502オート自己復旧システム

CloudWatch Logs

SQS

502検知でキュー発砲

定期的にポーリングキューがあれば、キューを消してEC2を再起動

access.logを監視

CloudWatch Logs画面

Amazon SQS画面

管理者への連絡はメール(SES)で

障害による影響は極小的に

閲覧不可時間帯を約3分に縮め、数字が若干落ちる程度までに。

再起動時には以下も実行

• KUSANAGIキャッシュの削除– KUSANAGI高速化の最大の恩恵である

キャッシュも、再起動前の変な状態のものが残らないように、全て削除します。

• 念のためパッチ当て– もしかしたらセキュリティホールかも?の不安。– 自動でyum –y update を実行します。

これで一安心!

なお障害発生時、管理者は・・・

この仕組みがなかったら、本日私はここにいなかったかもしれません。

緊急時の窮地を救う

まとめ

• KUSANAGI(nginx)を導入することによる期待効果は

– 数百・数千という大量の同時接続を処理することが可能

– これらの接続に対して高速にレスポンスを返すことが可能

– ランニングコストの削減、アクセス数の増加、コンバージョンの増加を実現

まとめ

• KUSANAGIは、AWSと組み合わせることで安価・安全に運用できる

– 502発生による閲覧不可問題の対策にはAWSのマネージドサービスの組み合わせが有効

– AWSのマネージドサービスは殆どコスト不要

– CloudWatch × SQSで、502の影響時間を極小化することが可能

上手く使って最速の頂きと最高の利益を

THE BESTOF

COMBINATION

ON

提 供

フィクションなので、金銭の授受はありません

提 供

フィクションなので、金銭の授受はありません

提 供

フィクションなので、金銭の授受はありません

END

ご静聴ありがとうございました。