Amazon FSx for NetApp ONTAPを管理するBlueXPを使ってみた

記事タイトルとURLをコピーする

こんにちは、サーバーワークスの村上です。

ついにレイカーズがプレイイン圏内の順位に上がりましたね(2023年3月10日現在)。

プレイオフも見えてきた!ということで、今回はBlueXPでFSx for NetApp ONTAPが見えてきた!というブログです。

BlueXPはFSx for NetApp ONTAPを管理する方法のひとつ

FSx for NetApp ONTAPを操作する方法はいくつかあり、それぞれ操作のしやすや・できることが異なっています。

  • AWSマネジメントコンソール
  • BlueXP
  • ONTAP CLI

参考: https://pages.awscloud.com/rs/112-TZM-766/images/202206_AWS_Black_Belt_FSx_for_NetApp_ONTAP.pdf#page=38

docs.aws.amazon.com

BlueXP (旧Cloud Manager)はGUIでリソースを管理するツールです。マルチクラウドに対応しており、FSx for NetApp ONTAPも管理できます。例えば新規FSx作成や既存FSxの設定変更、使用状況の分析などです。以下の動画を見ていただくのが一番イメージ掴めるかと思います。

youtu.be

セットアップ

こちらの手順に沿って進めます。なお、すでにFSxは構築済みとします。

docs.netapp.com

IAMポリシーの作成

BlueXPがAWSアカウント上で動作するための権限を設定します。ドキュメントにあるとおり、以下の内容で作成しました。

docs.netapp.com

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "fsx:*",
                "ec2:Describe*",
                "ec2:CreateTags",
                "iam:CreateServiceLinkedRole",
                "kms:Describe*",
                "kms:List*",
                "kms:CreateGrant",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics"
            ],
            "Resource": "*"
        }
    ]
}

IAMロール作成

つづいてBlueXPが引き受けるIAMロールを作成します。ドキュメントに記載はありませんが、セキュリティ上、外部IDは設定した方が良いでしょう。

あとは先ほど作成したIAMポリシーをアタッチして、IAMロールを作成します。

作成したIAMロールのARNは後ほど使用するのでコピーしておきます。

BlueXP上でクレデンシャルを設定

BlueXPコンソールの右上にある設定アイコンをクリックし、Credentialsを選択します。

AWSを選択し次に進みます。

さきほど作成したIAMロールの情報を入力します。

以上で完了です。

Connector作成

次にConnectorを作成します。

Connectorはクラウドに存在するリソース(今回はFSx for ONTAP)を管理するためのコンポーネントで、EC2で構成されます。

BlueXPを利用するだけなら、必ずしもConnectorが必要というわけではありませんが、FSx for ONTAPの管理機能を利用するためにはConnectorが必要とありましたので作成します。

docs.netapp.com

IAMポリシー作成

ConnectorインスタンスはBlueXPから作成します。そのためBlueXPが引き受けているロールに追加で権限が必要です。

以下の内容でIAMポリシーを作成し、IAMロールに適用します。

{
    "Version": "2012-10-17",
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:PutRolePolicy",
                "iam:CreateInstanceProfile",
                "iam:DeleteRolePolicy",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:PassRole",
                "ec2:DescribeInstanceStatus",
                "ec2:RunInstances",
                "ec2:ModifyInstanceAttribute",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeSecurityGroups",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeRegions",
                "ec2:DescribeInstances",
                "ec2:CreateTags",
                "ec2:DescribeImages",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:ValidateTemplate",
                "ec2:AssociateIamInstanceProfile",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DisassociateIamInstanceProfile",
                "iam:GetRole",
                "iam:TagRole",
                "iam:ListRoles",
                "kms:ListAliases"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:TerminateInstances"
            ],
            "Condition": {
                "StringLike": {
                    "ec2:ResourceTag/OCCMInstance": "*"
                }
            },
            "Resource": [
                "arn:aws:ec2:*:*:instance/*"
            ]
        }
    ]
}

BlueXPからConnector作成

画面右上のConnectorからAdd Connectorを選択します。

プロバイダにAWSを選択します。

IAMロールの追加設定はさきほど完了しているので、Skip to Deploymentを選択します。

リージョンとAssume Roleを選択します。

Connectorインスタンス名と、インスタンスに付与するIAMロールを設定します。IAMロールは新規作成します。

続いて、ネットワーク設定とセキュリティグループの設定です。

Connectorインスタンスはインターネットにアウトバウンドで通信できる必要がありますので適切なサブネットとセキュリティグループを設定します。

しばらく待つと、Connectorインスタンスが作成され、以下のように画面右上にインスタンス名が表示されるようになります。

ご覧のように現在のボリュームの使用状況がBlueXPから確認できるようになります。

BlueXPからFSxを操作してみる

BlueXPからFSxの新規作成やボリュームの追加など、ある程度の操作が可能です。

試しにスループットを増やしてみます。

AWSマネジメントコンソール画面上でも変更中であることが確認できます。

Data Senseを使ってみる

Data Senseという機能もあります。

Cloud Data Senseは、BlueXP(旧Cloud Manager)向けのデータガバナンスサービスです。社内のオンプレミスデータソースやクラウドデータソースをスキャンして、データをマッピングして分類し、プライベート情報を特定します。これにより、セキュリティとコンプライアンスのリスクを軽減し、ストレージコストを削減し、データ移行プロジェクトを支援できます。
https://docs.netapp.com/ja-jp/cloud-manager-data-sense/concept-cloud-compliance.html

画面のイメージは以下のサイトや冒頭に載せた動画が分かりやすいかと思います。

bluexp.netapp.com

スキャン用のEC2を作成

やることはスキャン用のEC2をBlueXPから作成するのみです。

以下の手順に従って設定します。

docs.netapp.com

かなり大きいサイズのインスタンス(m4.4xlarge)ができて驚きましたが、小規模な環境では小さいインスタンスタイプも利用できるようです。

ただし、スキャン性能が落ちるなど制約はあるようでした。

制約については以下のドキュメントに記載があります。

docs.netapp.com

Active Directoryも統合すると分かることが増える

スキャン用のEC2が作成されたら、Map & Classify all Volumesでスキャンを開始します。

docs.netapp.com

また、画面上部にあるAdd Active Directoryから、SVMが参加しているドメインを統合すると、ファイル所有者やファイルにアクセスできるユーザー・グループも見ることができます。

これらの設定を実施したうえで、Data Senseがスキャンした結果を見てみます。

Data Senseで分かること

ファイルを見てみます。画面左にあるフィルタから、サイズの大きいファイルや特定の所有者のファイルなど検索することが可能です。

View all permissionsからこのファイルにアクセス権のあるグループと、そのグループに所属するユーザーが閲覧できます。

ちなみに、フォルダを見たときの画面はこんな感じです。

まとめ

Amazon FSx for NetApp ONTAPにはSSD層とキャパシティプール層があり、柔軟なパフォーマンス最適化・コスト最適化が可能です。

BlueXPを見ながら、

  • サイズの大きいファイルや長らくアクセスされていないファイルを見つける
  • 必要に応じてFSxの容量を増やしたり、階層化ポリシーを変更したり、管理する

みたいなことができそうですね。

村上博哉 (執筆記事の一覧)

2020年4月入社。機械学習が好きです。記事へのご意見など:hiroya.murakami@serverworks.co.jp