0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【小ネタ/Tips】天文学的確率の「UUID重複」をAWS上で意図的に引き起こす方法 〜EBSボリュームクローン〜

0
Posted at

【導入文】
こんにちは。社内システムのクラウド化を支援している「僕」です。
ハードウェアを愛する半導体エンジニアの「妻」にAWSを語るこのシリーズ。今回は番外編として、少しマニアックなAWSの小ネタ(Tips)について妻と話した日の会話をお届けします。


1. 【プロローグ】絶対に被らないはずの「UUID」

僕: 「ねえ、Linuxとかのシステムで使われる『UUID』って知ってる?」

妻: 「U…何? UV(紫外線)の仲間? また新しい極端紫外線(EUV)露光装置の規格でも出たの?」

僕: 「違う違う。Universally Unique Identifierの略で、世界中で絶対に被らないように割り当てられるIDのこと。128ビットの数値でできてて、毎秒何億個生成しても、宇宙の寿命が終わるまで重複しないって言われてるんだ。」

妻: 「なるほどね。うちの工場でも、ウェハー上のチップ一つ一つにレーザーで固有のシリアル番号を入れているわ。万が一それが重複したら、不良品のトレースができなくなって大惨事よ。で、その絶対被らないはずのIDがどうかしたの?」

僕: 「実は今、AWSの環境なら、ある手順を踏むだけでこの『天文学的確率』のUUID重複を100%意図的に引き起こすことができるんだ。今日はそのTipsを紹介するよ!」

妻: 「……また変な遊びを見つけたわね。どうせAWSの新しい機能の落とし穴(罠)なんでしょ?」

2. 【Tipsのタネ明かし】「EBSボリュームクローン」

僕: 「その通り! 種明かしをすると、最近アップデートされた**『EBSボリュームクローン』**っていう機能を使うんだ」

妻: 「EBSって、あの外付けハードディスクみたいなやつよね。」

僕: 「そう。これまでEBSを複製するには、一度スナップショット(バックアップ)を取ってから復元する必要があったんだけど、新機能のおかげで『同じデータセンター(AZ)内なら瞬時にクローンを作成』できるようになったんだ。裏側で初期化しつつ、一瞬で使い始められる。」

妻: 「へえ。フォトマスク(回路の原版)からウェハーに一瞬でパターンを転写するみたいなものね。完全に同じ物理構造のコピーができると。」

3. 【実践Tips】UUID重複エラーを発生させる手順

僕: 「まさに完全コピーなんだ。だからこんな罠ができる。手順はこうだよ。」

  1. ソースボリュームの準備:EC2(サーバー)に、暗号化されたEBSボリュームをつなぐ(※未暗号化はクローンできない仕様)。
  2. データの書き込み:XFSっていう形式でフォーマットして、ダミーデータを入れておく。
  3. 爆速クローン作成:画面から対象を選んで「ボリュームをコピー」をポチる。一瞬で「使用可能」なクローンが誕生!
  4. 同じEC2にマウント(罠の発動):そのクローンを、元のボリュームが繋がってるのと「同じEC2」に繋ぐ。

妻: 「ちょっと待って。完全に同じデータをコピーしたってことは、その『絶対に被らないはずの刻印(UUID)』も丸ごとコピーされてるわよね? それを同じマシンに繋ぐって……」

僕: 「ご名答! ターミナルからマウント(読み込み)コマンドを実行すると……見事に失敗! ログには期待通り**『UUIDが重複している』**ってエラーが出るんだ。」

4. 【解説と解決策】なぜ重複したのか?

妻: 「そりゃパニックになるわよ! OSから見たら『全く同じシリアル番号が刻印されたチップ』が同時に2つ基板に挿さったようなものでしょ。物理世界なら偽造品を疑ってアラーム鳴らしてライン停止よ。」

僕: 「ハードウェアの例えが秀逸すぎる(笑)。EBSボリュームクローンは、ファイルシステムや内部のメタデータ(UUID含む)まで1ミリの狂いもなくコピーするから、同一マシンに繋ぐと100%このエラーを踏むんだ。」

妻: 「で、どうするの? 物理チップなら一回焼き込んだシリアルは絶対に変えられないけど。」

僕: 「そこはソフトウェアのいいところでね。OS側でUUIDを再発行すればいいんだ。XFSの場合は、一度アンマウントして xfs_admin -U generate コマンドを叩けば、クローン側のUUIDが強制的に振り直されて使えるようになるよ。」

妻: 「コマンド一つで刻印を書き換えられるのね……。ソフトウェアの柔軟性、ちょっと羨ましいわ。」

5. 【お片付け】クローンの課金に注意

僕: 「UUID重複も体験できたし、満足満足」

妻: 「ちょっと待って、これお金はどうなってるの? ただのコピーなら安いの?」

僕: 「それが注意点なんだ。クローン操作時に**『ソースボリュームに書き込まれていたデータ量』に応じて1回限りのコピー料金($0.00080/GBなど)**がかかる。さらに、出来上がったクローンボリューム自体にも『通常のEBS月額料金』が満額かかるんだよ。」

妻: 「はあ!? 満額!? ちょっと実験で1個コピーしただけで、全く新しいハードディスクを1台買ったのと同じ固定費(OpEx)が乗ってくるってこと!?」

僕: 「そ、そうなるね……」

妻: 「悠長に『満足満足』とか言ってる場合じゃないわよ! 検証が終わったら、EC2も元ボリュームもクローンも、今すぐ即座に削除(Terminate)しなさい! あっという間に我が家のクラウド破産(お小遣い枯渇)よ!」

僕: 「ひえっ! す、すぐ消します!」

【結びの文】
検証環境の爆速複製にとても便利なEBSボリュームクローン機能ですが、「同一インスタンスへのマウント時のUUID重複」と、妻の逆鱗に触れる「お片付け忘れによる課金」には十分ご注意ください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?