Web + Life Hack

〜True But Useless〜

【AWS】【勉強会】ヒカ☆ラボ勉強会に参加しました。

自社が運用しているサービスの構成が似ていること、

丁度、自社でも負荷分散や高速化をやろうという話が出来ていたので

ヒカ☆ラボ勉強会に参加してきました。

http://www.zusaar.com/event/454154

 

講演内容は以下の通り

■ランサーズのご紹介

■アマゾン ウェブ サービス(AWS)について  

・基礎知識

・スケーリング方法 

・負荷テスト

・その他ノウハウ

MySQLについて  

 ・チューニング方法

・便利ツール

 

その時に取ったメモです。

■ランサーズのご紹介

・日本初+国内最大級のオンライン完結型アウトソーシングサイト

・週別依頼数は一年間で約3倍に。

・メディア掲載数が増加。

 

ちなみに、11万人といえば⇒マイクロソフト社員(全世界)数と同じ

 

フリーランサー向けポータルメディアもリリース。

日本テレワーク協会で会長賞

アクセンチュアマイクロソフトが受賞している賞

 

■アマゾン ウェブ サービス(AWS)について 

監視ツールはNagios

 

クラウドストレージについて

・EC2:一般的に利用される

・ELB :ロードバランシング

・AMI:サーバーの基になるもの

VPC :独自IPなどで仮想環境をコントロール

・S3:ウェブ上のどこからでも容量に関係なくデータを格納・取得可能。

 

EC2管理:

 

  • マネージメントコンソール
  • EC2APIツール→コマンドベースで実行。cronに記述して実行できるようになる。

 

 

マネージメントコンソールでできることが増加傾向。これからも増える予定。

 

所感; 

説明が丁寧。用語の説明までしてる。画面付きで。

 

EC2のメリットは

・スケーラビリティが高い 

  → 流動的にできる。

・スピードが早い

・コストが低い 

  →開発環境を使用しない場合は落としてコスト削減

・安全性が高い

 

その他でもメリットあり

インスタンスを切り分けて本番環境と開発環境を作る。

・AMIの共有が出来る。サーバー追加時にテスト環境とデプロイ先の開発環境を同一に出来る。

 

負荷分散時にしたこと:

・アクセス予測

・コンテンツ軽量化

  →トップのレスポンスを早く。

 →最初はHTMLで書き直し。二階層目はキャッシュ残すことで対応。

 →モバイル用でHTMLページを作成。

・仮想サーバ増設

 →appサーバを20台、スレーブを増設。

・負荷テスト 

  →SUZ-LAB(http://blog.suz-lab.com/2012/12/suz-lab-ami.html)が

      作成済のAMIを利用し、JMETERで実施。

・ELBのスケールアップ

 スループットが頭打ち。

 →ELBが原因 → スケールアップ版ELBを有料で追加。

結果:

 ・落ちなくてサービスを維持。遅延なし。会員登録数も増加した。

教訓:

 ・AWSの営業と仲良くなる。

 ・社内からの負荷テストは注意。

 ・インスタンスの立ち上げすぎに注意。

対策:

・ 定期的にAWSチェック

 →AWSブログ(http://aws.typepad.com/aws_japan/

・AWSの営業と仲良くなる。

 

こっそり話 

AWSはパフォーマンス向上や料金値下げが継続中。

  →アメリカでは既に実施済み。高性能インスタンスは今年中にリリース予定。

 

質疑応答:

・Q:セッションはどのようにさばいていたか?

 A:memchacedはキーバリューストアで管理している。

    バッチサーバーに置いている。

 

MySQLについて 

負荷分散対策;

レプリケーション

  → 最初はマスタDBで管理 → 増加していくタイミングでスレーブを追加。

  → ELBを追加して対応している。

・インデックスの見直し

  →実行時間に掛かったクエリ。インデックスが効いていないクエリを確認。

*注意:Cake PHPが出力するクエリの解析も重要

    設定内容でCake phpが良くないクエリを出したりする。

 ・RDSからEC2に変更。

  →RDSはすぐに利用できるし、バックアップできる。

 →しかし、バイナリログが参照不可。スローログ、クエリーログがテーブルに格納

  される。フェイルオーバー時にAZが変わってしまう。

 

ツール:

・Maakit(http://www.maatkit.org/)を利用。

  →参考書:実践ハイパフォーマンスMySQL

 mk-query-digestを実行。

 tcdumpやmemchacedに対応

 実行したクエリが分かる。プロファイルが分かる

 

・jetprofiler(http://engineer.blog.lancers.jp/2012/08/jet-profiler/)

 GUIで操作(導入が楽、提供されている情報が多い)

 →クエリ解析にも使える。

 →表示モードを切り替えて対応できる。

 →日本語版も出てる。

 

 以上、参加出来なかったエンジニアの方の参考になれば幸いです。