Amazon AppFlowを利用してSharePointからAmazon S3へバックアップする方法
更新日:2025-06-30 公開日:2024-02-07 by アツシバ
はじめに:データ・レジリエンスとバックアップ機構
企業では、個人情報、財務データ、プロジェクト資料、電子取引記録など、厳重な管理が必要な情報・データは増え続けています。
その管理体制において、ここ数年ではデータ・レジリエンスの重要性が強調されています。つまり、各種ファイル・データを確実に保管、防御、運用することはもちろん、セキュリティ体制や対策の実効性と効率性を高度化が求められているということです。
特に重要なのが、バックアップ機構の最適化です。
企業によってバックアップ機構の様相は異なりますが、ここでは、小中規模企業でも手軽に導入できるソリューションを紹介いたします。
パッケージ製品の導入や専門家の採用を必要とせず、情報システム担当者がノーコードで実装できる内容です。
AWS(AppFlow/S3)を採用した経緯
"プライバシーマークの運用において、機密情報のバックアップは必須です。しかし、運用効率を考慮して、このプロセスをクラウド上で完結させたいと考えています。" |
このような現場の要望が、弊社がAmazon AppFlowを活用したバックアップ機構の構築に取り組み始めたきっかけでした。当時、業務ファイル・データをSharePointで管理していましたが、「バックアップ先はどうするか」という問題がありました。
選択肢は、Microsoft「オンプレミス データ ゲートウェイ」、または「Power AutomateでBox連携」、さらには「Amazon AppFlowでAmazon S3へのバックアップ」でした。費用・運用容易性・サービスの将来性などを総合的に検討した結果、「Amazon AppFlowでAmazon S3へのバックアップ」を採用しました。
以下は当バックアップ機構のシンプルな概念図です。
それでは次に、実装までの具体的な手順を説明いたします。
※以下に紹介する具体的手順は2024年2月22日付けの暫定的なものであり、最新の手順はこれと異なる場合があります。
1.バックアップの実装:事前段階
前提として、今回のバックアップ要件は、以下の通りです。
- フルバックアップ:毎日、深夜0:00。ライフサイクル7日間(7日経過時自動削除)。
- アマゾン ウェブ サービス(AWS)の標準ストレージプランを採用する。
- バックアップフロー失敗時はAWSから担当者へ自動メール通知。
それでは、基本的には以下のAWSおよびMicrosoftが公表した内容に沿って進めます。
- Microsoft SharePoint Online connector for Amazon AppFlow
- Register an application with the Microsoft identity platform
① Amazon AppFlowをアプリケーションとして登録
- 管理者ユーザーとして Microsoft Entra ID(旧称 Azure Active Directory))の管理センターにアクセスする。
- 管理メニュー内の「アプリの登録」ページを開き、「+新規登録」を選択。
- 「名前」に適当な値を入力。
- 「リダイレクトURI」にリージョンコードを入力。
・ Amazon S3のバケットとAmazon AppFlowのフローとで同一の地域コードを利用。
・ 自拠点に最も近いリージョンを選択することをAWSは推奨。 - 「登録」を選択。
② Amazon AppFlowアプリケーションの設定
- 管理メニュー内の「証明書とシークレット」ページを開き、「+新しいクライアントシークレット」を選択。
- 適当な値を入力して「追加」を選択。
- 管理メニュー内の「APIのアクセス許可」ページを開き、「+アクセス許可の追加」を選択。
- Microsoft Graph「委任されたアクセス許可」ページを開き、以下を追加。
a. offline_access
b. Sites.Read.All
c. Sites.ReadWrite.All。
d. User.Read - 「概要」ページを開き、「アプリケーション(クライアント)ID」および「ディレクトリ(テナント)ID」を
確認し、控えておく。
2.バックアップの実装:初期段階
Amazon AppFlowにて「接続」を作成(システム管理者が担当する想定)
- Amazon AppFlow管理画面の左ペインにある「接続」ページを開き、「接続を作成」を選択。
- 「TENANT_ID」欄に控えておいた「ディレクトリ(テナント)ID」を入力。
- 「AWS マネージドクライアントアプリを使用します」にチェックが入っていることを確認。
- 「接続名」に適当な値を入力。
- 「接続する」を選択。
- Microsoftのアカウント画面が出現し、承認プロンプトが出ると「組織を代理して同意する」にチェックし「承諾」を選択。
・ アカウントがシステム管理者のものであることを確認。
(当設定を部門担当者が行う場合はそのもののアカウントであることを確認)
3.バックアップの実装:本番段階
① 対象SharePointサイトにシステム管理者アカウントを追加。
- バックアップ対象SharePointサイトにシステム管理者アカウントをメンバーとして追加。
- ログインして追加されたことを確認。
② Amazon S3にてバケットを作成
- Amazon S3管理画面にて「バケットを作成」を選択。
- 「バケット名」に適当な値を入力。
(AWSプラットフォーム上でユニークな値とする必要があることに注意) - AWSリージョンに"ap-northeast-1"を指定。
(このリージョン設定は、Amazon AppFlowのフローでのリージョン設定と同一にする) - 「バケットのバージョニング」を「有効にする」を選択。
- 「バケットを作成」を選択。
- 「ライフサイクル設定」にて以下の通り設定。
a. ルール名:任意
b. プレフィックス:[(例)fullbackup]
(Amazon AppFlowのフローでの対象バケット情報におけるポストフィックス情報と同一にする)
c. ライフサイクルルールのアクション:[オブジェクトの現行バージョンを有効期限切れにする]および
[オブジェクトの非現行バージョンを完全に削除]にチェック
・ オブジェクト作成後の日数:[1]
・ オブジェクトが現行バージョンでなくなってからの日数:[6]
d.「保存」を選択
③ Amazon AppFlowにてフローを作成
- Amazon AppFlow管理画面の左ペイン内にある「フロー」ページを開き、「フローを作成」をクリック。
- 「フロー名」に適当な値を入力。
- 特に他の項目は変更せず「次へ」をクリック。
- 「データ送信元名」にて[Microsoft SharePoint Online]と指定。
- 「Microsoft SharePoint Online 接続を選択」で対象の[接続名]を指定。
- 「APIバージョンを選択」にて[v1.0]と指定
- 「Choose Microsoft SharePoint Online site」にて、バックアップ対象が存在するSharePointサイトを指定。
- バックアップ対象とするディレクトリを指定。
- 「送信先名」に[Amazon S3]と指定し、バックアップ送信先とするバケット名を指定。
- ポストフィックス欄にて[(例)fullbackup]と入力。
(「ライフサイクルルール」設定で参照され、バックアップ時に自動的にアーカイブ処理が
行われるようになる) - フロートリガーを設定。
- 「次へ」をクリック。
- マッピング方法として「手動でフィールドをマッピングする」を選択。
- 「送信元フィールド名」に[すべてのフィールドを直接マッピングする]を指定し「次へ」をクリック。
- 必要に応じてフィルターを追加し「次へ」をクリック。
- これまでに構成したフローの内容を確認し「フローを作成」をクリック。
- 「フロー」ページに作成したフローが追加されていることを確認。
④ バックアップの監視システムを実装
- Amazon AppFlowのフローが失敗した際に、担当者へ自動メール通知する仕組みを、Amazon CloudWatchを用いて実装。
- CloudWatchにおけるアラーム設定。
a. 「CloudWatch > アラーム」の画面にて「アラーム作成」をクリックし、メトリクス選択画面を開く。
b. 「メトリクス選択画面」にて「すべて > AppFlow > フロー名別」と進み、“FlowName”の一覧から
対象フローにおけるメトリクス名“FlowExecutionsFailed” にあたるものにチェックを入れ、
「メトリクスの選択」を選択し、「メトリクスと条件の指定」画面を開く。
(フロー実績が出てからではないと対象フローは表示されないため、フロー作成の後に一日経過するまで
待つ必要がある)
c. 「メトリクス」枠内の「統計」欄に[最小]を指定し、「期間」欄には[(例)1時間]を指定。
d. 「条件」枠内の「しきい値の種類」に[静的]を指定し、「FlowExecutionsFailedが次の時...」には
[以上]を、そして「...よりも」の[1]を指定したうえ、「次へ」をクリックし、
「アクションの設定」画面を開く。
e. 「通知」枠内の「アラーム状態トリガー」に[アラーム状態]を指定し、「次のSNSトピックに通知を
送信」に[新しいトピックを作成]を指定したうえで、トピック名と通知先Emailを入力し、「トピックの
作成」・「次へ」をクリックして「名前と説明を追加」画面を開く。
f. アラーム名に[(例)SharePointバックアップの失敗]と入力し、「次へ」をクリックして確認画面を開く。
g. 「アラームの作成」をクリックし、アラームが正常に作成されたことを確認。
さいごに
いかがでしょうか?
上記に記載した各種の設定値は、あくまで参考用ですので、実際の運用状況に合わせてアレンジしていただけたらと思います。
また、バックアップファイルの復元方法は組織体制によりケースバイケースです。
「データ・レジリエンスの強化」と聞くと、壮大で難しい作業のように感じられがちですが、実際には上記のようにシンプルで具体的な手順で進めることができます。
冒頭で述べたように、「データ・レジリエンス時代におけるセキュリティ体制と対策自体の実効性および効率性の高度化」を実現するためには、シンプリシティ・リライアビリティを備えたAWSの各種サービスがベストマッチではないでしょうか。