AMIのバックアップをawscliで自動でとる
...こんにちは。OPSのほうの小宮です。
どうも社内で需要があるようだったのと、
javaよりpythonのツールが早いということで検索したけどawscliのは見つからなかったのでつくりました。
タグでとるとらない自動判定などはしておりません。bkup_numに世代数を指定すると複数世代とれるように直しました。
引数1にインスタンスID、引数2にホスト名を指定して実行する仕様です。
--no-rebootを付けてあるので稼働中のインスタンスが再起動されることはありません。
データ領域のEBSがあってもamiコマンドが勝手に複数とってくれるようだったので、
osデバイスかdataデバイスか判定してわかりやすいタグつけるようにしてみました。※※要注意※※
--no-rebootつけてAMIを取得する対象がMyISAMストレージエンジンのmysqlのDBサーバだった場合に、データが壊れて止まるという現象が発生しました。
InnoDBじゃない場合にどうしてもAMI取得したい時はメンテ推奨で止めてやるのがよいかと思われます。
※AWSでは無停止でのAMI取得に関するデータの整合性は保証しておりません。
参考URL:http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html
ということはストレージ系のサーバは気をつけたほうがよい(メンテ推奨)ようです。・awscliが入ってなければインストールする
入れ方参考:(入ってない場合はpip install awscliとする。pipはeasy_installで入れる)
AWS Command Line Tool Python版 | Developers.IO
pythonでeasy_install - ハネ@日記
AWS Command Line Interface(awscli)を使ってみた - 元RX-7乗りの適当な日々スクリプトから呼ぶAWSのアクセスキーとリージョンの設定ファイルを作っておきます。
[shell]# cat /root/.ec2/aws.config ———— [default] aws_access_key_id=<アクセスキーID> aws_secret_access_key=<シークレットアクセスキーID> region=ap-northeast-1 ————[/shell]
・コマンドの調査(いちおう載せておきます)
[shell]# aws ec2 copy-image help ———— copy-image DESCRIPTION Initiates the copy of an AMI from the specified source region to the region in which the request was made. リージョン間コピーなのでいま要らない。 ———— create-image Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. create-image [–dry-run | –no-dry-run] –instance-id–name [–description ] [–no-reboot | –reboot] [–block-device-mappings ] Command: Mondo Rescue使ってみました(その2)
...おはようございます。インフラの宮下です。
前回「Mondo Rescue」で取得したバックアップデータを使用して、レストアするまでを紹介します。
目次
はじめに
バックアップをとるまでは実行しますが、物理環境だとレストアまではなかなか検証する環境が無いので最初にしっかりとレストアしておくのが賢明だと思います。クラウドはその辺いいですね~♪
バックアップをNFS先に出力した方がMondo Rescueぽいですが、今回はネットワーク環境の都合と作業時間が限られていた為に
ローカル出力してDVDメディアからレストアする方法を選択しました。前回作成したしたisoイメージをDVDに書き込んでおきます。
DVDへの書き込みですが、私は昔からDeepBurnerを愛用しています。レストア実施
DVDメディアを挿入して、サーバを起動します。
mondoのOSが立ち上がってきたら「boot:」プロンプトが出てきますので下の中から方式を選択します。nuke 全自動でリストア。ただ見てるだけで終わります。元データは完全に消去されるので注意は必要。 interactive 対話形式でリストア。カスタマイズやNFS上のISOを指定する時に選択します。 expert シェルプロンプトを起動する。fdiskとかも実施する場合はこちらで。 [shell] boot: nuke [/shell]
今回は全て自動でレストアします。実際「nuke」を入力する以外に何もする事はありませんでした。
DVDメディア1枚(約4GB)なら30分もあればレストアまで完了しました。DVDドライブの書き込み速度が24倍速だと、全ての工程が1時間くらいで終わります。
今後の使い方ですが、ISOデータをAWSで保管するとか
クラウド上での利用方法(AMI作れるからプライベート上)とか
その他の商用ソフトとの比較も実施してみたいです。また、「Mondo Rescue」はUNIXに対応していないのでSolarisでufsdumpの他にもっと快適にできる
方法も探したいと思います。参考サイト
Mondo rescueを用いたシステムリカバリの方法
Mondo Rescueのバックアップデータをリストアするには
Mondo RescueMondo Rescue使ってみました(その1)
...おはようございます。インフラの宮下です。
最近クラウド環境でイメージ作成ばかりしていたので、たまにはオンプレミス環境で
フルバックアップも取得してみます。目次
1.はじめに
定常的にOSバックアップをとるという案件で無く更新作業の前にバックアップを取得する必要があり色々とバックアップツールを検討していました。商用の検証もいくつか実施したのですが、今回はオープンソースの「Mondo Rescue」というバックアップツールを使ってみたいと思います。
オープンソースを使う最大の理由は、コストと納期になりますね。計画的な案件であれば商用のバックアップツールの検討が最初になるかと思います。
「Mondo Rescue」を選択した点としましては、NFSマウント先にファイルが保管できさらにそこからレストアも可能という情報が最大の「それ魅力」です。また、メディアからレストアするのも簡単そう(実際に簡単)なのも良さげでした。2.環境
ロケーション:物理サーバ(富士通製) OS:Red Hat Enterprise Linux Server release 6.4
3.mondorescueのインストール
最初にmondorescueのリポジトリを追加します。
[shell] vi /etc/yum.repos.d/mondorescue.repo [mondorescue] name=rhel 6 x86_64 - mondorescue Vanilla Packages baseurl=ftp://ftp.mondorescue.org//rhel/6/x86_64 #baseurl=ftp://213.30.161.23//rhel/6/x86_64 enabled=0 gpgcheck=1 gpgkey=ftp://ftp.mondorescue.org//rhel/6/x86_64/mondorescue.pubkey #gpgkey=ftp://213.30.161.23//rhel/6/x86_64/mondorescue.pubkey [/shell]
準備完了と言う事でmondorescueリポジトリを使ってmondo resucue本体をインストールします。
[shell] # yum install mondo –enablerepo=mondorescue =================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================== Installing: mondo x86_64 3.0.4-1.rhel6 mondorescue 1.3 M Installing for dependencies: afio x86_64 2.5-1.rhel6 mondorescue 81 k buffer x86_64 1.19-4.rhel6 mondorescue 24 k mindi x86_64 2.1.7-1.rhel6 mondorescue 331 k mindi-busybox x86_64 1.18.5-3.rhel6 mondorescue 306 k syslinux x86_64 4.02-4.el6 mondorescue 855 k