概要
複数のEC2インスタンスが同じホストに同居しているか調べる。
現在EC2には物理的に分離されたホストを調達する機能 Dedicated Host があるが、今回はこの機能を用いる。
検証内容
インスタンスA、Bの2インスタンスを立ち上げ、インスタンスA側のテストデータに値を書き込み、その値をインスタンスBから上書きできるか検証する。
検証手順
- 専用ホストを取得して、同一ホスト上にインスタンスA、Bを立ち上げる。
- インスタンスA、Bに下記等から必要なツールをインストールし、設定する(設定は割愛するが、需要があれば後日)。
- (インスタンスA上)自身のdata配下に対する読み書きを許可する。
#/usr/local/bin/xenstore-chmod -r /local/domain/[instanceA domid]/data b[instanceA domid]
- (インスタンスA上)共有データにテストデータを書き込む。
#/usr/local/bin/xenstore-write data/hashimoto_kanna "once in 100"
- (インスタンスB上)インスタンスAの共有データ確認する。
#/usr/local/bin/xenstore-read /local/domain/[instanceA domid]/data/hashimoto_kanna
once in 100
- (インスタンスB上)インスタンスBからインスタンスAの共有データを上書きする。
#/usr/local/bin/xenstore-write /local/domain/[instanceA domid]/data/hashimoto_kanna "once in 1000"
- (インスタンスA上)インスタンスAによって上書きされた共有データの値を確認する。
#/usr/local/bin/xenstore-read data/hashimoto_kanna
once in 1000
#/usr/local/bin/xenstore-ls /local/domain/[instanceA domid] | grep kanna
hashimoto_kanna = "once in 1000"
まとめ
同居するインスタンスのデータを書き換えることができた。
今回はDedicated Hostを用いた検証であったが、インスタンスの名前とかIDとかのユニークっぽいキーとdomidを使って社内で利用しているインスタンス全部をデータベース化しておけば、各インスタンス間の同居ホスト情報がまとめられるかもしれない。