SlideShare ist ein Scribd-Unternehmen logo
1 von 28
AWSの最果てを見た日
第98回PHP勉強会
2016.01.27
林 正紀 @m_norii
About me
• 林 正紀 (HAYASHI Masanori)
• 1974年09月12日生 (41歳)
• 埼玉生まれ埼玉育ち埼玉ふじみ野在住
• 埼玉大学/大学院・数学専攻
• 埼玉土着エンジニア
• EMTG 所属
• @m_norii
• http://norii.hatenablog.com/
• https://www.facebook.com/m.norii
http://emtg.co.jp/archives/2975
http://theyellowmonkeysuper.jp/
TYMS検定
• アーティストに関するクイズを50問出題
• 回答時間は30分間
• 成績優秀者には、アーティストノベルティのプ
レゼントの他、SNS運営ボランティアになれる
かも
画面構成
TYMS検定
Q1 ・・・・・・
○ 選択肢1
○ 選択肢2
○ 選択肢3
Q2 ・・・・・・
○ 選択肢1
○ 選択肢2
○ 選択肢3
Q50 ・・・・・
○ 選択肢1
○ 選択肢2
○ 選択肢3
回答を送信
TYMS検定
回答を受け付けました
ご参加ありがとうござい
ました。
DBへ登録
ビジネス面での要件
• ボランティアスタッフ募集については、
この検定のあと、全国で面接を行う日程も決
まっているため、やり直しが効かない
絶対に落とすわけにいかない
• 各種メディアにも露出しているので、実施当日
は相当のアクセス集中が予想される
技術面で取った戦略
• 限定30分間企画なので、ショットでこの企画
専用の最強サーバ群を構成する
• 当然終わったら即削除
• プログラム処理はとにかく無駄を排除。軽く。
• DBも回答データは1カラムでJSON化して保存
• 回答の分析は企画終わってからやればいいので
• 万一DBに保存できない時のためにローカル
ディスクにも回答保存
• それでも落ちた場合用にメールでの投稿受付も
準備
テーブル定義
• 回答データは1カラムにJSON化して保存
CREATE TABLE `certification` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`answer` mediumtext NOT NULL COMMENT '回答',
`created_time` datetime NOT NULL COMMENT '作成日',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
投稿データ登録プログラム(抜粋)
<?php
$answer = json_encode($_POST);
//ログへ書き込み
list($usec, $timestamp) = explode(' ', microtime());
$logPath = sprintf('%s%s%s.txt', LOG_DIR, date('YmdHis', $timestamp), substr($usec,
2));
file_put_contents($logPath, $answer . PHP_EOL);
//DBへ書き込み
$dsn = sprintf('mysql:dbname=%s;host=%s', DB_NAME, DB_HOST);
$sql = sprintf("INSERT INTO %s (answer, created_time) VALUES
(:answer , :created_time)", TABLE_NAME);
try {
$pdo = new PDO($dsn, DB_USER, DB_PASS);
$stmt = $pdo->prepare($sql);
$stmt->execute([':answer' => $answer, ':created_time' => date('Y-m-d H:i:s',
$timestamp)]);
} catch (Exception $e){
file_put_contents(ERROR_LOG_PATH, $e->getMessage() . PHP_EOL, FILE_APPEND);
}
//受付完了ページへリダイレクト
header('Location: https://example.com/done');
サーバ構成
暖気申請
Failover時は
S3静的ホスティングで
メール投稿で受付け
R3.4xlarge 10台
16 vCPU
メモリ122GiB
Db.m4.10xlarge
40 vCPU メモリ160GiB
結果
• 企画は30分間、滞り無く完了
• Web、DBとも負荷は余裕でさばいた
しかし実はその裏で
AWSの最果てを見た男がいた
17:00 専用環境構築開始
19:00 RDSを検証用のスペックから db.m4.10xlarge へ変更
20:00 ?????????????
20:30 ?????????????
21:00 ?????????????
22:00 すべてのサーバ設置完了
23:00 TYMS検定開始
当日のタイムテーブル
RDSインスタンスクラス変更
変更中
1時間後
変更中
変わってない…
ネットで調べる限り
インスタンスクラス変更は5分程度で終わるはずなのに・・・
AWSサポートに問い合わせる
17:00 専用環境構築開始
19:00 DBサーバを検証用のスペックから db.m4.10xlarge へ変更
20:00 DBサーバのスペックアップが完了しないため、
AWSサポートへ連絡
20:30 ????????????????????
21:00 ????????????????????
22:00 すべてのサーバ設置完了
23:00 TYMS検定開始
30分後
AWSサポートから
回答がきた
キャパシティ枯渇
17:00 専用環境構築開始
19:00 DBサーバを検証用のスペックから db.m4.10xlarge へ変更
20:00 DBサーバのスペックアップが完了しないため、
AWSサポートへ連絡
20:30 AWSから「db.m4.10xlargeのリソース枯渇」の連絡
21:00 ????????????????????
22:00 すべてのサーバ設置完了
23:00 TYMS検定開始
スナップショットから復元
• とのことなので、スナップショットから
db.r3.8xlargeに変更して復元
17:00 専用環境構築開始
19:00 DBサーバを検証用のスペックから db.m4.10xlarge へ変更
20:00 DBサーバのスペックアップが完了しないため、
AWSサポートへ連絡
20:30 AWSから「db.m4.10xlargeのリソース枯渇」の連絡
21:00 検証DBのスナップショットから復元、
db.r3.8xlargeで再立ち上げ
22:00 すべてのサーバ設置完了
23:00 TYMS検定開始
教訓
• AWSといえど、リソースは無限じゃない
• ショットでサーバ強くするにしても
最低でも1日前から準備したほうが身のため
• AWSサポートには入っとけ
(本当にありがとうございました)
エンジニア募集中!
http://emtg.co.jp/recruit

Weitere ähnliche Inhalte

Ähnlich wie Phpstudy98

ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)You&I
 
