SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
PHP Version Up と
AWS に移行した話
グリー株式会社
吉本 将宣
Copyright © GREE, Inc. All Rights Reserved.
自己紹介
● 吉本 将宣
● 2014年 グリー Join
● インフラ/リードエンジニア
○ 本職は NoSQL のはずだが、、、
○ 何でもやるスタイル
■ PM、フロント開発・コードレビュー...
■ 一時は Manager も ...
● 10月からメディア事業へ
○ iOS/Android アプリの開発メイン
Copyright © GREE, Inc. All Rights Reserved.
今日お話しすること
● PHP Version Up した話
● AWS に移行した話
Copyright © GREE, Inc. All Rights Reserved.
今日お話しすること
● PHP Version Up した話
● レガシーと戦って僕たちが手に入れた武器
● AWS に移行した話
● 僕たちが手に入れた武器で次にやったこと
Copyright © GREE, Inc. All Rights Reserved.
グリーのサービス
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
Copyright © GREE, Inc. All Rights Reserved.
Memcached
/ Redis / Flare
MySQL
Apache + PHP
基本システム構成
アプライアンス
ロードバランサ
+
Apache Proxy
ロードバランサ層 アプリケーション層 データベース層
Copyright © GREE, Inc. All Rights Reserved.
2年前の僕たちの環境
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
Copyright © GREE, Inc. All Rights Reserved.
2年前の僕たちの環境
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
OS : Ubuntu Trusty
PHP : 5.5 以上
MySQL : 5.6 以上
Copyright © GREE, Inc. All Rights Reserved.
2年前の僕たちの環境
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
OS : Debian Lenny
PHP : 5.2
MySQL : 5.5
Copyright © GREE, Inc. All Rights Reserved.
なぜオンプレがレガシー化したのか
● 新規 OS への対応遅れ
○ 数千台規模のサーバの入替はそれだけで長期に渡る
● 息の長いサービスは密結合化
○ 古くからあるサービス
■ GREE SNS やガラケー時代からの内製ブラウザゲーム
○ プラットフォームやゲーム間で require
■ プラットフォームが出来る前のコード
■ API 化されていない部分
■ 同じサーバで動いていた
● API 呼び出しより MySQL 直アクセスの方が速かった
● メンテナンスが入れづらい
○ ゲームプラットフォームの修正はパートナー様にも影響する
● 肥大化したコード
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
抜け出せないレガシーの沼
Copyright © GREE, Inc. All Rights Reserved.
しかし限界はある
● レスポンス速度の改善も限界
○ 2年前の時点でも周回遅れの PHP 5.2
● OS が古いことによるミドルウェアのメンテナンスコスト増大
○ セキュリティパッチは独自で対応
○ AWS は ubuntu trusty なので、同じミドルウェアで複数バージョンを
メンテナンスしないといけない
意を決して内製のブラウザゲームからバージョンアップを始めた
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
効率よく&スピード重視で
進めないといけない
Copyright © GREE, Inc. All Rights Reserved.
どうしたのか
● 少人数によるプロトタイピング
● ノウハウの共有
● 修正方針と QA のスケジューリング
Copyright © GREE, Inc. All Rights Reserved.
少人数によるプロトタイピング
● インフラチームを中心に各ゲーム・プラットフォームから数名で対応
● ゲームや SNS 機能が最低限動くところまで一気にやった
○ 各サービス共通のコードを完成させる
○ よくある syntax error の修正方法を決める
■ 引数の変更など (regex_replace, etc…
● ミドルウェア・インフラ面の問題も先取り
○ 画像ライブラリ・Apache などの設定や問題の確認
● 開発環境を統一
○ chef を使って本番と共通の cookbook を作成
○
Copyright © GREE, Inc. All Rights Reserved.
ノウハウ共有
● 全サービスで共通のエラーレポートフローを定義
○ ゲーム内で閉じない不具合は全員に共有
○ どのように対応したかも一覧で分かるように
● チームや領域によらずに修正
○ インフラ・ゲーム・プラットフォームのチームに関係なく pull request
○ レビューやテストは各サービスのエンジニアが対応することで品質を担保
● インフラチームが舵を取って積極的にノウハウを共有
○ 全社で共通となっているインフラチームが中心になることで情報を集約
Copyright © GREE, Inc. All Rights Reserved.
修正方針と QA のスケジューリング
● 修正方針
○ PHP5.2 と PHP5.5 両方で必ず動くように修正する
● QA とリリースまでのスケジュール調整
○ 先行して一つのゲームで QA を実施
■ 密結合なので、プラットフォームなどの不具合も見つることができた
■ 画像合成といったセンシティブで時間が掛かる問題も早めに検知できた
○ 共通の不具合を修正後は並行して QA を実施
■ 定常的に実施しているイベント等の QA と同時に実施
● PHP5.2 と PHP5.5 の両方の環境で QA すると時間が掛かりすぎる
■ 事前に発生しやすい問題は把握・対応できているので不具合は少なめ
○ プラットフォームは定常 QA で確認しつつ徐々にリリース
○ リリースは一台に投入して2週間以上様子を見てから
■ 負荷に問題がないか
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
決してスマートとは
言えないやり方だが...
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
どうにか難題を乗り越えて
僕たちが勝ち得たものとは
Copyright © GREE, Inc. All Rights Reserved.
負荷の改善
● 50%ほど load avergae が改善された
○ Web サーバを 40% 削減
PHP 5.2
PHP 5.5
Copyright © GREE, Inc. All Rights Reserved.
レガシーからの脱却
● バージョンアップ前 (2015年時点)
○ Trusty & PHP5.5:全体の 20%
● バージョンアップ後 (2016年時点)
○ Trusty & PHP5.5:全体の 90%
■ Lenny & PHP5.2 で残ったもの
● サーバ管理システム等
● オンプレのネイティブゲーム
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
そんな数字よりも。。。
Copyright © GREE, Inc. All Rights Reserved.
僕たちが真に勝ち得たもの
● 互いのシステムへの相互理解
○ サーバサイドエンジニアのインフラへの理解
○ インフラエンジニアのアプリケーションへの理解
● 組織を超えた強力なチームワーク
○ 一つの目標に向かって一丸となって進む力
○ 自分の領域に囚われずに協力し合う信頼関係
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
AWS に行こう
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行したモチベーション
システム観点では。。。
● オンプレサーバの老朽化
○ 2017年には EOSL を迎えてしまう
○ HDDおよびメモリの故障率の増加
○ パフォーマンスの限界
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
でも、それだけじゃない
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行したモチベーション
● 一丸となってやれば何でもできる自信
○ 10年来の超大規模レガシーから抜け出した自信
● 次のチャレンジへの意欲向上
○ PHP7
○ 疎結合化
○ etc...
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行したモチベーション
● やりたいことは非常に多い
● でも、さすがに一気に全部やるのは怖いので
● AWS 移行しつつ、並行して PHP7 の準備をしました
Copyright © GREE, Inc. All Rights Reserved.
1年でゲームを全部 AWS に移行した
● 2016年
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
Copyright © GREE, Inc. All Rights Reserved.
1年でゲームを全部 AWS に移行した
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
スマホゲーム
広告
メディア事業など
オンプレ
AWS
● 2017年
Copyright © GREE, Inc. All Rights Reserved.
移行したサービス
● ブラウザゲーム
○ 密結合なものも含めて全て
● スマホ向けネイティブゲーム
○ ブラウザゲームで得たノウハウを活かして PHP Version Up も同時に
○ ネイティブ向けのゲームプラットフォームも
● ゲーム以外も
○ コーポレート、広告・メディア事業系のサイト
20を超えるサービス、数千台規模のサーバを AWS に移行
Copyright © GREE, Inc. All Rights Reserved.
どうやって移行したか?
● Direct Connect 使った
○ 事前に MySQL のレプリカを AWS 上に作る
■ AWS 側のレプリカを一台、オンプレのサービスに入れて
クエリ検証やレスポンス速度等を確認
● 密結合な内製ブラウザゲームの場合、プラットフォームがオンプレに残るので
AWS からオンプレへのレスポンス速度も重要
○ テスト用の別ドメインを AWS 側につけてテスト実施
■ AWS からオンプレの本番 DB にアクセスして確認
● 移行日の深夜メンテで切替
○ MySQL マスタ切替 & DNS 切替
○ 最終的な動作チェック
Copyright © GREE, Inc. All Rights Reserved.
移行して良かったこと
● サーバ費用の削減
○ 40% 近い削減を達成
■ ハードウェア性能向上による負荷低減
● サーバリソースの在庫調整が不要に
○ オンプレではサーバ増加における調達のために在庫が必要だった
● PHP5.5 に出来ていなかったサービスも完全移行
○ オンプレに残っていたネイティブゲーム等
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行で起きた問題
● 深夜メンテを入れて移行できなかったのは最初の一回だけ
○ 原因は疎結合化を同時にやろうとしたことによるテスト不足
● メンテ当日の準備不足
○ テスト用端末がログインできないプロダクトがあり
当日慌てて対応した
大きなトラブルはほとんどなかった
Copyright © GREE, Inc. All Rights Reserved.
なぜ一年で数千台規模を移行できたのか
● 普通に PDCA 回した
○ 最初の移行ミスでプロジェクト並行する問題が把握できた
○ 事前にやる作業や修正を次の移行プロダクトに共有した
○ 負荷予測の精度も移行を経るごとに高くなった
● 円滑なコミュニケーション
○ PHPバージョンアップした時からの信頼関係
○ 相互に仕組みを理解しているため話が早く
問題を早く検知しやすい
■ 認識齟齬などに問題も少なかった
Copyright © GREE, Inc. All Rights Reserved.
今後のチャレンジ
● PHP7 on Xenial
○ 一部サービスでは導入を開始
■ memcached への connection 数が改善
■ cpu 負荷も半分程度に
● HTTP2 を使った通信の高速化
● オンプレに残ったサービスのハイブリッドクラウド
Copyright © GREE, Inc. All Rights Reserved.
まとめ
● 強靭な意志でレガシーから抜け出せる
● 勝ち得たチームワークは次のチャレンジの大きな財産!
● パフォーマンスの改善はその副産物
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
技術負債は
人的資源に変える
大きなチャンス!

Weitere ähnliche Inhalte

Was ist angesagt?

Unityプロファイラについて
UnityプロファイラについてUnityプロファイラについて
UnityプロファイラについてMio Ku-tani
 
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Kenta Nagai
 
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景UnityTechnologiesJapan002
 
Using or not using magic onion
Using or not using magic onionUsing or not using magic onion
Using or not using magic onionGoichi Shinohara
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
OpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみたOpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみたTakahiro Miyaura
 
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクスUnite2017Tokyo
 
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinarsNGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinarsfisuda
 
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなすUnity Technologies Japan K.K.
 
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜めーぷる しろっぷ
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMPYusuke Kagata
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnity Technologies Japan K.K.
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステムSEGADevTech
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]DeNA
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?Mr. Vengineer
 

