Enviar pesquisa
Carregar
【JAWS DAYS 2014】ランサーズを支えるRDS
•
12 gostaram
•
6,114 visualizações
Yuki Kanazawa
Seguir
JAWS DAYS 2014で発表させて頂きました、ランサーズのRDS移行に関する資料です。
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 67
Baixar agora
Baixar para ler offline
Recomendados
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例
Yuki Kanazawa
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
Yuki Kanazawa
【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora
Yuki Kanazawa
Zaim 500万ユーザに向けて〜Aurora 編〜
Zaim 500万ユーザに向けて〜Aurora 編〜
Wataru Nishimoto
エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用
Amazon Web Services Japan
Amazon Aurora
Amazon Aurora
Shinpei Ohtani
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
はじめてのAmazon Aurora
はじめてのAmazon Aurora
Jun Okubo
Recomendados
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例
Yuki Kanazawa
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
Yuki Kanazawa
【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora
Yuki Kanazawa
Zaim 500万ユーザに向けて〜Aurora 編〜
Zaim 500万ユーザに向けて〜Aurora 編〜
Wataru Nishimoto
エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用
Amazon Web Services Japan
Amazon Aurora
Amazon Aurora
Shinpei Ohtani
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
はじめてのAmazon Aurora
はじめてのAmazon Aurora
Jun Okubo
[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ
[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ
Amazon Web Services Japan
はじめてのAmazon RDS for PostgreSQL
はじめてのAmazon RDS for PostgreSQL
Junpei Nakada
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
Amazon Web Services Japan
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Yasuhiro Matsuo
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Web Services Japan
AWS Database Migration Serviceの紹介
AWS Database Migration Serviceの紹介
Kunio Kawahara
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
Amazon Web Services Japan
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!
Terui Masashi
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
Amazon Web Services Japan
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像
Amazon Web Services Japan
Aurora
Aurora
maruyama097
20140315 jawsdays i2 instance io performance
20140315 jawsdays i2 instance io performance
Matsumoto Hiroki
オンプレからAuroraへの移行とその効果
オンプレからAuroraへの移行とその効果
Masato Kataoka
MongoDB on AWSクラウドという選択
MongoDB on AWSクラウドという選択
Yasuhiro Matsuo
Rds徹底入門
Rds徹底入門
Junpei Nakada
Redshift勉強会
Redshift勉強会
yuya-nakamura
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
recotech
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
Akio Katayama
RDBからの脱却: 新ERP"HUE"におけるCassandra
RDBからの脱却: 新ERP"HUE"におけるCassandra
2t3
AWS Black Belt Techシリーズ Amazon EMR
AWS Black Belt Techシリーズ Amazon EMR
Amazon Web Services Japan
【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWS
Kei Kinoshita
PowerDNSのご紹介
PowerDNSのご紹介
Akira Matsuda
Mais conteúdo relacionado
Mais procurados
[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ
[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ
Amazon Web Services Japan
はじめてのAmazon RDS for PostgreSQL
はじめてのAmazon RDS for PostgreSQL
Junpei Nakada
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
Amazon Web Services Japan
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Yasuhiro Matsuo
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Web Services Japan
AWS Database Migration Serviceの紹介
AWS Database Migration Serviceの紹介
Kunio Kawahara
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
Amazon Web Services Japan
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!
Terui Masashi
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
Amazon Web Services Japan
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像
Amazon Web Services Japan
Aurora
Aurora
maruyama097
20140315 jawsdays i2 instance io performance
20140315 jawsdays i2 instance io performance
Matsumoto Hiroki
オンプレからAuroraへの移行とその効果
オンプレからAuroraへの移行とその効果
Masato Kataoka
MongoDB on AWSクラウドという選択
MongoDB on AWSクラウドという選択
Yasuhiro Matsuo
Rds徹底入門
Rds徹底入門
Junpei Nakada
Redshift勉強会
Redshift勉強会
yuya-nakamura
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
recotech
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
Akio Katayama
RDBからの脱却: 新ERP"HUE"におけるCassandra
RDBからの脱却: 新ERP"HUE"におけるCassandra
2t3
AWS Black Belt Techシリーズ Amazon EMR
AWS Black Belt Techシリーズ Amazon EMR
Amazon Web Services Japan
Mais procurados
(20)
[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ
[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ
はじめてのAmazon RDS for PostgreSQL
はじめてのAmazon RDS for PostgreSQL
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
Amazon Aurora Deep Dive (re:Invent 2015 DAT405 日本語翻訳版)
AWS Database Migration Serviceの紹介
AWS Database Migration Serviceの紹介
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
ついに解禁!Amazon Aurora徹底検証!
ついに解禁!Amazon Aurora徹底検証!
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像
Aurora
Aurora
20140315 jawsdays i2 instance io performance
20140315 jawsdays i2 instance io performance
オンプレからAuroraへの移行とその効果
オンプレからAuroraへの移行とその効果
MongoDB on AWSクラウドという選択
MongoDB on AWSクラウドという選択
Rds徹底入門
Rds徹底入門
Redshift勉強会
Redshift勉強会
Oracle racからaurora my sqlへの移行
Oracle racからaurora my sqlへの移行
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
RDBからの脱却: 新ERP"HUE"におけるCassandra
RDBからの脱却: 新ERP"HUE"におけるCassandra
AWS Black Belt Techシリーズ Amazon EMR
AWS Black Belt Techシリーズ Amazon EMR
Semelhante a 【JAWS DAYS 2014】ランサーズを支えるRDS
【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWS
Kei Kinoshita
PowerDNSのご紹介
PowerDNSのご紹介
Akira Matsuda
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
Amazon Web Services Japan
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
Yahoo!デベロッパーネットワーク
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
Hiraku Komuro
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
KLab株式会社
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
Makoto Sato
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
Satoshi Yokoi
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
株式会社クライム
Lenovo seminar rancher_200513
Lenovo seminar rancher_200513
Junji Nishihara
クラウド概要 by Engine Yard
クラウド概要 by Engine Yard
Yu Kitazume
Couchbaseの紹介 2015/03/05
Couchbaseの紹介 2015/03/05
Couchbase Japan KK
商用RDBMSのAWSへの移行
商用RDBMSのAWSへの移行
Amazon Web Services Japan
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
Takamasa Maejima
Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114
Satoru Ishikawa
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
Takahiro Iwase
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech
Semelhante a 【JAWS DAYS 2014】ランサーズを支えるRDS
(20)
【JAWS DAYS 2013】ランサーズを支えるAWS
【JAWS DAYS 2013】ランサーズを支えるAWS
PowerDNSのご紹介
PowerDNSのご紹介
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
20210127 AWS Black Belt Online Seminar Amazon Redshift 運用管理
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
DBMotoで異種間DBらくらく移行 Auroraも使っちゃうよ! - JAWS-UG Kyoto 第5回勉強会
Lenovo seminar rancher_200513
Lenovo seminar rancher_200513
クラウド概要 by Engine Yard
クラウド概要 by Engine Yard
Couchbaseの紹介 2015/03/05
Couchbaseの紹介 2015/03/05
商用RDBMSのAWSへの移行
商用RDBMSのAWSへの移行
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
デスクトップ仮想化の実践 - powered by Windows Server 2016 & Azure - (Microsoft de:code 2016)
Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
【JAWS DAYS 2014】ランサーズを支えるRDS
1.
「クラウドソーシングLancers」 を支えるRDS for MySQL http://www.lancers.jp/ 「時間と場所に囚われない新しい働き方の創出」 [2014/03/15
JAWS DAYS 2014] ランサーズ株式会社 インフラエンジニア 金澤 裕毅 [Kanazawa Yuki]
2.
© 2014 for
LANCERS, inc All Rights Reserved 自己紹介(基本情報) 氏名 金澤 裕毅 世代 1976年生まれ 出身 宮城県仙台市 ・大学時代はネットワークを専攻 ・第一期(2002年~2010年) ・ Windowsパッケージ開発 ・ ASP開発、インフラ担当 ・札幌に2年間転勤 ・第二期(2010年~2013年11月) ・不動産ポータル、地域SNS ・第三期(2013年11月~現在) ・ランサーズのインフラ担当 略歴 1
3.
© 2014 for
LANCERS, inc All Rights Reserved 自己紹介(基本情報) CloudWatch ・ロードアベレージ ・HDD使用状況 ・メモリ使用状況 ・月額利用料金 ・2週間以上の値 も見れると嬉しい… 好きなAWSのサービス 2
4.
© 2014 for
LANCERS, inc All Rights Reserved ランサーズ社内における役割 3 CTO ディレクター デザイナー エンジニア ココ インフラ 【社外インフラ】 AWS チューニング全般 【社内インフラ】 ルーター設定 開発環境の支援 PC設定
5.
© 2014 for
LANCERS, inc All Rights Reserved 本日お話しさせていただく内容 4 ①ランサーズ(株)のご紹介 ②AWS移行の背景 ③RDS→EC2→RDSに移行した経緯 ④RDSのメリット・デメリット ⑤RDS移行のポイント ⑥ランサーズのRDS運用
6.
© 2014 for
LANCERS, inc All Rights Reserved 5 ①ランサーズ(株)のご紹介 ②AWS移行の背景 ③RDS→EC2→RDSに移行した経緯 ④RDSのメリット・デメリット ⑤RDS移行のポイント ⑥今後の取組み
7.
© 2014 for
LANCERS, inc All Rights Reserved 会社紹介(概要) 6 ランサーズ株式会社 設立 事業内容 ビジョン 2008年4月1日 クラウドソーシングサービス「Lancers」の運営 「時間と場所に囚われない新しい働き方の創出」 2013年6月 鎌倉→渋谷に移転しました
8.
© 2014 for
LANCERS, inc All Rights Reserved クラウドソーシングとは? • 米国で2000年頃に誕生したインターネットサービスの一つ • 仕事を頼みたい人や企業と、自分のスキルや労働力を売りたい人を ネット上でマッチングすること 満員電車にサヨナラする方法 ~時間と場所にとらわれない新しい働き方~ 秋好 陽介(著) Cloud(雲)ではなく Crowd(群衆) 7
9.
© 2014 for
LANCERS, inc All Rights Reserved サービス紹介「Lancers」 8 日本初+国内最大級の オンライン完結型アウトソーシングサービス 依頼数 約28万件 依頼総額 約220億円 会員数 約26万人 依頼案件の例 • ロゴ、イラスト • Webシステム、スマホ • データ入力、記事作成
10.
© 2014 for
LANCERS, inc All Rights Reserved 依頼可能な仕事カテゴリは「74」 9
11.
© 2014 for
LANCERS, inc All Rights Reserved 仕事タイプに合わせて選べる3つの依頼方式 10 歯科医院のロゴマーク作成 提案:32件 納期:7日間 発注額:5万円 特定地域不動産データ収集 1作業:5円 件数:1,400件 納期:10日 映画データの情報収集 1作業:25円 件数:100件 納期:3日 FLASHのゲーム制作 提案:9件 納期:3か月 発注額:100-500万円 美容室ホームページの制作 提案:8件 納期:1か月 発注額:10-50万円 Webサービスのネーミング 提案:305件 納期:7日間 発注額:2万円 【コンペ方式】 【プロジェクト方式】 【タスク方式】 ロゴ・ネーミング・バナー等 Web制作・アプリ開発等 記事/コラム・データ収集等
12.
© 2014 for
LANCERS, inc All Rights Reserved ランサーズの会員詳細 11 毎月報酬を得ている 2,000人 生活できる報酬を得ている 200人
13.
© 2014 for
LANCERS, inc All Rights Reserved ランサーズが実現する世界 12 2016年に1万人がランサーズだけで 生活できるレベルの報酬を獲得する
14.
© 2014 for
LANCERS, inc All Rights Reserved ランサーズ依頼件数の推移 13 年間300%成長中! 2012201120102009 2013 2012年5月 AWSに移行 2013年11月 金澤JOIN
15.
© 2014 for
LANCERS, inc All Rights Reserved ランサーズを支える技術 14 Web DB Monitor RDS S3EC2 CloudWatch App
16.
© 2014 for
LANCERS, inc All Rights Reserved 開発環境 15 subversion ■ バージョン管理、コーディングチェック ■リリース 移行中 FablicでApp全台に一括適用 (Python製の一括デプロイツール) デプロイ後にAPIでリリース 情報を自動通知
17.
© 2014 for
LANCERS, inc All Rights Reserved 16 ②AWS移行の背景 ③RDS→EC2→RDSに移行した経緯 ④RDSのメリット・デメリット ⑤RDS移行のポイント ⑥今後の取組み ①ランサーズ(株)のご紹介
18.
© 2014 for
LANCERS, inc All Rights Reserved なぜAWSに移行しようと思ったのか 17 HDD圧迫(大容量プランにするか???) Appサーバメモリ逼迫(4GBだったため、不足。。。) スケールしない(AP2台 DB2台の構成 DNSラウンドロビンだった) ⇒契約したプラン上、1台だけ増やす、HDD増量が出来ない 移行を考え出した「きっかけ」 2012年からサービス拡大期へ TV紹介も狙い出す AWS移行前の「問題例」 どれぐらいアクセス が増えるのか? TV効果は一時的?
19.
© 2014 for
LANCERS, inc All Rights Reserved AWSに決定するまで 18 どのクラウドサービスにするか 判 断 ポ イ ン ト 1 現行レンタルサーバでいくか?クラウドにするか? 費用とスペックなら「sakura」 スケーラブル、運用コストを下げるなら「AWS」 ⇒sakuraは、アクセス急増に対応できない、初期導入コストあり、 時間もかかる(用意してもらう時間、設定する時間) ⇒『成長するサービスならAWSだ!』 判 断 ポ イ ン ト 2 sakuraクラウドを選ぶ際のメリデメ(例) niftyクラウドを選ばなかった理由 ・・・単純に高く、価格面で折り合わなかった [メリット] ホスティングサービスが従量課金のように使用可能、IO高性能、安価 [デメリット] サービス種類、管理ツール、ウェブでの情報 sakura AWS vs sakura クラウド nifty クラウド vs
20.
© 2014 for
LANCERS, inc All Rights Reserved CentOSの入手 19 開発環境と同じ CentOSを使いたい 当初、自作しようと 試みるがハマッて しまった・・ 時間がないため、 既に構築済みの物を選択 Cloudpackさん提供のAMI
21.
© 2014 for
LANCERS, inc All Rights Reserved ファイルデータの移行 20 500GBほどあった画像などのファイルデータをS3へ移動 ① PHP の SDK を使ったアップロードバッチスクリプトを作成 ② 社内のESXiをインスタンスフル稼働させて叩きまくる ③ 何10時間もかけて移動 ESXi VM VM VM バックアップ DB バッチ処理 バッチ処理 バッチ処理
22.
© 2014 for
LANCERS, inc All Rights Reserved AWS移行前後のシステム構成 S3 Bucket Elastic Load Balancer EC2 WebServer Elastic Load Balancer EC2 DB Slave EC2 DB Slave EC2 DB Master ap-northeast-1a 移行後 App App 移行前 DB Master DB Slave Internet Internet Data Center DNSラウンド ロビン
23.
© 2014 for
LANCERS, inc All Rights Reserved 22 ④RDSのメリット・デメリット ⑤RDS移行のポイント ⑥今後の取組み ①ランサーズ(株)のご紹介 ③RDS→EC2に移行した経緯 ②AWS移行の背景
24.
© 2014 for
LANCERS, inc All Rights Reserved AWS移行直後(2012年5月)のRDS問題 23 困った点① ログが見れない!! (スローログ、クエリログはテーブル出力) (バイナリログ参照不可) デフォルトタイムゾーンがUTCで変更できない!! ※コネクションを張るたびに +9 時間する必要 困った点② MyIsamのスナップショットは未サポート →MyIsamのFullTextインデックスを利用していた 困った点③
25.
© 2014 for
LANCERS, inc All Rights Reserved AWS移行直後(2012年5月)のRDS問題 24 移行リリース直後、アクセス増加に連れて負荷が高まっていた ⇒原因調査の結果、どうやらDBかもしれないとの仮説 しかし RDS で細かいデータが見れず詳細調査が出来ない (=vmstat, sysstat, top 等 が利用不可) ⇒EC2 への移行を決断 移行したが・・・結果、EC2でも重いまま ⇒さらに調査すると、I/Oがボトルネックになっていることが発覚 ログを解析し、チューニング 移行前のレンタルサーバでは 高性能なHDDが使われていたため、 問題が発覚しなかった ⇒その後、2013年11月までEC2でMySQLを運用
26.
© 2014 for
LANCERS, inc All Rights Reserved 25 ④RDSのメリット・デメリット ⑤RDS移行のポイント ⑥今後の取組み ①ランサーズ(株)のご紹介 ③RDS→EC2→RDSに移行した経緯 ②AWS移行の背景
27.
© 2014 for
LANCERS, inc All Rights Reserved EC2のMySQL運用で困ったこと 26 • EC2の障害でリブート • 20台あって3,4ヶ月に1度くらい • DB Masterにリブートがかかり、MyIsamのFullTextIndexが壊れる • そしてスレーブ停止 • 半年で4回 +----+---------+------------------------+-------------------------------------------------------------------- | id | user_id | user | userprofile +----+---------+------------------------+-------------------------------------------------------------------- | 1 | 1 | la an nc ce er rs s | 仕事 事マ マー ーケ ケッ ット トプ プレ レイ イス ス「 「l la an nc | 2 | 2 | yo os su uk ke e | はじ じめ めま まし して て、 、y yo os su uk ke eと と申 申し しま | 3 | 3 | re ee et t | イン ンタ ター ーネ ネッ ット トサ サー ービ ビス スを を企 企画 画 +----+---------+------------------------+--------------------------------------------------------------------
28.
© 2014 for
LANCERS, inc All Rights Reserved RDSが改善されてきた… 27 • RDSの値下げ • EC2の2倍近い費用 → 差がほとんどなくなってきた • MySQL 5.6対応(2013年7月) • バイナリログの転送が可能になった • mysqlbinlogのremote serverオプション • Inno DBのFullTextIndexがサポートされた • MySQL 5.6.4から対応 • Management Consoleの充実 • Web上でほぼ全てをコントロール可能になった • パラメータの設定等 ⇒再びRDSへの移行を決断
29.
© 2014 for
LANCERS, inc All Rights Reserved 28 ⑤RDS移行のポイント ⑥今後の取組み ①ランサーズ(株)のご紹介 ④RDSのメリット・デメリット ②AWS移行の背景 ③RDS→EC2→RDSに移行した経緯
30.
© 2014 for
LANCERS, inc All Rights Reserved 29 RDS化前後のシステム構成 S3 Bucket Elastic Load Balancer EC2 WebServer Elastic Load Balancer EC2 DB Slave EC2 DB Slave EC2 DB Master ap-northeast-1a S3 Bucket Elastic Load Balancer EC2 WebServer ap-northeast-1a RDS Master RDS Read Replica RDS Multi AZ ap-northeast-1c RDS化前 RDS化後
31.
© 2014 for
LANCERS, inc All Rights Reserved 30 RDS(MySQL)のメリット • Multi AZ配置 • マスタDBと異なるAZにスタンバイを用意 • 障害時に自動フェイルオーバー • 停止時間は2分~7分(計測値) S3 Bucket Elastic Load Balancer EC2 WebServer ap-northeast-1a RDS Master RDS Read Replica RDS Multi AZ ap-northeast-1c db-master.xxxxx.ap-northeast-1.rds.amazonaws.com
32.
© 2014 for
LANCERS, inc All Rights Reserved RDS(MySQL)のメリット • リードレプリカ(参照専用スレーブ)を手軽に作成できる • メニューから選択するだけ
33.
© 2014 for
LANCERS, inc All Rights Reserved 32 RDS(MySQL)のメリット • ポイントタイムリカバリ • 任意の時間にDBを戻すことが可能 • 35日前まで保管可能(要設定)
34.
© 2014 for
LANCERS, inc All Rights Reserved RDS(MySQL)のメリット • ClowdWatch • EC2よりも豊富(空きメモリ、空きHDDも確認可)
35.
© 2014 for
LANCERS, inc All Rights Reserved 34 RDS(MySQL)のメリット • スナップショット機能 • Manual Snapshot • 手動スナップショット • インスタンス削除時に取得するか訊かれる • Automated Snapshot • 毎日自動的に取得される差分スナップショット • 35日間まで取得可能 • マスターDBが消えると削除される
36.
© 2014 for
LANCERS, inc All Rights Reserved 35 RDS(MySQL)のメリット • パフォーマンス • 適切なデフォルトパラメータ設定 • EBS ボリュームのストライプによるIOPSパフォーマンスの向上 EC2 RDS移行後 DB PHP DB PHP
37.
© 2014 for
LANCERS, inc All Rights Reserved 36 RDS(MySQL)のデメリット • EC2に比べて若干割高 • m3.medium:$0.17/h(東京リージョン) • db.m1.medium:$0.215/h(東京リージョン) • MultiAZスタンバイ機は使えない • でも料金は2台分 S3 Bucket Elastic Load Balancer EC2 WebServer ap-northeast-1a RDS Master RDS Read Replica RDS Multi AZ ap-northeast-1c バックアップ専用 利用不可
38.
© 2014 for
LANCERS, inc All Rights Reserved 37 RDS(MySQL)のデメリット • SSHログインできない • RDS接続用のEC2サーバーを用意しておく • mysqldumpのエクスポート結果もここに格納 MySQL Client EC2 RDS db-master.xxx.ap-northeast-1.rds.amazonaws.com $ mysql -h db-master.xxx.ap-northeast-1.rds.amazonaws.com -u mysqluser –p
39.
© 2014 for
LANCERS, inc All Rights Reserved 38 RDS(MySQL)のデメリット • リードレプリカにELB利用不可 • 自前でロードバランシングする必要がある • ランサーズではHAProxyを利用 S3 Bucket Elastic Load Balancer EC2 WebServer ap-northeast-1a RDS Master RDS Read Replica RDS Multi AZ ap-northeast-1c S3 Bucket Elastic Load Balancer EC2 WebServer Elastic Load Balancer EC2 DB Slave EC2 DB Slave EC2 DB Master ap-northeast-1a HAProxyを インストール 実はたまに Lostする…
40.
© 2014 for
LANCERS, inc All Rights Reserved 39 RDS(MySQL)のデメリット • Tritonn、Mroongaが使えない • 日本語全文検索ができるMySQLパッケージ • RDSを選択したら全文検索は自前で構築しましょう! • Groongaとか • Solrとか • ErasticSearchとか mysql> SELECT * FROM timetable WHERE MATCH(title) AGAINST("クラウド"); +----+-----------------------------------------------------+---------------------+ | id | title | start | +----+-----------------------------------------------------+---------------------+ | 35 | 「クラウドソーシングLancers」を支えるRDS for MySQL | 2014-03-15 17:00:00 | +----+-----------------------------------------------------+---------------------+ 1 row in set (0.00 sec)
41.
© 2014 for
LANCERS, inc All Rights Reserved 40 RDS(MySQL)のデメリット • インスタンスをSTOPできない • 稼働したくない場合はfinal snapshotを取得して削除 • 稼働したい場合はfinal snapshotから復旧 • 10分超かかる • (EC2と比べて)スケールアップ、ダウンに時間がかかる • 10分~50分 • バイナリログの保持期間は7日間まで • 35日間ではない • 7日間以上保持したい場合はEC2に転送しておく • 後述します
42.
© 2014 for
LANCERS, inc All Rights Reserved 41 ④RDSのメリット・デメリット ⑥今後の取組み ①ランサーズ(株)のご紹介 ⑤RDS移行のポイント ②AWS移行の背景 ③RDS→EC2→RDSに移行した経緯
43.
© 2014 for
LANCERS, inc All Rights Reserved 42 RDS採用時の注意点 • 1マスターにつきリードレプリカは5台まで • それ以上作成したい場合は多層構成にする • バージョン5.6以上で可能
44.
© 2014 for
LANCERS, inc All Rights Reserved 43 RDS採用時の注意点 • RDSの日付型はデフォルトでUTC(世界標準) • コネクション時にJPN時間に設定する処理を追加しておく mysql> SELECT now +---------------------+ | 2013-11-28 06:43:58 | +---------------------+ 1 row in set (0.08 sec) mysql> SET time_zone="+9:00"; Query OK, 0 rows affected (0.05 sec) mysql> SELECT now(); +---------------------+ | now() | +---------------------+ | 2013-11-28 15:44:16 | +---------------------+ 1 row in set (0.00 sec)
45.
© 2014 for
LANCERS, inc All Rights Reserved Multi AZにリードレプリカを配置 RDS Master RDS Read Replica App ap-northeast-1a EC2 instance ELB App EC2 instance App EC2 instance RDS Multi AZ RDS Read Replica App ap-northeast-1c EC2 instance ELB App EC2 instance App EC2 instance AZ間の通信遅延は 数ミリ〜数十ミリ secレベル • リードレプリカを複数のAZに均等に配置する • AZレベルの障害を想定
46.
© 2014 for
LANCERS, inc All Rights Reserved RDS Multi AZ Multi AZにリードレプリカを配置 RDS MasterRDS Read Replica App ap-northeast-1a EC2 instance ELB App EC2 instance App EC2 instance RDS Read Replica App ap-northeast-1c EC2 instance ELB App EC2 instance App EC2 instance • リードレプリカを複数のAZに均等に配置する • AZレベルの障害を想定
47.
© 2014 for
LANCERS, inc All Rights Reserved 46 スナップショット取得期間の設定 • 最大35日まで設定可能 • 1日以上に設定するとバイナリログが出力されるようになる バイナリログの 保持期間は 別途設定が必要
48.
© 2014 for
LANCERS, inc All Rights Reserved 47 パラメーターの設定 • Parameter Groupで設定 設定できない パラメータ 空欄は デフォルト値
49.
© 2014 for
LANCERS, inc All Rights Reserved 48 パラメーターの設定 • 設定後は必ず再起動する • 不適切な設定があると以下のエラーが表示される • 例:t1.microでquery_cache_sizeを32MB以上に設定
50.
© 2014 for
LANCERS, inc All Rights Reserved 49 パラメーターの設定 • 設定値をSHOW VARIABLESで確認 • デフォルト値を確認しておく • 特にquery_cache_typeがONか確認しておく • ONでないとクエリキャッシュが効かない mysql> SHOW VARIABLES; +-----------------------------------------+------------------+ | Variable_name | Value | +-----------------------------------------+------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | back_log | 56 | | basedir | /rdsdbbin/mysql/ | | big_tables | OFF | | bind_address | * | | binlog_cache_size | 32768 | | binlog_checksum | CRC32 | | binlog_direct_non_transactional_updates | OFF | | binlog_format | MIXED | | binlog_max_flush_queue_time | 0 | | binlog_order_commits | ON | | binlog_row_image | FULL | | binlog_rows_query_log_events | OFF | | binlog_stmt_cache_size | 32768 | | bulk_insert_buffer_size | 8388608 | | character_set_client | utf8mb4 |
51.
© 2014 for
LANCERS, inc All Rights Reserved 50 クライアントをMySQL5.6にする • MySQL5.1→5.6に接続時の不具合 • mysqlbinlogの転送ができない(rawオプションも使えない) • mysqldumpでエクスポートができない • MySQL5.6へのバージョンアップ方法(yumでの例) • MySQL5.6→5.1に接続時も不具合がある(EC2戻しテスト時に発覚) • old_passwords=1のユーザーでimportができない • old_password=0のユーザーを作って対処 $ sudo yum remove mysql* $ sudo yum -y install http://repo.mysql.com/mysql-community-release-el6-4.noarch.rpm $ sudo yum -y install mysql-community-server $ mysqldump -h db-master.xxx.ap-northeast-1.rds.amazonaws.com -u mysqluser -p testdb > testdb.sql mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 $ mysqlbinlog -h db-master.xxx.ap-northeast-1.rds.amazonaws.com -u mysqluser -p --read-from-remote- server --raw mysql-bin-changelog.002375 mysqlbinlog: unknown option '--raw'
52.
© 2014 for
LANCERS, inc All Rights Reserved 51 バイナリログの保持期間設定 • デフォルトの保持期間は5分 • expire_logs_daysパラメータは設定できない • 専用のストアドで設定する(以下は100時間の例) • 設定の確認 • 正しく設定されれば、Binary Log Disk Usageが増加し始める • 最長で7日間(168時間)までしか設定できないので注意 • それ以上設定しても効果なし mysql> call mysql.rds_show_configuration; mysql> call mysql.rds_set_configuration('binlog retention hours', 100); 増加しない場合は スナップショット取得期間が 1日以上になっているか確認
53.
© 2014 for
LANCERS, inc All Rights Reserved 52 バイナリログの確認(5.6のみ) mysql> SHOW BINLOG EVENTS LIMIT 5; +----------------------------+-----+-------------+-----------+-------------+-------------------------------- | Log_name | Pos | Event_type | Server_id | End_log_pos | Info +----------------------------+-----+-------------+-----------+-------------+-------------------------------- | mysql-bin-changelog.002375 | 4 | Format_desc | 970914784 | 120 | Server ver: 5.6.13-log, Binlog | mysql-bin-changelog.002375 | 120 | Query | 970914784 | 201 | BEGIN | mysql-bin-changelog.002375 | 201 | Query | 970914784 | 391 | use `mysql`; INSERT INTO mysql. | mysql-bin-changelog.002375 | 391 | Xid | 970914784 | 422 | COMMIT /* xid=129138 */ | mysql-bin-changelog.002375 | 422 | Rotate | 970914784 | 479 | mysql-bin-changelog.002376;pos= +----------------------------+-----+-------------+-----------+-------------+-------------------------------- 5 rows in set (0.00 sec) 5 rows in set (0.00 sec) mysql> SHOW BINARY LOGS; +----------------------------+-----------+ | Log_name | File_size | +----------------------------+-----------+ | mysql-bin-changelog.002375 | 479 | | mysql-bin-changelog.002376 | 479 | | mysql-bin-changelog.002377 | 1351 | | mysql-bin-changelog.002378 | 143 | | mysql-bin-changelog.002379 | 825 | | mysql-bin-changelog.002380 | 177 | • EC2に転送する場合は一番古いバイナリログを確認しておく • SHOW BIN LOG EVENTSで確認可能
54.
© 2014 for
LANCERS, inc All Rights Reserved 53 バイナリログの転送(5.6のみ) 1.mysql-bin-changelog.002375を取得 $ mysqlbinlog –u root –p -h db-master.xxx.ap-northeast-1.rds.amazonaws.com --read-from-remote-server --raw mysql-bin-changelog.002375 $ mysqlbinlog -u root -p -h db-master.xxx.ap-northeast-1.rds.amazonaws.com --read-from-remote-server --raw mysql-bin-changelog.002375 mysql-bin-changelog.002380 $ mysqlbinlog –u root -p -h db-master.xxx.ap-northeast-1.rds.amazonaws.com --read-from-remote-server --raw - -to-last-log mysql-bin-changelog.02375 $ mysqlbinlog -u root –p -h db-master.xxx.ap-northeast-1.rds.amazonaws.com --read-from-remote-server --raw - -stop-never mysql-bin-changelog.002735 • →7日間以上保持したい場合は4.でEC2にリアルタイム転送させる • マスターがreboot(failover)すると切れるのが悩み… 2.mysql-bin-changelog.002375〜002380を取得 3.mysql-bin-changelog.002375から最新まで取得 4.mysql-bin-changelog.002375から最新まで取得+最新を常時取得し続ける
55.
© 2014 for
LANCERS, inc All Rights Reserved 54 バイナリログ転送専用ユーザーの作成 • バイナリログの転送には以下の権限が必要 • REPLICATION SLAVE • REPLICATION CLIENT mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON testdb.* TO getbinlog@10.0.0.1 IDENTIFIED BY 'XXXXXXXX'; ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO getbinlog@10.0.0.1 IDENTIFIED BY 'XXXXXXXX'; • ※必ずGLOBAL権限を付与する • データベース単位で与えると以下のエラーに加え… 全スレーブのレプリケ ーションが停止してし まうので注意!!
56.
© 2014 for
LANCERS, inc All Rights Reserved 55 バイナリログ転送バッチの作成 #!/bin/sh MYSQL=/usr/bin/mysql MYSQLBINLOG=/usr/bin/mysqlbinlog LOGDIR=/var/log/mysql-bin-changelog HOST="db-master.xxx.ap-northeast-1.rds.amazonaws.com" USER="getbinlog" PASS="XXXXXX" echo "mysql user="$USER OLDEST_LOG=`$MYSQL -h $HOST -u $USER --password=$PASS --execute="SHOW BINARY LOGS;" | sed -n '4p' | sed -e "s/ *[0-9]*$//g"` echo "oldest binlog="$OLDEST_LOG echo "Start get binlog." cd $LOGDIR $MYSQLBINLOG -h $HOST -u $USER --password=$PASS --read-from-remote-server --raw --stop-never $OLDEST_LOG & get_mysql-bin-changelog.sh
57.
© 2014 for
LANCERS, inc All Rights Reserved 56 バイナリログ転送起動スクリプト #!/bin/sh # # description: Get MySQL Binary Log # chkconfig: 2345 98 20 # processname: mysqlbinlog SERVICE=GetMySQLBinaryLog USER=root COMMAND=/home/mysqluser/bin/get_mysql-bin-changelog.sh start() { su -l $USER -c "$COMMAND" echo "service $SERVICE started." } stop() { PID=`pgrep -f mysqlbinlog` kill -TERM $PID echo "service $SERVICE stopped." } case $1 in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $SERVICE [start|stop|restart]" ;; esac exit /etc/init.d/getmysqlbinlog
58.
© 2014 for
LANCERS, inc All Rights Reserved 57 ⑥ランサーズのRDS運用 ②AWS移行の背景 ③RDS→EC2→RDSに移行した経緯 ④RDSのメリット・デメリット ⑤RDS移行のポイント ①ランサーズ(株)のご紹介
59.
© 2014 for
LANCERS, inc All Rights Reserved 58 運用専用のリードレプリカ • ロードバランサ(HAProxy)に設定しないリードレプリカを用意 • 制限ユーザーアカウントで参照 S3 Bucket Elastic Load Balancer EC2 WebServer ap-northeast-1a RDS Master RDS Read Replica RDS Multi AZ ap-northeast-1c
60.
© 2014 for
LANCERS, inc All Rights Reserved 59 スローログの取得 • スローログを取得する設定 • 何秒以上のクエリを記録するかの設定 • スローログの取得 • スローログのローテート mysql> SELECT * FROM mysql.slow_log; mysql> CALL mysql.rds_rotate_slow_log; mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query_log'; +----------------+-------+ | Variable_name | Value | +----------------+-------+ | slow_query_log | ON | +----------------+-------+ 1 row in set (0.00 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 3.000000 | +-----------------+-----------+ 1 row in set (0.01 sec)
61.
© 2014 for
LANCERS, inc All Rights Reserved 60 スローログの取得 • Management Consoleからも取得可能
62.
© 2014 for
LANCERS, inc All Rights Reserved 61 Visual Explain • MySQL5.6の新機能 • MySQL WorkBenchで利用可能 アカウント名が日本語だと 動作しないので注意!
63.
© 2014 for
LANCERS, inc All Rights Reserved 62 SSH TunnelingでRDS接続 EC2 RDS ・MySQL WorkBench ・接続先:localhost ・接続ポート:8025(任意に設定) ・Poderosa、putty等のPortforwardingツール ・転送元ホスト:localhost ・転送元ポート:8025(任意に設定) ・転送先ホスト:RDSのエンドポイント ・転送元ポート:3306(MySQLのポート) EC2 RDS 社内サーバー • Portforwardingツールを使う場合(接続中は常に起動) • SSH Tunnelingサーバーを立てる場合 ・MySQL WorkBench ・接続先:社内サーバー ・接続ポート:8025(任意に設定) $ ssh -N -f -p 22 -i /home/mysqluser/.ssh/ec2.id_rsa ec2-user@EC2のIPアドレス -g -L 8025:db-slave.xxx.ap-northeast-1.rds.amazonaws.com:3306
64.
© 2014 for
LANCERS, inc All Rights Reserved 63 SSH Tunnelingの起動スクリプト #!/bin/sh # # Startup script for the SSH-Tunnel # # chkconfig: 345 56 26 # How to regist # # chmod +x /etc/init.d/ssh-tunnel # # chkconfig --level 345 --add ssh-tunnel # # /etc/init.d/ssh-tunnel start DESC=ssh-tunnel DAEMON=/usr/bin/ssh NAME=ssh # LOCAL Setting LOCAL_PORT=8025 # INTER Setting INTER_SERVER=ec2のIPアドレス INTER_PORT=22 INTER_USER=ec2_user INTER_KEY=/home/mysqluser/.ssh/ec2.id_rsa # REMOTE Setting REMOTE_SERVER=db-slave.xxx.ap-northeast-1.rds.amazonaws.com REMOTE_PORT=3306 case "$1" in start) echo -n "Starting $DESC: " $DAEMON -N -f -4 -L ${LOCAL_PORT}:${REMOTE_SERVER}:${REMOTE_PORT} ¥ ${INTER_USER}@${INTER_SERVER} -p ${INTER_PORT} -i ${INTER_KEY} ¥ -g -o ServerAliveInterval=15 > /var/log/ssh-tunnel.log 2>&1 echo "$NAME Start OK." ;; stop) echo -n "Stopping $DESC: " killall $NAME echo "$NAME Stop OK." echo "How to stop ssh-tunneling:" echo "# ps auxww | grep ssh" echo "# kill xxxx" ;; esac /etc/init.d/ssh-tunnel
65.
© 2014 for
LANCERS, inc All Rights Reserved 64 最後に、今後やりたいこと • RDSのオートスケーリング • EC2と同様のオートスケーリング機能を実現したい • CPU利用率での判定は難しそう • Appと違い、パルス的な負荷が多い • →夜間帯、土日にリードレプリカの台数を減らす方向で検討中 • 台数変更前後にhaproxy.confの設定を変更 • fablicで複数台のAppサーバーに一括設定 EC2 App RDS
66.
© 2014 for
LANCERS, inc All Rights Reserved エンジニア積極採用中 65 • 働き方を変えたい方 • 最新の技術が好きな方 • 世界に打って出たい方 お気軽にご連絡下さい! jinji@lancers.co.jp
67.
RDS最高!! ご清聴ありがとうございました [2014/03/15 JAWS DAYS
2014] ランサーズ株式会社 インフラエンジニア 金澤 裕毅 [Kanazawa Yuki] 「時間と場所に囚われない新しい働き方の創出」
Baixar agora