実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜takemi.ohama
 
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)Kentaro Suzuki
 
いまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホンいまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホンdsuke Takaoka
 

Ähnlich wie Phpstudy98 (6)

MS MATRIX STRATEGY
MS MATRIX STRATEGYMS MATRIX STRATEGY
MS MATRIX STRATEGY
 
ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)
 
それはコトだ
それはコトだそれはコトだ
それはコトだ
 
実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜
 
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
 
いまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホンいまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホン
 

Mehr von Masanori Hayashi

「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018Masanori Hayashi
 
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな  - レガシー感謝の日人のレガシーを笑うな  - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日Masanori Hayashi
 
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravelMasanori Hayashi
 
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習Masanori Hayashi
 
ボトルネックを解消せよ
ボトルネックを解消せよボトルネックを解消せよ
ボトルネックを解消せよMasanori Hayashi
 
俺的世界で一番暑い夏
俺的世界で一番暑い夏俺的世界で一番暑い夏
俺的世界で一番暑い夏Masanori Hayashi
 
Soft bank ssl仕様変更について
Soft bank ssl仕様変更についてSoft bank ssl仕様変更について
Soft bank ssl仕様変更についてMasanori Hayashi
 

Mehr von Masanori Hayashi (11)

「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
 
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな  - レガシー感謝の日人のレガシーを笑うな  - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
 
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
 
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
 
Glt vol48
Glt vol48Glt vol48
Glt vol48
 
ボトルネックを解消せよ
ボトルネックを解消せよボトルネックを解消せよ
ボトルネックを解消せよ
 
Glt vol47
Glt vol47Glt vol47
Glt vol47
 
PHP framework Phalcon
PHP framework PhalconPHP framework Phalcon
PHP framework Phalcon
 
俺的世界で一番暑い夏
俺的世界で一番暑い夏俺的世界で一番暑い夏
俺的世界で一番暑い夏
 
Soft bank ssl仕様変更について
Soft bank ssl仕様変更についてSoft bank ssl仕様変更について
Soft bank ssl仕様変更について
 
20081120 lt11th ace
20081120 lt11th ace20081120 lt11th ace
20081120 lt11th ace
 

Phpstudy98