月別アーカイブ: 2012年3月

Windows サーバのバックアップをrobocopyで行う。


夜桜



※写真と本文は関係ありません。(桜は去年の桜です)


久しぶりで忘れてたので書いておく。

robocopyでフォルダをバックアップ/同期させる – @IT

を参考にスクリプトを書いた。

『backup.bat 1 』と引数を指定すると、それぞれの曜日別のフォルダにフォルダにバックアップが作成される。

今回の例だと。
コマンド『backup.bat 1 』→『E:¥共有disk¥』を『F:¥backup¥1¥共有disk¥』と1番のディレクトリにバックアップ=月曜日のバックアップ
コマンド『backup.bat 2 』→『E:¥共有disk¥』を『F:¥backup¥2¥共有disk¥』2番=火曜日

バックアップログを『F:¥backup¥backup.log』に追記方式で追記する。


@echo off
rem 引数が必要
rem 引数のフォルダ名にバックアップを作成
rem F:¥backup¥%1¥共有disk¥
echo start backup
if "%1" == "" (
echo err 引数がありません
pause
exit
) else (
robocopy /mir /copyall /EFSAW /R:0 /NFL /NDL /NP /log:F:¥backup¥%1¥共有disk-backup.log E:¥共有disk¥ F:¥backup¥%1¥共有disk¥
robocopy /mir /copyall /EFSAW /R:0 /NFL /NDL /NP /log:F:¥backup¥%1&¥共有soft-backup.log E:¥共有soft¥ F:¥backup¥%1¥共有soft¥
)
echo end backup


/MIR : ミラーリングコピーする (/Eと/PURGEを指定したのと同じ)
/COPYALL : すべてのファイル情報をコピーする(/COPY:DATSOUと同じ)
/EFSAW : 暗号化されたすべてのファイルを EFS RAW モードでコピー
/R:0 : コピーに失敗したときにリトライする回数。デフォルトは1000000 0はリトライしない
/NFL : ファイル名をログに出力しない
/NDL : フォルダ名をログに出力しない
/NP : 進捗を表示しない(%コピーという表示をしない)ログファイルに記録するときはこれを指定した方がよい
/log:file : ログファイルに出力する(存在するファイルには上書き)

毎日深夜にWindowsのタスクでスクリプトを動作させる。

しかし、Windowsのタスクスケジューラの状態がよくわからない状態(終わっているのに実行中だったり準備完了だったり…)なのはなんなんだろう…。
失敗のアラートメールが送れないのがまた不便。

AWSクラウドデザインパターン

今回設定した案件。

NFS Sharingパターン(共有コンテンツの利用)

の、ちょっと改造版。
NFSサーバのコンテンツエリアもapacheのconfigに書いて、NFSサーバとWebサーバ兼用とした。


AWS図.001

NFSサーバをロードバランサから外すと、NFSサーバのトラフィックにすこーし余裕が出来る。

セットアップしたWebサーバのインスタンスをAMI化しておくと、インスタンスを起動してロードバランサに加えるだけでスケーリングが可能。(NFSサーバを止めると再設定が必要ですが…)

NFSサーバ設定

コンテンツ用 EBS Volume 作成してNFSサーバ用インスタンスにに attach する。
/etc/fstab に書くと起動できなかったりするので、automount でマウントするようにする。


cat /etc/auto.misc
ebs-www     -fstype=ext4        :/dev/sdf


使いやすいようにシンボリックリンクを作成しておく。


ls -l /media/
ebs-www -> /misc/ebs-www/


NFSの設定(全てのホストからNFSが利用可能な設定にする。アクセス制限はセキュリティグループの設定のみ。)


cat /etc/exports 
/media/ebs-www *(sync,rw,no_root_squash)


Webサーバ設定

NFSサーバをautomountする。(このNFSサーバのホスト名はNFSサーバのPrivate DNSが変わるたびに書き換えないといけない。)


cat /etc/auto.misc
ebs-www     -fstype=nfs,rw      ip-10-XXX-XXX-XXX.ap-northeast-1.compute.internal:/media/ebs-www


ここまでセットアップした状態でスケーリング用AMIを作る。snapshotから作成するとうまく起動しないことがあったので、止めてからAMIを作ると確実。


apacheの設定は、コンテンツのpath(/media/ebs-www)が同じなのでNFS、Webとも変わらない。

本番環境ではWebサーバのインスタンスにNFSサーバの設定もコメントで書いておき、簡単に切り替えられるようにした。

管理用インスタンスからec2コマンドでNFSサーバを起動して、NFSサーバのPrivateDNSを取得。UserData指定してWebサーバを起動するともっとスマートに出来るよな。(検証が大変なので今回は見送られました。。)


AWSクラウドデザインパターン(beta)

このページすてきすぎる。ちょっと前にみたよりもコンテンツの量が増えててすごいなぁ。

EC2 のリザーブドインスタンス利用。


2014/12/03 追記
新しい料金体系が発表されました。
Simplifying the EC2 Reserved Instance Model
EC2の新しいリザーブドインスタンスのオプションが発表 | Developers.IO

下記は古い情報です。


動き始めたらずっと動かすと想定して、軽度・中度・重度、どのリザーブドインスタンスがお得かグラフを書きました。


間違いグラフ


※m1.largeインスタンス(Tokyo)1年契約で試算。

こんなグラフ(重度使用リザーブドインスタンスも予約金+従量料金で計算)作って、『中度使用リザーブドインスタンスを利用する期間がない。(´・ω・`)』と思ってたら。

軽度・中度使用リザーブドインスタンスは、インスタンスが実行状態にあるインスタンス時間に対しての請求となります。1時間インスタンスを実行しない場合は、使用料はゼロとなります。1時間未満のインスタンス時間は1時間分として請求されます。重度使用リザーブドインスタンスは、リザーブドインスタンス期間全体における時間に対しての請求となります(これは、時間内に使用が発生したかどうかに関わりなく、時間料金がお客様に課金されることを意味しています)。

重度使用リザーブドインスタンスは、使用しなくても時間料金がかかるということなので。こっちが正解か…。


スクリーンショット 2012-03-13 12.44.30

  • 2.5ヶ月くらいの使用期間ならオンデマンドインスタンス
  • 7.2ヶ月くらいの使用期間なら軽度使用リザーブドインスタンス
  • 10.1ヶ月くらいの使用期間なら中度使用リザーブドインスタンス
  • それ以上の使用期間なら重度使用リザーブドインスタンス

※別のサービス流用できるようであればこの限りではない。

期間3年のものも書こうかな。。


※最新価格はこちらを参照ください!!