Skip to content

Instantly share code, notes, and snippets.

@popowa
Last active December 16, 2015 16:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save popowa/5465026 to your computer and use it in GitHub Desktop.
Save popowa/5465026 to your computer and use it in GitHub Desktop.
# ★既存EC2にアクセスします。
aya:~ komuro$ ssh -i ~/keypair/komuro.pem root@ec2-54-248-188-197.ap-northeast-1.compute.amazonaws.com
___ _ __ __ ____ __
/ _ \ (_)___ _ / / / /_ / __/____ ___ _ / /___
/ , _// // _ `// _ \/ __/_\ \ / __// _ `// // -_)
/_/|_|/_/ \_, //_//_/\__//___/ \__/ \_,_//_/ \__/
/___/
Welcome to a virtual machine image brought to you by RightScale!
# ★上記利用しているディスクの容量などを確認します。
[root@ip-10-132-67-52 html]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/sda1 9.9G 2.1G 7.4G 22% /
/dev/sdb 147G 188M 140G 1% /mnt
none 851M 0 851M 0% /dev/shm
# ★上記利用しているEC2インスタンスのカーネルID/メモリIDを確認します。
# 参考: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html
[root@ip-10-132-67-52 html]# wget http://169.254.169.254/latest/meta-data/kernel-id
aki-e809a2e9
[root@ip-10-132-67-52 html]# wget http://169.254.169.254/latest/meta-data/ramdisk-id
ari-ba09a2bb
# ★EC2インスタンスが立ち上がっているアベイラビリティゾーン(AZ)と同じAZに、EBSボリュームを作成します。作成出来る単位はGiBです。
$ ec2-create-volume -s 10 -z <作成するAZの指定:例 ap-northeast-1a> --region ap-northeast-1
# ★EBSボリュームをアタッチします。
$ ec2-attach-volume <EBSボリュームID:例 vol-381x3d39> -i <アタッチしたいインスタンスID:例 i-a39973a1> -d <使用したいディバイス名:例 /dev/sdf>
# ★アタッチしたEBSを好きなファイルフォーマットにする(ここではEXT3)
[root@ip-10-132-67-52 ~]# mkfs -t ext3 /dev/sdf
mke2fs 1.39 (29-May-2006)
/dev/sdf is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
#★ファイルシステムのチェックを行うマウント回数を設定
[root@ip-10-132-67-52 ~]# tune2fs -c 0 /dev/sdf
tune2fs 1.39 (29-May-2006)
Setting maximal mount count to -1
#★EBS用ディレクトリを作成
[root@ip-10-132-67-52 ~]# mkdir /ebs
#★EBSをマウントする
[root@ip-10-132-67-52 ~]# mount /dev/sdf /ebs/
#★マウント出来たかどうか確認
[root@ip-10-132-67-52 ~]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/sda1 9.9G 2.1G 7.4G 22% /
/dev/sdb 147G 188M 140G 1% /mnt
none 851M 0 851M 0% /dev/shm
/dev/sdf 9.9G 151M 9.2G 2% /ebs
# ★データをEBSにコピーする
# ★必要なプロセスを止める(例えばApacheやMySQLなど)
[root@ip-10-132-67-52 ~]# service httpd stop 
httpd を停止中: [ OK ]
# ★ルートディレクトリ配下全て(/ebs除く)を全てコピー
[root@ip-10-132-67-52 ~]# rsync -avx --exclude /ebs / /ebs/
building file list ... done
# snip
# ★コピー一覧が表示....
sent 1767773417 bytes received 1536478 bytes 17094781.59 bytes/sec
total size is 1762776562 speedup is 1.00
# ★コピーされたかどうか確認
[root@ip-10-132-67-52 ~]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/sda1 9.9G 2.1G 7.4G 22% /
/dev/sdb 147G 188M 140G 1% /mnt
none 851M 0 851M 0% /dev/shm
/dev/sdf 9.9G 2.1G 7.4G 22% /ebs
[root@ip-10-132-67-52 ~]# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 10321208 2100560 7696360 22% /
/dev/sdb 153899044 192068 145889352 1% /mnt
none 870488 0 870488 0% /dev/shm
/dev/sdf 10321208 2104204 7692716 22% /ebs
# ★EBSをアンマウントする
[root@ip-10-132-67-52 ~]# umount /dev/sdf 
[root@ip-10-132-67-52 ~]# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 10321208 2100560 7696360 22% /
/dev/sdb 153899044 192068 145889352 1% /mnt
none 870488 0 870488 0% /dev/shm
# ★EBSをデタッチする(もしデタッチ出来なかった場合は -f を付ける事で強制的に取り外しが可能。-iは必須ではない)
$ ec2-detach-volume <EBSのボリュームID:例 vol-381x3d39> -i <アタッチしているインスタンスID:例 i-a39973a1>
# ★EBSからスナップショットを作成する
$ ec2-create-snapshot -d <説明文: "root device copy of i-a39973a1"> <EBSボリュームID:例 vol-381x3d39>
# ★AWS コマンドラインツールを使ってEBSのスナップショットからAMIに登録します。
$ ec2-register -n "AMIの名前" -d "説明文" -a i386 -root-device-name "/dev/sda1" -b "/dev/sdb=ephemeral0" -b "/dev/sdc=ephemeral1" --kernel <AKI-id> --ramdisk <ARI-id> -s <snapshot-id>
# ★例
$ ec2-register -n "komuro-redmine-ami" -d "redmine ami created on 201304" -a i386 -root-device-name "/dev/sda1" -b "/dev/sdb=ephemeral0" -b "/dev/sdc=ephemeral1" --kernel aki-e809a2e9 --ramdisk ari-ba09a2bb -s snap-ea7067c9
# 参考URL
# http://www.eaglegenomics.com/2011/05/how-to-convert-s3-instance-store-amis-to-ebs-amis/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment