📝

ECS on EC2 のインスタンスにボリュームを追加してみた

に公開

EC2 インスタンス A のボリュームを EC2 インスタンス B に追加してみました。

前提

  • ecsInstanceRole には AdministratorAccess 権限を付与

手順概要

  1. ECS クラスター作成
  2. EC2 インスタンス A にテストデータ作成
  3. EC2 インスタンス A のボリュームからスナップショットを作成
  4. スナップショットからボリュームを作成
  5. EC2 インスタンス B にボリュームをアタッチ
  6. EC2 インスタンス B でデータを確認

1. ECS クラスター作成

  • インフラストラクチャ: Amazon EC2 インスタンス
  • 必要な容量: 最小 2, 最大 2

上記以外はデフォルト設定で作成しました。

2. EC2 インスタンス A にテストデータ作成

EC2 インスタンスに接続してテストデータを作成します。
今回はセッションマネージャーで接続しました。

$ cd ~
$ mkdir -p ~/test-data
$ echo "Hello from Instance A!" > ~/test-data/message.txt
$ echo "Created on $(date)" >> ~/test-data/message.txt

3. EC2 インスタンス A のボリュームからスナップショットを作成

デフォルト設定でスナップショットを作成します。

4. スナップショットからボリュームを作成

EC2 インスタンス B の AZ と同じ AZ にボリュームを作成します。

5. EC2 インスタンス B にボリュームをアタッチ

EC2 インスタンス B に新しいボリュームをアタッチします。

6. EC2 インスタンス B でデータを確認

EC2 インスタンス B に接続してデータを確認します。

# アタッチされたディスクを確認
$ lsblk

# マウントポイントを作成
$ sudo mkdir -p /mnt/instance-a-data

# XFS ツールをインストール
$ sudo yum install -y xfsprogs

# ファイルシステムを修復(ログ破棄)
$ sudo xfs_repair -L /dev/nvme1n1p1

# 重複 UUID を解決するため新しい UUID を生成
$ sudo xfs_admin -U generate /dev/nvme1n1p1

# ボリュームをマウント
$ sudo mount -t xfs /dev/nvme1n1p1 /mnt/instance-a-data

# マウント成功確認
$ df -h | grep instance-a-data

# インスタンス A で作成したテストデータを確認
$ cat /mnt/instance-a-data/home/ssm-user/test-data/message.txt
Hello from Instance A!
Created on Wed Jul 30 05:13:58 UTC 2025

インスタンス A で作成したテストデータをインスタンス B で確認できました。

まとめ

今回は ECS on EC2 のインスタンスにボリュームを追加してみました。
どなたかの参考になれば幸いです。

Discussion