Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JAWS-UG朝会_41_NakagawaAkihiro.pptx.pdf
Search
sam
January 17, 2023
Technology
2
1.2k
JAWS-UG朝会_41_NakagawaAkihiro.pptx.pdf
sam
January 17, 2023
Tweet
Share
More Decks by sam
See All by sam
20210422-JAWS-UG朝会-中川皓紘
anakagawa
0
140
20210407-ヤマムギvol.12-中川皓紘
anakagawa
0
250
Other Decks in Technology
See All in Technology
ここがすごいよ! AWS Systems Manager!
saichan11
0
1.8k
運用改善、不都合な真実 / 20240722-ssmjp-kaizen
opelab
17
8.4k
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
[NIKKEI Tech Talk] KDDI/KAG Scrum & Community for Engineering Training
curanosuke
2
220
サーバーレスAPI(API Gateway+Lambda)とNext.jsで 個人ブログを作ろう!
shuntaka
PRO
0
560
Classmethod Odyssey 登壇資料
yamahiro
0
390
ギークの理想が7つ集まるエムスリーで夢を叶えよう - エムスリー株式会社
m3_engineering
1
260
Android研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
100
簡単に始めるSnowflakeの機械学習
nayuts
1
190
さらに高品質・高速化を目指すAI時代のテスト設計支援と、めざす先 / AI Test Lab vol.1
shift_evolve
0
190
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
25
6.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
129
32k
Building Adaptive Systems
keathley
34
2k
Speed Design
sergeychernyshev
9
270
How to name files
jennybc
67
96k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Scaling GitHub
holman
458
140k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Facilitating Awesome Meetings
lara
46
5.8k
Transcript
EC2にてDisk枯渇が発生した場合に何が 起きるのかと対応方法 ハンズラボ株式会社ハンズ事業部CRMグループSREチーム 中川皓紘 2023年01月17日 ハンズラボ株式会社 1
自己紹介 2 名前:中川皓紘(Nakagawa Akihiro) 経歴:2020/12 ~ ハンズラボ株式会社勤務 出身地:神奈川県 Twitter:@sam_eng3336 趣味:カメラ,
旅行, 技術検証, 最近リモワで太ったのでダイエット中 etc… ※写真はイメージです
早速本題へ! 3 皆様はDiskの管理や監視をしていますか!?
障害対応フロー(起動できる場合) 4 EC2へ接続できる場合 ・SSHで接続 ・SystemsManagerで接続 ・シリアルコンソールで接続 EC2へ接続できない場合 ・再起動 ・ユーザーデータによる対応 ・起動できないパターン時の対応など
Tips EBSの残容量を増やす方法に拡張という 選択肢があるがAL2の場合コマンドで パーティションを変更する必要があるので こういった場合には使いにくい
障害対応フロー(起動できない場合) 5 Step1 ・起動確認 ・CloudWatchのメトリックス等確認 ・Disk監視等あれば状況確認 Step2 ・障害中EC2インスタンスの停止 ・EBSのデタッチ ・復旧用EC2インスタンスにアタッチ
・復旧作業 Step3 ・復旧させたEBS Aを元のEC2へア タッチし直す ・起動テスト
6 一番汎用的に対応できそうなこのパタ ーンを検証してみた
EC2インスタンスを使って検証 7 これによりDisk枯渇状態を再現できた! ・現在のDisk残容量を確認 ・約6.5GBの残容量がある ・残容量不足を再現するために 6.6GBのファイルを作成する ・No space left
no deviceの警告が出ている ・Disk残容量0%状態になっていることを確認
障害を意図的に起こす 8 Disk枯渇状態から再起動実施 Diskが足りずOSが起動できない or ミドルウェアが立ち上がらない ・起動不可 ・起動はできるがセッションマネージャで接続できない
復旧手順(AWSコンソール上での作業) 9 Step1 障害を起こしたEC2インスタンスからEBSをデタッチ ※EC2は予め停止しておく Step2 復旧用EC2インスタンスに先程デタッチした EBSをアタッ チする Step3
復旧用EC2インスタンスを起動する
復旧手順(EC2内部での作業) 10 dfコマンドにてDisk状態を確認 ↓ 新規でアタッチしたEBSはマウントされない ・「sdf1」でアタッチしたが、インスタンス内部では「xvdf1」でアタッチされている ・そのまま「/dev/xvdf1」を「/mnt/ebs」にマウントを実施 ↓ ・エラーが発生してマウントできない
復旧手順(EC2内部での作業) 11 ・「/var/log/messages」にてエラー原因を確認 ・DiskのUUIDが重複しマウント不可になっている 「blkid」でDiskのUUIDを確認すると競合してることが確認できる
復旧手順(EC2内部での作業) 12 「mount」コマンドのオプション「 -o nouuid」を設定 ※今回は一時的なマウントなので UUIDの競合を無視
復旧手順(EC2内部での作業) 13 ・「du」コマンドで先程マウントした「 /mnt/ebs/*」内部のDiskを精査 ・今回作成したダミーファイルを確認 ・削除後Disk残容量を確認 Disk残容量が危険域から脱したので元の EBSへ再アタッチを実施する
復旧手順(EC2内部での作業) 14 ・復旧用EC2の「停止」を実行 ・復旧用EC2から対象のEBSをデタッチし元のEC2へアタッチ ・障害を起こしていたEC2を起動 ・EC2内部へ接続しDisk残容量を再度確認する
復旧手順(EC2内部での作業) 15 ・「du」コマンドで先程マウントした「 /mnt/ebs/*」内部のDiskを精査 ・今回作成したダミーファイルを確認 ・削除後Disk残容量を確認 無事復旧!
Copyright © All rights reserved. 製作者:中川皓紘 お わ り