Goalist Developers Blog

EC2インスタンスのバックアップの自動化

どうも,エンジニアのナカノです.

今回は,EC2インスタンスのバックアップの自動化の内容をご紹介致します.

バックアップと言っても,今回は特にAMIの定期的な自動作成についてです.

目 次
  • 背景
  • 作り方
  • 所感



背景

社内では,開発/運用のライフサイクルの改善で,ステートレスなシステム構成を目指しています.

一方,古いシステムでステートを持つものが存在し,実際に現役で稼働しているものもあります.

特にこの様なシステムのバックアップの仕組みが整っておらず,これが技術負債となっていました.

今回は技術負債の解消も込めて,自動的なバックアップの設計/開発を進めることになりました.



作り方

構成

EC2インスタンスのバックアップの方法としては,AMIスナップショットの二種類があります.

スナップショットだと料金が発生するため,AMIの自動管理の仕組みを作ることになりました.

調べてみるとAWS Backupが利用出来そうで,今回はこれを使って仕組みを作ることにしました.

去年まではLambdaやCloudWatch Events等で構築する必要があったので,これは便利ですね!

docs.aws.amazon.com

f:id:r-nakano:20200817145335j:plain

セットアップ

以下では,主にAWS Backupの各種リソースの作り方をご紹介致します.


プランとルールの作成

AWSマネジメントコンソールにログインし,次にAWS Backupの管理画面を開きます.

管理画面内のマイアカウント > バックアッププランを開き,バックアッププランを作成のボタンを押します.

今回は新しいプランを立てるを選び,プランやルールの名前は画像の様な感じで設定しました.

f:id:r-nakano:20200817151029j:plain


ジョブのスケジュールは頻度を毎日とし,バックアップウィンドウはカスタム設定で行いました.

開始時間は午後5時(UTC)で,1時間以内に開始し,1日以内に完了する様に設定しました.

日本時間で言えば,毎日深夜2時から1時間以内にAMIが自動作成され,この作成が1日以内に終わるというルールです.

また,有効期限を2日としました.つまり,AMIが1日に1個作られて,2日でローテートされるということです.

f:id:r-nakano:20200817151035j:plain


その次にタグ設定を行い,プランを作成のボタンを押してバックアッププランを作成しました.

基本的には,これらの設定で事足りるかと思います.その他の設定は場合に応じて行う感じです.

f:id:r-nakano:20200817151043j:plain


リソースの割り当て

その後は,マイアカウント > バックアッププランで作成したプランの詳細画面を開きます.

詳細画面内のリソースを割り当てるのボタンを押し,プランとリソースの紐づけの設定を行います.

IAMロールはデフォルトを選びました.また,リソースを割り当てるの設定は次の様に行いました.

割り当てを複数行いたい場合は,割り当てを追加のボタンを押して同様な設定を行えばよいです.

  • 割り当て単位:リソースIDを選択

  • リソースタイプ:EC2を選択

  • インスタンスID:紐付けたいEC2インスタンスのIDを選択

f:id:r-nakano:20200817154056j:plain



所感

Amazon DLMもそうですが,1つのサービスでシステムを簡単に管理出来るのは素晴らしいですね!

AWSでは開発/運用をサポートするものがここ数年で続々と登場し,目を見張るものがあります.

こういったものがあると,工数をあまりかけずにライフサイクルの改善を進められるので良きです.

今後も技術のアップデートを見逃さない様にして,システム改善の最適化を都度に求めたいです.