【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で操作(導入が楽、提供されている情報が多い)
→クエリ解析にも使える。
→表示モードを切り替えて対応できる。
→日本語版も出てる。
以上、参加出来なかったエンジニアの方の参考になれば幸いです。