Amazon EC2インスタンスのバックアップソリューションを探しています。私はこれを見つけました: http://www.n2ws.com そして私は他のものがあるかどうか知りたかったです。
ありがとうございました
PS:Amazonソリューションを使用してRDSデータベースを自動的にバックアップすることは可能ですが、EC2インスタンスには何もありません...ありますか?
Skeddly を数か月間使用して、EC2インスタンスに接続されたEBSボリュームを自動的にバックアップしています。
今のところ、本当に満足しています。バックアップするインスタンスを定義する方法が気に入りました。特定のタグを持つインスタンスのみがバックアップされます。バックアップするインスタンスにこのタグを追加するだけです。インスタンスを追加するたびにSkeddlyで変更を行う必要はありません。 Skeddlyで2つのアクションを定義する必要がありました。インスタンスをバックアップするアクションと、古いスナップショットを削除するアクションです。
また、アクション(バックアップと期限切れ)が成功したかどうかを通知するメールを受け取ります。
EC2インスタンスの自動バックアップに100%AWSソリューションが必要な場合は、AWSラムダがあります。
次のようなものでPythonベースのラムダを作成します。
import boto3
BACKUP_VOLUMES = [
'vol-xxxxxxxx'
]
def lambda_handler(event, context):
ec2 = boto3.resource('ec2')
for volume in BACKUP_VOLUMES:
ec2.create_snapshot(VolumeId=volume, Description='Automated backup')
そして、毎日実行されるようにイベントソースを構成します。そして、ブーム、信頼できる手間のかからない自動化されたEC2バックアップは、それらを駆動する別のインスタンスとcronジョブ、またはサードパーティのサービスを必要としません。 SES APIを使用すると、そのラムダから確認メールを送信することもできます。
PS:ラムダのIAMロールにEC2スナップショットを操作する権限があることを確認してください。例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot",
"ec2:DescribeSnapshots"
],
"Resource": "*"
}
]
}
「EC2インスタンス」が本当に「EBSドライブを備えたEC2インスタンス」を意味する場合は、AWSコンソールとAWS APIから利用できるEBSのスナップショット機能が探しているものです。
EBS Docs から:
Amazon EBSは、Amazon S3に保持されるボリュームのポイントインタイムスナップショットを作成する機能も提供します。これらのスナップショットは、新しいAmazon EBSボリュームの開始点として使用でき、長期的な耐久性のためにデータを保護します。同じスナップショットを使用して、必要な数のボリュームをインスタンス化できます。これらのスナップショットはAWSリージョン全体にコピーできるため、地理的な拡張、データセンターの移行、災害復旧のために複数のAWSリージョンをより簡単に活用できます。
Amazonは、スナップショットに関するスケジューリングや保持タイプのポリシーを提供していませんが、AWS APIを利用するサードパーティのツールがいくつかあります。
以下は、インスタンスをAMIイメージにバックアップするAWS Lambda Boto3ベースのスクリプトです。
import boto3, collections, datetime, sys
ec = boto3.client('ec2')
def lambda_handler(event, context):
reservations = ec.describe_instances(
Filters=[
{'Name': 'tag-key', 'Values': ['backup', 'Backup']},
]
).get(
'Reservations', []
)
instances = sum(
[
[i for i in r['Instances']]
for r in reservations
], [])
print("Found %d instances that need backing up" % len(instances))
to_tag = {}
for instance in instances:
try:
retention_days = [
int(t.get('Value')) for t in instance['Tags']
if t['Key'] == 'retention'][0]
except IndexError:
retention_days = 7
create_time = datetime.datetime.now()
create_fmt = create_time.strftime('%Y-%m-%d_%H-%M-%S')
AMIid = ec.create_image(InstanceId=instance['InstanceId'], Name="backup of " + instance['InstanceId'] + " dated " + create_fmt, Description="Lambda-created AMI of instance " + instance['InstanceId'] + " from " + create_fmt, NoReboot=True, DryRun=False)
to_tag[retention_days] = AMIid['ImageId']
print("Retaining AMI %s of instance %s for %d days" % (AMIid['ImageId'],
instance['InstanceId'],
retention_days)
)
print(to_tag.keys())
for retention_days in to_tag.keys():
delete_date = datetime.date.today() + datetime.timedelta(days=retention_days)
delete_fmt = delete_date.strftime('%m-%d-%Y')
print("Will delete %d AMIs on %s" % (len(to_tag[retention_days]), delete_fmt))
ec.create_tags(
Resources=[to_tag[retention_days],],
Tags=[
{'Key': 'DeleteOn', 'Value': delete_fmt},
]
)
ここから を取得し、Python 3。
私が働いている会社は、AmazonのS3、EBS、EC2を創業以来ほぼ使用しています。完成してから4日後に2台(開発1台と本番1台)の仮想サーバーが失われ、翌夜EC2で解放されるようにスケジュールされた後、それはひどく明白になりました。簡単に言えば、非常に小さく、軽量で、あらゆる状況にほぼ設定できるスタンドアロンアプリケーションは見つかりませんでした。
AWS .NET SDKを使用すると、上記のアプリケーションを1日足らずで作成でき、社内のWindows Server 2008 R2サーバーでタスクスケジューラを使用できました。多くのシナリオを経て、次のスケジュールで解決しました。EC2インスタンスのイメージは毎週作成され、EBSスナップショットは毎日作成されます。 31日より古いEC2インスタンスは削除され、EBSスナップショットは60日後に削除されます。これは、独自の内部スケジューリングコードでバックアップを実行するはずのスタンドアロンアプリケーションで以前に焼き付けられていたクライアントとの契約で締結したものです/機構。それは決して実行されなかった、そして彼らがそれを設定した後に誰もそれを見なかった。アプリケーションが成熟するにつれ、開発者へのバックアップサマリー/ログ電子メール用のシンプルメールサービス(SES)と、プロセスを記録するためのシンプルキューサービス(SQS)を用意する予定です。
お役に立てれば。
見つけたクラウド保護マネージャー製品(www.n2ws.com)は、EBSボリュームを個別にバックアップする以外に、完全なEC2インスタンスの自動バックアップやRDSスナップショットをサポートしています。また、お客様が探していたスケジューリング、データ保持ポリシー、自動アラートオプション、およびAWSのその他のバックアップ関連機能も備えています。
EC2インスタンスに匹敵する自動バックアップを提供する他のサードパーティ製品は見つかりませんでしたが、一部のクラウド管理コンソールでは、スナップショットのスケジュール設定とデータ保持ポリシーの作成が可能です。
重要なアプリケーションの場合、バックアップソリューションは、単にスナップショットをスケジュールするだけではありません。
アプリケーションサポート、バックアップポリシー、強力なリカバリオプションなどの機能を期待できます。
あなたは私の投稿でそれについて読むことができます:
http://www.n2ws.com/blog/tier-1-application-backup-on-Amazon-cloud.html
これはn2wsサイトからのものであり、CPM製品も参照しています。
ちょっと。 EBSボリュームのスナップショットを定期的に作成できます。 UIにはこれを自動的に実行する機能はありませんが、APIを使用すると実行できます。独自のバックアップスクリプトをロールするか、公開されているスクリプトを検索できます。
これは、AMIバックアップを自動化するスクリプトスクリプトです。 VPC内のすべてのインスタンスのインスタンスIDが見つかり、AMIバックアップが作成されます!
#!/bin/bash
#Script to Automate AMI backup
echo "----------------------------------\n `date` \n----------------------------------"
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-1c927479 | awk '{ print $8 }' | sort -n | grep "i-" > /tmp/instanceid.txt
#echo "instance-`date +%d%b%y`"-i-29efe0e4 > /tmp/aminame.txt
echo "Starting the Daily AMI creation: "
#echo -e "Starting the Daily AMI creation: `cat /tmp/aminame.txt`\n"
#To create AMI of defined instance
for i in $(cat /tmp/instanceid.txt); do
echo "Creating AMI for Instance id $i ......."
echo "instance-`date +%d%b%y`-$i" > /tmp/aminame.txt
aws ec2 create-image --instance-id $i --name "`cat /tmp/aminame.txt`" --description "This is created by AMI-backup.sh" --no-reboot | grep -ir AMI | awk '{print $4}' > /tmp/amiID.txt
echo "AMI Name is: `cat /tmp/aminame.txt`\n"
echo done
done
echo done
Cloudwatchが導入された時期を忘れてしまいましたが、それによって間違いなく スケジュールされた自動EBSスナップショット が可能になります。
AWS Lambdaを使用したPolの回答は依然として関連しています。 EBSスナップショットのスケジュール設定 および 古いスナップショットの削除 に関するブログ記事がいくつかあります。
すべてのaws ec2インスタンスをバックアップする簡単な方法は、 noovolari を使用することです。それはあなたが定期的なバックアップをスケジュールすることを可能にし、ファイルレベルの回復機能を備えており、非常に簡単な方法で以前のスナップショットを回復することができます。また、5つのec2インスタンスに対して無制限の無料利用枠が設定されているため、問題はありません。
しばらくの間、いくつかのインフラストラクチャで使用しており、問題なく動作します。
約1週間使用し始めたScalrと呼ばれるオープンソースプロジェクトがあり、EBSボリュームの自動スナップショット/バックアップをスケジュールできる機能があります。 Scalrは実際にはクラウド管理ソリューションであり、まだ試していない素晴らしい機能がたくさんありますが、楽しみにしています。
有料版もありますが、今のところは無料のオープンソース版に飽き飽きしています。 ScalrインストーラーはGithubで入手できます: https://github.com/Scalr/installer-ng ScalrソースコードもGitubにあります: https://github.com/Scalr/scalr インストール手順はScalr wikiにあります: https://scalr-wiki.atlassian.net/wiki/x/0Q8b
AutomatiCloudを使用して、EC2ボリュームとRDSインスタンスをバックアップできます。 AutomatiCloudを使用すると、バックアップのスケジュールを定義し、構成可能な保持期間後にクリーンアップできます。また、成功/失敗した場合に電子メール通知を送信します。そしてそれは無料です! www.automaticloud.net
免責事項:私は作者です