初めまして、女子エンジニアの貴子です。
これからAWSについて、9月まで毎月一回更新していきますので、お付き合いくれると嬉しいです。
内容としては、AWSのクラウドデザインパターンを読んで、
実際にインスタンスを作成して学んだことを書いていきます。
EC2のSnapshot作成について
AWSではEC2のSnapshotをEBS単位で作成します。
作成したSnapshotからは、EC2イメージ・ESBボリュームのリストアが簡単にでき、
非常に便利な機能です。
※EC2(Elastic Compute Cloud)とはAmazonのサービスの一つで、
クラウド内で自在に規模を変更できるコンピューティング(仮想サーバー)のこと。
※EBS(Amazon Elastic Block Store)とは、EC2のブロックレベルのストレージボリュームのこと。
・手動で行う場合
AmazonのGUIから、サイドメニューにある【Snapshots】から【Create Snapshot】をクリックし、
Volume名等必要な上場を入力してcreateを押すと作成できます。
・aws-cliを利用して、自動で行う場合
先ほど手動で作成したSnapshotは自動でもAmazonコマンドツール(aws-cli)を使って
cronで設定すれば出来ます。
今回はAmazonLinuxをインストールしたサーバー上に、aws-cliの設定を行います。
aws-cliの設定
1.AWSのGUIから、アクセスキーとセキュリティキーを取得します
2.サーバーにログインし、下記コマンドを入力します
コマンド | aws configure |
一行づつ 入力していく |
AWS Access Key ID [None]:*************** |
3.【aws ec2 describe-instances】を叩いて、データが取得できれば設定完了です
4.コマンドを叩いてSnapshotが取得できるか試してみましょう
volume-idは各自変更して下さい
コマンド | aws ec2 create-snapshot --volume-id vol-ff8b57f9 |
結果 | { "Description": null, "Encrypted": false, "VolumeId": "vol-ff8b57f9", "State": "pending", "VolumeSize": 8, "Progress": null, "StartTime": "2014-06-23T02:09:22.000Z", "SnapshotId": "snap-9345d873", "OwnerId": "998591395404" } |
作成されたか確認します
コマンド | |
結果 | "VolumeId": "vol-ff8b57f9", |
作成できていますね!
shell作成
先ほど手動で叩いたコマンドを、シェルでも実行できるようにします
コマンド | vi snapshot.sh |
エディタに記入 | #コピーしたいEC2インスタンス名指定 #東京リージョンのボリュームID取得 #Snapshotを取りたいEC2に紐づくESBボリュームID取得 #Snapshot作成処理 for snapshot_volume_id in $snapshot_volume_ids; do if [ $var = $snapshot_volume_id ] then aws ec2 create-snapshot --volume-id $var fi done done |
あとはcronに設定するだけです。
00 05 * * 0 /opt/aws/snapshot.sh |
これで一週間に一度、日曜日の午前5時に自動でSnapshotが作成されます。
・意識して作成していないのに出来ていた場合
EC2のimageをコピーをするとAMIが作成されます。
※AMIとはAWSで使用できるLinux のイメージのこと
AMIからサーバーを作成すると、自動でSnapshotが作成されます。
私はこの仕組を知らなくて、たくさんのSnapshotを意識せずに作ってしまっていました(´・ω・`)
AMIから作成されたSnapshotは、現在使用中のEC2のものなので、EC2を削除しない限り消せません。
まとめ
Snapshotは、AmazonのGUIからでもコマンドツールからでも作成できます。
コマンドツールを応用すれば、自動でSnapshotを取ることも可能です。
AMIのイメージからEC2インスタンスを作成すると、同時にSnapshotも作成されます。
感想
今回はSnapshotについて記載させていただきました。
こんなに簡単にSnapshotがとれるなんて、クラウドって本当に便利ですね。
その分デメリットもたくさんありますが。
自動でSnapshotを取って、サーバーのバックアップが取れるところも
いつ故障してもすぐにロールバックが出来るので、いかしていますよね!