Was ist angesagt? (20)

Unityプロファイラについて
UnityプロファイラについてUnityプロファイラについて
Unityプロファイラについて
 
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
 
【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap
 
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
 
Using or not using magic onion
Using or not using magic onionUsing or not using magic onion
Using or not using magic onion
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
OpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみたOpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみた
 
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
 
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinarsNGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
 
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
 
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜
 
Open Match Deep Dive
Open Match Deep DiveOpen Match Deep Dive
Open Match Deep Dive
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
 

Andere mochten auch

著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則Hiroshi Tokumaru
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略yoku0825
 
LancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策についてLancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策についてShigemasa Akiyama
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今y-uti
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことYoshio Hanawa
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜Katsuhiro Miura
 
Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析Kazutaka Tomita
 
モバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイントモバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイントNaoya Kaneko
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)Kosuke Kida
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Masahito Zembutsu
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)akira6592
 
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化真乙 九龍
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版Kouhei Sutou
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムKouhei Sutou
 

Andere mochten auch (17)

著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
LancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策についてLancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策について
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今
 
phpcon2017 LT01 MDD
phpcon2017 LT01 MDDphpcon2017 LT01 MDD
phpcon2017 LT01 MDD
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
 
Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析
 
モバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイントモバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイント
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
 

Ähnlich wie PHP Version Up と AWS への移行

インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動gree_tech
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことgree_tech
 
第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlowgree_tech
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)Developers Summit
 
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Developmentアジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile DevelopmentGo2GroupJapan
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechconDeNA
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Yahoo!デベロッパーネットワーク
 
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Appsグリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & AppsGoogle Cloud Platform - Japan
 
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由gree_tech
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2gree_tech
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo!デベロッパーネットワーク
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsHajimeSasanuma
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 

Ähnlich wie PHP Version Up と AWS への移行 (20)

インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
 
GREE-Fsite
GREE-FsiteGREE-Fsite
GREE-Fsite
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
 
第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
 
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Developmentアジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Appsグリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
 
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
 
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnightPresto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 

Mehr von gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介gree_tech
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてgree_tech
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験gree_tech
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組みgree_tech
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違いgree_tech
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介gree_tech
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてgree_tech
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーgree_tech
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-gree_tech
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話gree_tech
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)gree_tech
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行gree_tech
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜gree_tech
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)gree_tech
 

Mehr von gree_tech (20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 

PHP Version Up と AWS への移行

  • 1. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. PHP Version Up と AWS に移行した話 グリー株式会社 吉本 将宣
  • 2. Copyright © GREE, Inc. All Rights Reserved. 自己紹介 ● 吉本 将宣 ● 2014年 グリー Join ● インフラ/リードエンジニア ○ 本職は NoSQL のはずだが、、、 ○ 何でもやるスタイル ■ PM、フロント開発・コードレビュー... ■ 一時は Manager も ... ● 10月からメディア事業へ ○ iOS/Android アプリの開発メイン
  • 3. Copyright © GREE, Inc. All Rights Reserved. 今日お話しすること ● PHP Version Up した話 ● AWS に移行した話
  • 4. Copyright © GREE, Inc. All Rights Reserved. 今日お話しすること ● PHP Version Up した話 ● レガシーと戦って僕たちが手に入れた武器 ● AWS に移行した話 ● 僕たちが手に入れた武器で次にやったこと
  • 5. Copyright © GREE, Inc. All Rights Reserved. グリーのサービス SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など
  • 6. Copyright © GREE, Inc. All Rights Reserved. Memcached / Redis / Flare MySQL Apache + PHP 基本システム構成 アプライアンス ロードバランサ + Apache Proxy ロードバランサ層 アプリケーション層 データベース層
  • 7. Copyright © GREE, Inc. All Rights Reserved. 2年前の僕たちの環境 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS
  • 8. Copyright © GREE, Inc. All Rights Reserved. 2年前の僕たちの環境 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS OS : Ubuntu Trusty PHP : 5.5 以上 MySQL : 5.6 以上
  • 9. Copyright © GREE, Inc. All Rights Reserved. 2年前の僕たちの環境 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS OS : Debian Lenny PHP : 5.2 MySQL : 5.5
  • 10. Copyright © GREE, Inc. All Rights Reserved. なぜオンプレがレガシー化したのか ● 新規 OS への対応遅れ ○ 数千台規模のサーバの入替はそれだけで長期に渡る ● 息の長いサービスは密結合化 ○ 古くからあるサービス ■ GREE SNS やガラケー時代からの内製ブラウザゲーム ○ プラットフォームやゲーム間で require ■ プラットフォームが出来る前のコード ■ API 化されていない部分 ■ 同じサーバで動いていた ● API 呼び出しより MySQL 直アクセスの方が速かった ● メンテナンスが入れづらい ○ ゲームプラットフォームの修正はパートナー様にも影響する ● 肥大化したコード
  • 11. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 抜け出せないレガシーの沼
  • 12. Copyright © GREE, Inc. All Rights Reserved. しかし限界はある ● レスポンス速度の改善も限界 ○ 2年前の時点でも周回遅れの PHP 5.2 ● OS が古いことによるミドルウェアのメンテナンスコスト増大 ○ セキュリティパッチは独自で対応 ○ AWS は ubuntu trusty なので、同じミドルウェアで複数バージョンを メンテナンスしないといけない 意を決して内製のブラウザゲームからバージョンアップを始めた
  • 13. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 効率よく&スピード重視で 進めないといけない
  • 14. Copyright © GREE, Inc. All Rights Reserved. どうしたのか ● 少人数によるプロトタイピング ● ノウハウの共有 ● 修正方針と QA のスケジューリング
  • 15. Copyright © GREE, Inc. All Rights Reserved. 少人数によるプロトタイピング ● インフラチームを中心に各ゲーム・プラットフォームから数名で対応 ● ゲームや SNS 機能が最低限動くところまで一気にやった ○ 各サービス共通のコードを完成させる ○ よくある syntax error の修正方法を決める ■ 引数の変更など (regex_replace, etc… ● ミドルウェア・インフラ面の問題も先取り ○ 画像ライブラリ・Apache などの設定や問題の確認 ● 開発環境を統一 ○ chef を使って本番と共通の cookbook を作成 ○
  • 16. Copyright © GREE, Inc. All Rights Reserved. ノウハウ共有 ● 全サービスで共通のエラーレポートフローを定義 ○ ゲーム内で閉じない不具合は全員に共有 ○ どのように対応したかも一覧で分かるように ● チームや領域によらずに修正 ○ インフラ・ゲーム・プラットフォームのチームに関係なく pull request ○ レビューやテストは各サービスのエンジニアが対応することで品質を担保 ● インフラチームが舵を取って積極的にノウハウを共有 ○ 全社で共通となっているインフラチームが中心になることで情報を集約
  • 17. Copyright © GREE, Inc. All Rights Reserved. 修正方針と QA のスケジューリング ● 修正方針 ○ PHP5.2 と PHP5.5 両方で必ず動くように修正する ● QA とリリースまでのスケジュール調整 ○ 先行して一つのゲームで QA を実施 ■ 密結合なので、プラットフォームなどの不具合も見つることができた ■ 画像合成といったセンシティブで時間が掛かる問題も早めに検知できた ○ 共通の不具合を修正後は並行して QA を実施 ■ 定常的に実施しているイベント等の QA と同時に実施 ● PHP5.2 と PHP5.5 の両方の環境で QA すると時間が掛かりすぎる ■ 事前に発生しやすい問題は把握・対応できているので不具合は少なめ ○ プラットフォームは定常 QA で確認しつつ徐々にリリース ○ リリースは一台に投入して2週間以上様子を見てから ■ 負荷に問題がないか
  • 18. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 決してスマートとは 言えないやり方だが...
  • 19. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. どうにか難題を乗り越えて 僕たちが勝ち得たものとは
  • 20. Copyright © GREE, Inc. All Rights Reserved. 負荷の改善 ● 50%ほど load avergae が改善された ○ Web サーバを 40% 削減 PHP 5.2 PHP 5.5
  • 21. Copyright © GREE, Inc. All Rights Reserved. レガシーからの脱却 ● バージョンアップ前 (2015年時点) ○ Trusty & PHP5.5:全体の 20% ● バージョンアップ後 (2016年時点) ○ Trusty & PHP5.5:全体の 90% ■ Lenny & PHP5.2 で残ったもの ● サーバ管理システム等 ● オンプレのネイティブゲーム
  • 22. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. そんな数字よりも。。。
  • 23. Copyright © GREE, Inc. All Rights Reserved. 僕たちが真に勝ち得たもの ● 互いのシステムへの相互理解 ○ サーバサイドエンジニアのインフラへの理解 ○ インフラエンジニアのアプリケーションへの理解 ● 組織を超えた強力なチームワーク ○ 一つの目標に向かって一丸となって進む力 ○ 自分の領域に囚われずに協力し合う信頼関係
  • 24. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. AWS に行こう
  • 25. Copyright © GREE, Inc. All Rights Reserved. AWS 移行したモチベーション システム観点では。。。 ● オンプレサーバの老朽化 ○ 2017年には EOSL を迎えてしまう ○ HDDおよびメモリの故障率の増加 ○ パフォーマンスの限界
  • 26. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. でも、それだけじゃない
  • 27. Copyright © GREE, Inc. All Rights Reserved. AWS 移行したモチベーション ● 一丸となってやれば何でもできる自信 ○ 10年来の超大規模レガシーから抜け出した自信 ● 次のチャレンジへの意欲向上 ○ PHP7 ○ 疎結合化 ○ etc...
  • 28. Copyright © GREE, Inc. All Rights Reserved. AWS 移行したモチベーション ● やりたいことは非常に多い ● でも、さすがに一気に全部やるのは怖いので ● AWS 移行しつつ、並行して PHP7 の準備をしました
  • 29. Copyright © GREE, Inc. All Rights Reserved. 1年でゲームを全部 AWS に移行した ● 2016年 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS
  • 30. Copyright © GREE, Inc. All Rights Reserved. 1年でゲームを全部 AWS に移行した SNS & ゲームプラットフォーム ブラウザゲーム & スマホゲーム 広告 メディア事業など オンプレ AWS ● 2017年
  • 31. Copyright © GREE, Inc. All Rights Reserved. 移行したサービス ● ブラウザゲーム ○ 密結合なものも含めて全て ● スマホ向けネイティブゲーム ○ ブラウザゲームで得たノウハウを活かして PHP Version Up も同時に ○ ネイティブ向けのゲームプラットフォームも ● ゲーム以外も ○ コーポレート、広告・メディア事業系のサイト 20を超えるサービス、数千台規模のサーバを AWS に移行
  • 32. Copyright © GREE, Inc. All Rights Reserved. どうやって移行したか? ● Direct Connect 使った ○ 事前に MySQL のレプリカを AWS 上に作る ■ AWS 側のレプリカを一台、オンプレのサービスに入れて クエリ検証やレスポンス速度等を確認 ● 密結合な内製ブラウザゲームの場合、プラットフォームがオンプレに残るので AWS からオンプレへのレスポンス速度も重要 ○ テスト用の別ドメインを AWS 側につけてテスト実施 ■ AWS からオンプレの本番 DB にアクセスして確認 ● 移行日の深夜メンテで切替 ○ MySQL マスタ切替 & DNS 切替 ○ 最終的な動作チェック
  • 33. Copyright © GREE, Inc. All Rights Reserved. 移行して良かったこと ● サーバ費用の削減 ○ 40% 近い削減を達成 ■ ハードウェア性能向上による負荷低減 ● サーバリソースの在庫調整が不要に ○ オンプレではサーバ増加における調達のために在庫が必要だった ● PHP5.5 に出来ていなかったサービスも完全移行 ○ オンプレに残っていたネイティブゲーム等
  • 34. Copyright © GREE, Inc. All Rights Reserved. AWS 移行で起きた問題 ● 深夜メンテを入れて移行できなかったのは最初の一回だけ ○ 原因は疎結合化を同時にやろうとしたことによるテスト不足 ● メンテ当日の準備不足 ○ テスト用端末がログインできないプロダクトがあり 当日慌てて対応した 大きなトラブルはほとんどなかった
  • 35. Copyright © GREE, Inc. All Rights Reserved. なぜ一年で数千台規模を移行できたのか ● 普通に PDCA 回した ○ 最初の移行ミスでプロジェクト並行する問題が把握できた ○ 事前にやる作業や修正を次の移行プロダクトに共有した ○ 負荷予測の精度も移行を経るごとに高くなった ● 円滑なコミュニケーション ○ PHPバージョンアップした時からの信頼関係 ○ 相互に仕組みを理解しているため話が早く 問題を早く検知しやすい ■ 認識齟齬などに問題も少なかった
  • 36. Copyright © GREE, Inc. All Rights Reserved. 今後のチャレンジ ● PHP7 on Xenial ○ 一部サービスでは導入を開始 ■ memcached への connection 数が改善 ■ cpu 負荷も半分程度に ● HTTP2 を使った通信の高速化 ● オンプレに残ったサービスのハイブリッドクラウド
  • 37. Copyright © GREE, Inc. All Rights Reserved. まとめ ● 強靭な意志でレガシーから抜け出せる ● 勝ち得たチームワークは次のチャレンジの大きな財産! ● パフォーマンスの改善はその副産物
  • 38. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 技術負債は 人的資源に変える 大きなチャンス!