Suche senden
Hochladen
Phpstudy98
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
3,373 views
Masanori Hayashi
Folgen
第98回PHP 勉強会 LT発表資料
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 28
Jetzt herunterladen
Empfohlen
Php blt-vol2
Php blt-vol2
Masanori Hayashi
Symfony meetup-7
Symfony meetup-7
Masanori Hayashi
フォロワーから友利奈緒を探す
フォロワーから友利奈緒を探す
jz5 MATSUE
「これはヤフオク!に機械学習を導入する男たちの戦いの物語である」#yjdsw4
「これはヤフオク!に機械学習を導入する男たちの戦いの物語である」#yjdsw4
Yahoo!デベロッパーネットワーク
Glt vol49
Glt vol49
Masanori Hayashi
ヤフオク!と機械学習#yjdsw1
ヤフオク!と機械学習#yjdsw1
Yahoo!デベロッパーネットワーク
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
Shuichiro Fukuoka
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
Masanori Hayashi
Empfohlen
Php blt-vol2
Php blt-vol2
Masanori Hayashi
Symfony meetup-7
Symfony meetup-7
Masanori Hayashi
フォロワーから友利奈緒を探す
フォロワーから友利奈緒を探す
jz5 MATSUE
「これはヤフオク!に機械学習を導入する男たちの戦いの物語である」#yjdsw4
「これはヤフオク!に機械学習を導入する男たちの戦いの物語である」#yjdsw4
Yahoo!デベロッパーネットワーク
Glt vol49
Glt vol49
Masanori Hayashi
ヤフオク!と機械学習#yjdsw1
ヤフオク!と機械学習#yjdsw1
Yahoo!デベロッパーネットワーク
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
THETA S + Raspberry pi 2でライブストリーミングしてみた(続)
Shuichiro Fukuoka
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
Masanori Hayashi
MS MATRIX STRATEGY
MS MATRIX STRATEGY
You&I
ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)
You&I
それはコトだ
それはコトだ
You&I
実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜
takemi.ohama
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
Kentaro Suzuki
いまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホン
dsuke Takaoka
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
Masanori Hayashi
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
Masanori Hayashi
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
Masanori Hayashi
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Masanori Hayashi
Glt vol48
Glt vol48
Masanori Hayashi
ボトルネックを解消せよ
ボトルネックを解消せよ
Masanori Hayashi
Glt vol47
Glt vol47
Masanori Hayashi
PHP framework Phalcon
PHP framework Phalcon
Masanori Hayashi
俺的世界で一番暑い夏
俺的世界で一番暑い夏
Masanori Hayashi
Soft bank ssl仕様変更について
Soft bank ssl仕様変更について
Masanori Hayashi
20081120 lt11th ace
20081120 lt11th ace
Masanori Hayashi
Weitere ähnliche Inhalte
Ähnlich wie Phpstudy98
MS MATRIX STRATEGY
MS MATRIX STRATEGY
You&I
ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)
You&I
それはコトだ
それはコトだ
You&I
実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜
takemi.ohama
「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 STRATEGY
ECMA-376の活用を考える(XLSX編)
ECMA-376の活用を考える(XLSX編)
それはコトだ
それはコトだ
実践的! 人工知能X機械学習 〜iettyの場合〜
実践的! 人工知能X機械学習 〜iettyの場合〜
「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
Masanori Hayashi
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
Masanori Hayashi
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
Masanori Hayashi
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Masanori Hayashi
Glt vol48
Glt vol48
Masanori Hayashi
ボトルネックを解消せよ
ボトルネックを解消せよ
Masanori Hayashi
Glt vol47
Glt vol47
Masanori Hayashi
PHP framework Phalcon
PHP framework Phalcon
Masanori Hayashi
俺的世界で一番暑い夏
俺的世界で一番暑い夏
Masanori Hayashi
Soft bank ssl仕様変更について
Soft bank ssl仕様変更について
Masanori Hayashi
20081120 lt11th ace
20081120 lt11th ace
Masanori Hayashi
Mehr von Masanori Hayashi
(11)
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Glt vol48
Glt vol48
ボトルネックを解消せよ
ボトルネックを解消せよ
Glt vol47
Glt vol47
PHP framework Phalcon
PHP framework Phalcon
俺的世界で一番暑い夏
俺的世界で一番暑い夏
Soft bank ssl仕様変更について
Soft bank ssl仕様変更について
20081120 lt11th ace
20081120 lt11th ace
Phpstudy98
1.
AWSの最果てを見た日 第98回PHP勉強会 2016.01.27 林 正紀 @m_norii
2.
About me • 林
正紀 (HAYASHI Masanori) • 1974年09月12日生 (41歳) • 埼玉生まれ埼玉育ち埼玉ふじみ野在住 • 埼玉大学/大学院・数学専攻 • 埼玉土着エンジニア • EMTG 所属 • @m_norii • http://norii.hatenablog.com/ • https://www.facebook.com/m.norii
3.
http://emtg.co.jp/archives/2975 http://theyellowmonkeysuper.jp/
4.
TYMS検定 • アーティストに関するクイズを50問出題 • 回答時間は30分間 •
成績優秀者には、アーティストノベルティのプ レゼントの他、SNS運営ボランティアになれる かも
5.
画面構成 TYMS検定 Q1 ・・・・・・ ○ 選択肢1 ○
選択肢2 ○ 選択肢3 Q2 ・・・・・・ ○ 選択肢1 ○ 選択肢2 ○ 選択肢3 Q50 ・・・・・ ○ 選択肢1 ○ 選択肢2 ○ 選択肢3 回答を送信 TYMS検定 回答を受け付けました ご参加ありがとうござい ました。 DBへ登録
6.
ビジネス面での要件 • ボランティアスタッフ募集については、 この検定のあと、全国で面接を行う日程も決 まっているため、やり直しが効かない 絶対に落とすわけにいかない • 各種メディアにも露出しているので、実施当日 は相当のアクセス集中が予想される
7.
技術面で取った戦略 • 限定30分間企画なので、ショットでこの企画 専用の最強サーバ群を構成する • 当然終わったら即削除 •
プログラム処理はとにかく無駄を排除。軽く。 • DBも回答データは1カラムでJSON化して保存 • 回答の分析は企画終わってからやればいいので • 万一DBに保存できない時のためにローカル ディスクにも回答保存 • それでも落ちた場合用にメールでの投稿受付も 準備
8.
テーブル定義 • 回答データは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;
9.
投稿データ登録プログラム(抜粋) <?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');
10.
サーバ構成 暖気申請 Failover時は S3静的ホスティングで メール投稿で受付け R3.4xlarge 10台 16 vCPU メモリ122GiB Db.m4.10xlarge 40
vCPU メモリ160GiB
11.
12.
結果 • 企画は30分間、滞り無く完了 • Web、DBとも負荷は余裕でさばいた
13.
しかし実はその裏で AWSの最果てを見た男がいた
14.
17:00 専用環境構築開始 19:00 RDSを検証用のスペックから
db.m4.10xlarge へ変更 20:00 ????????????? 20:30 ????????????? 21:00 ????????????? 22:00 すべてのサーバ設置完了 23:00 TYMS検定開始 当日のタイムテーブル
15.
RDSインスタンスクラス変更 変更中
16.
1時間後
17.
変更中
18.
変わってない… ネットで調べる限り インスタンスクラス変更は5分程度で終わるはずなのに・・・
19.
AWSサポートに問い合わせる
20.
17:00 専用環境構築開始 19:00 DBサーバを検証用のスペックから
db.m4.10xlarge へ変更 20:00 DBサーバのスペックアップが完了しないため、 AWSサポートへ連絡 20:30 ???????????????????? 21:00 ???????????????????? 22:00 すべてのサーバ設置完了 23:00 TYMS検定開始
21.
30分後 AWSサポートから 回答がきた
22.
23.
キャパシティ枯渇
24.
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検定開始
25.
スナップショットから復元 • とのことなので、スナップショットから db.r3.8xlargeに変更して復元
26.
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検定開始
27.
教訓 • AWSといえど、リソースは無限じゃない • ショットでサーバ強くするにしても 最低でも1日前から準備したほうが身のため •
AWSサポートには入っとけ (本当にありがとうございました)
28.
エンジニア募集中! http://emtg.co.jp/recruit
Jetzt herunterladen