AWS Lambda機能を使用したFSx ONTAPの監視と自動サイズ変更
このページでは、AWS FSx ONTAPの監視としきい値に基づく自動サイズ変更について説明します。
概要:AWS Lambda機能を使用したFSx ONTAPの監視と自動サイズ変更
FSx ONTAPは、AWSで利用できるファーストパーティのエンタープライズクラスのクラウドストレージサービスです。人気のあるNetApp ONTAPファイルシステムを基盤に、信頼性、拡張性、パフォーマンス、機能豊富なファイルストレージを提供します。
FSx ONTAPは、シームレスな導入と管理のエクスペリエンスを提供します。ストレージの専門知識は必要ありません。監視を簡易化するために、AWSラムダ機能(しきい値に基づいて合計ストレージ容量、ボリュームサイズ、LUNサイズのサイズを自動変更)を使用できます。 このドキュメントでは、FSx ONTAPを定期的に監視し、ユーザ指定のしきい値を超えたときに通知とサイズ変更を行い、サイズ変更アクティビティを管理者に通知する自動セットアップを作成するためのステップバイステップのガイドを提供します。
の機能
解決策 には次の機能があります。
-
監視機能:
-
FSx ONTAPの全体的なストレージ容量の使用量
-
各ボリュームの使用量(シンプロビジョニング/シックプロビジョニング)
-
各LUNの使用量(シンプロビジョニング/シックプロビジョニング)
-
-
ユーザ定義のしきい値を超えた場合に、上記のいずれかのサイズを変更できます
-
使用状況の警告やサイズ変更の通知をEメールで受信するアラートメカニズム
-
ユーザ定義のしきい値を超過した古いSnapshotを削除する機能
-
関連付けられているFlexCloneボリュームとSnapshotのリストを取得する機能
-
定期的にチェックを監視する機能
-
インターネットアクセスの有無にかかわらず、解決策 を使用できます
-
手動またはAWS CloudFormationテンプレートを使用してデプロイする機能
-
1つのVPCで複数のFSx ONTAPファイルシステムを監視する機能
前提条件
作業を開始する前に、次の前提条件を満たしていることを確認してください。
-
FSx ONTAPが導入されました
-
FSx ONTAPへの接続を備えたプライベートサブネット
-
FSx ONTAP用に「fsxadmin」パスワードが設定されました
アーキテクチャの概要
-
AWS Lambda関数は、ストレージ容量、ボリューム、LUNのサイズを取得および更新するために、FSx ONTAPへのAPI呼び出しを行います。
-
「fsxadmin」パスワードは、セキュリティレイヤを追加するためにAWS SSMパラメータストアにセキュアな文字列として保存されます。
-
AWS SES(Simple Email Service)は、サイズ変更イベントが発生したときにエンドユーザに通知するために使用します。
-
インターネットアクセスのないVPCに解決策を導入する場合は、AWS SSM、FSx、SESのVPCエンドポイントが設定され、LambdaがAWS内部ネットワーク経由でこれらのサービスにアクセスできるようになります。
解決策 の導入
導入の自動化
単一のFSx ONTAPファイルシステムに対応 |
一連の手順に従って、この解決策 の自動導入を完了します。
ステップ1: GitHubリポジトリのクローンを作成します
ローカルシステム上のGitHubリポジトリのクローンを作成します。
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
ステップ2:AWS S3バケットをセットアップする
-
[AWS Console]>* S3 に移動し、[Create bucket]*をクリックします。デフォルトの設定でバケットを作成します。
-
バケット内で、* Upload > Add files をクリックし、システム上のクローンされたGitHubリポジトリから Utilities.zip *を選択します。
手順3:AWS SES SMTPのセットアップ(インターネットアクセスがない場合は必須)
インターネットアクセスなしで解決策を導入する場合は、次の手順を実行します(注:VPCエンドポイントのセットアップに関連するコストが発生します)。
-
AWSコンソール>* AWS Simple Email Service(SES)> SMTP Settings に移動し、 Create SMTP credentials *をクリックします。
-
IAMユーザ名を入力するか、デフォルト値のままにして*をクリックします。さらに使用できるように、 SMTPユーザ名*と* SMTPパスワード*を保存してください。
SES SMTPのセットアップがすでに設定されている場合は、この手順をスキップします。 ウィンドウを示しています"]
ステップ4:AWS CloudFormationの導入
-
AWS Console >* CloudFormation *> Create stack > With New Resources(Standard)に移動します。
Prepare template: Template is ready Specify template: Upload a template file Choose file: Browse to the cloned GitHub repo and select fsxn-monitoring-solution.yaml
ウィンドウを示しています"]
[次へ]をクリックします
-
スタックの詳細を入力します。[Next]をクリックし、[I acknowledge that AWS CloudFormation might create IAM resources]のチェックボックスをオンにして、[Submit]をクリックします。
「VPCにインターネットアクセスがありますか?」の場合 はFalseに設定されています。「AWS SESのSMTPユーザ名」と「AWS SESのSMTPパスワード」は必須です。それ以外の場合は、空のままにすることができます。 -
CloudFormationデプロイメントが開始されると、「送信者メールID」に記載されているメールIDに、AWS SESでのメールアドレスの使用を承認するように求めるメールが送信されます。リンクをクリックしてメールアドレスを確認します。
-
CloudFormationスタックのデプロイが完了すると、警告/通知がある場合は、通知の詳細が記載された電子メールが受信者の電子メールIDに送信されます。
手動での導入
1つのVPCで複数のFSx ONTAPファイルシステムを監視できます。 |
一連の手順に従って、この解決策 の手動導入を完了します。
ステップ1: GitHubリポジトリのクローンを作成します
ローカルシステム上のGitHubリポジトリのクローンを作成します。
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
手順2:AWS SES SMTPのセットアップ(インターネットアクセスがない場合は必須)
インターネットアクセスなしで解決策を導入する場合は、次の手順を実行します(注:VPCエンドポイントのセットアップに関連するコストが発生します)。
-
AWSコンソール>* AWS Simple Email Service(SES)> SMTP Settingsに移動し、 Create SMTP credentials *をクリックします
-
IAMユーザ名を入力するか、デフォルト値のままにして、[Create]をクリックします。あとで使用するために、ユーザ名とパスワードを保存しておきます。
ウィンドウを示しています"]
手順3:fsxadminパスワードのSSMパラメータを作成します
[AWS Console]>*に移動し、[Create Parameter]*をクリックします。
Name: <Any name/path for storing fsxadmin password> Tier: Standard Type: SecureString KMS key source: My current account KMS Key ID: <Use the default one selected> Value: <Enter the password for "fsxadmin" user configured on FSx ONTAP>
[パラメーターを作成(Create Parameter)]*をクリックする。監視するすべてのFSx ONTAPファイルシステムについて、上記の手順を繰り返します。
インターネットにアクセスせずに解決策 を展開する場合は、SMTPユーザ名とSMTPパスワードを保存する手順と同じ手順を実行します。それ以外の場合は、これら2つのパラメータの追加をスキップします
ステップ4:電子メールサービスをセットアップします
[AWS Console]>*に移動し、[Create Identity]*をクリックします。
Identity type: Email address Email address: <Enter an email address to be used for sending resizing notifications>
[Create identity]*をクリックします
「送信者EメールID」に記載されているEメールIDには、AWS SESでのEメールアドレスの使用許可を所有者に求めるEメールが送信されます。リンクをクリックしてメールアドレスを確認します。
手順5:VPCエンドポイントをセットアップする(インターネットアクセスを使用できない場合は必須)
インターネットアクセスなしで展開されている場合にのみ必要です。VPCエンドポイントに関連する追加コストが発生します。 |
-
[AWS Console]>*>[Endpoints]に移動し、[Create Endpoint]*をクリックして、次の詳細を入力します。
Name: <Any name for the vpc endpoint> Service category: AWS Services Services: com.amazonaws.<region>.fsx vpc: <select the vpc where lambda will be deployed> subnets: <select the subnets where lambda will be deployed> Security groups: <select the security group> Policy: <Either choose Full access or set your own custom policy>
[Create endpoint]をクリックします。
-
SESおよびSSM VPCエンドポイントの作成についても、同じ手順を実行します。すべてのパラメータは上記と同じですが、サービスは<region>それぞれ* com.amazonaws.smtp および com.amazonaws.smtp *に対応します<region>。
ステップ6: AWS Lambda関数を作成してセットアップします
-
AWSコンソール>* AWS Lambda > Functions に移動し、FSx ONTAPと同じリージョンの Create Function *をクリックします。
-
デフォルトの*Author from scratch*を使用して、次のフィールドを更新します。
Function name: <Any name of your choice> Runtime: Python 3.9 Architecture: x86_64 Permissions: Select "Create a new role with basic Lambda permissions" Advanced Settings: Enable VPC: Checked VPC: <Choose either the same VPC as FSx ONTAP or a VPC that can access both FSx ONTAP and the internet via a private subnet> Subnets: <Choose 2 private subnets that have NAT gateway attached pointing to public subnets with internet gateway and subnets that have internet access> Security Group: <Choose a Security Group>
[機能の作成]*をクリックします。
-
新しく作成したLambda関数に移動し、* Layers セクションまでスクロールして Add a layer *をクリックします。
-
の下にある[新しいレイヤーを作成する]*をクリックします
-
レイヤーを作成し、* Utilities.zip ファイルをアップロードします。互換性のあるランタイムとして Python 3.9 を選択し、 Create *をクリックします。
ウィンドウを示しています。"]
-
AWS Lambda Function >* Add Layer > Custom Layers *に戻り、ユーティリティレイヤーを追加します。
-
Lambda関数の* Configuration タブに移動し、 General Configuration の Edit をクリックします。[タイムアウト]を 5分*に変更し、*[保存]*をクリックします。
-
Lambda関数の* Permissions タブに移動し、割り当てられたロールをクリックします。ロールの権限タブで、*権限の追加>*インラインポリシーの作成*をクリックします。
-
JSONタブをクリックし、GitHubリポジトリからpolicy.jsonファイルの内容を貼り付けます。
-
${aws::AccountId}はすべて自分のアカウントIDに置き換えて、*[Review Policy]*をクリックしてください
-
ポリシーの名前を指定し、*[ポリシーの作成]*をクリックします
-
-
AWS Lambda Function Code Sourceセクションの* fsxn_monitoring_resizing_lambda.py の内容をgitリポジトリから lambda_function.py *にコピーします。
-
lambda_function.pyと同じレベルに新しいファイルを作成し、vars.py*という名前を付けて、vars.pyの内容をgitリポジトリからlambda関数vars.pyファイルにコピーします。vars.pyの変数値を更新します。以下の変数定義を参照し、 Deploy *をクリックします。
* 名前 *
* タイプ *
* 概要 *
* fsxList*
リスト
(必須)監視するすべてのFSx ONTAPファイルシステムのリスト。監視および自動サイズ変更の対象として、すべてのファイルシステムをリストに含めます。
* fsxMgmtIp *
文字列
(必須)AWSのFSx ONTAPコンソールから「管理エンドポイント- IPアドレス」を入力します。
* fsxId *
文字列
(必須)AWSのFSx ONTAPコンソールから「ファイルシステムID」を入力します。
ユーザー名
文字列
(必須)AWSのFSx ONTAPコンソールからFSx ONTAPの「ONTAP administrator username」を入力します。
* resize_threshold *
整数
(必須)しきい値のパーセンテージを0~100の範囲で入力します。このしきい値は、ストレージ容量、ボリューム、LUNの使用率を測定するために使用され、使用率がこのしきい値を超えるとサイズ変更アクティビティが発生します。
* FSX_PASSWORD_SSM_PARAMETER *
文字列
(必須)「fsxadmin」パスワードの保存にAWS Parameter Storeで使用するパス名を入力します。
* WARN_NOTIFICATION *
ブール値
(必須)この変数をTrueに設定すると、ストレージ容量/ボリューム/ LUNの使用率が75%を超え、しきい値を下回ったときに通知が送信されます。
* enable_snapshot_deletion *
ブール値
(必須)「snapshot_age_threshold_in_days」で指定した値よりも古いSnapshotに対してボリュームレベルのSnapshotの削除を有効にするには、この変数をTrueに設定します。
* snapshot_age_threshold_in_days *
整数
(必須)ボリュームレベルのSnapshotを保持する日数を入力します。指定した値よりも古いSnapshotコピーは削除され、同じSnapshotコピーがEメールで通知されます。
* internet_access *
ブール値
(必須)このラムダが展開されているサブネットからインターネットアクセスが可能な場合は、この変数をTrueに設定します。それ以外の場合は、Falseに設定します。
* smtp_region *
文字列
(オプション)「internet_access」変数がFalseに設定されている場合は、ラムダがデプロイされている領域を入力します。例:us-east-1(この形式)
* SMTP_USERNAME_SSM_PARAMETER *
文字列
(オプション)「internet_access」変数がFalseに設定されている場合は、SMTPユーザ名を格納するためにAWS Parameter Storeで使用するパス名を入力します。
* SMTP_PASSWORD_SSM_PARAMETER *
文字列
(オプション)「internet_access」変数がFalseに設定されている場合は、SMTPパスワードの保存にAWS Parameter Storeで使用するパス名を入力します。
* sender_email *
文字列
(必須)SESに登録されている電子メールIDを入力します。このIDは、監視とサイズ変更に関する通知アラートを送信するためにlambda関数で使用されます。
* recipient_email *
文字列
(必須)アラート通知を受信するEメールIDを入力します。
-
をクリックし、空のJSONオブジェクトでテストイベントを作成し、[呼び出し]*をクリックしてテストを実行し、スクリプトが正しく実行されているかどうかを確認します。
-
テストに成功したら、* Configuration > Triggers > Add Trigger *に移動します。
Select a Source: EventBridge Rule: Create a new rule Rule name: <Enter any name> Rule type: Schedule expression Schedule expression: <Use "rate(1 day)" if you want the function to run daily or add your own cron expression>
[Add]をクリックします。
まとめ
提供されたソリューションにより、FSx ONTAPストレージを定期的に監視し、ユーザ指定のしきい値に基づいてサイズを変更し、アラートメカニズムを提供する監視ソリューションを簡単にセットアップできます。これにより、FSx ONTAPの使用と監視のプロセスがシームレスになり、管理者はビジネスクリティカルな作業に集中できるようになり、必要に応じてストレージが自動的に拡張されます。