SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Similar a 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
 

Similar a 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版)
 
いまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホンいまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホン
 

Más de 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
 

Más de 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
 

Último

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Último (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Phpstudy98