FSx for NetApp ONTAPのS3アクセスポイント機能を試してみた

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

はじめに

こんにちは!サーバーワークスの阿部です。

少し前ですが、2025年12月にAmazon FSx for NetApp ONTAP(以降FSx ONTAP)に S3アクセスポイント機能が追加されました。

aws.amazon.com

一言で言うと「FSx ONTAPのファイルデータをS3経由でアクセスできるようにする」というものです。 従来のファイルサーバーに保存されているデータを、Amazon BedrockやSageMakerなどの生成AI・データ分析サービスから直接利用できるようになります。

この記事では、実際に本機能を使ってAthenaからFSx ONTAP内のデータにアクセスしてみた検証内容についてお伝えします。

やること

今回の検証では、S3アクセスポイント機能を利用して、FSx ONTAP内のシステムログファイルにAthenaからアクセスし、ログ分析をしてみます

検証環境

今回の検証では、図の構成で環境を構築しました。

事前準備

検証用ダミーファイルをFSx ONTAP上に格納

ダミーファイルをFSx ONTAP上に格納

ec2-access-logs.csv

timestamp,instance_id,instance_type,region,user,action,status
2026-02-10 09:00:00,i-0123456789abcdef0,t3.medium,ap-northeast-1,user001,start,success
2026-02-10 09:15:00,i-0123456789abcdef1,t3.small,ap-northeast-1,user002,stop,success
2026-02-10 09:30:00,i-0123456789abcdef2,t3.large,us-east-1,user001,start,success
2026-02-10 09:45:00,i-0123456789abcdef0,t3.medium,ap-northeast-1,user003,reboot,failed
2026-02-10 10:00:00,i-0123456789abcdef3,t3.xlarge,ap-northeast-1,user002,start,success
2026-02-10 10:15:00,i-0123456789abcdef1,t3.small,ap-northeast-1,user001,terminate,success
2026-02-10 10:30:00,i-0123456789abcdef4,t3.medium,us-west-2,user004,start,success
2026-02-10 10:45:00,i-0123456789abcdef2,t3.large,us-east-1,user002,stop,success
2026-02-10 11:00:00,i-0123456789abcdef5,t3.small,ap-northeast-1,user003,start,success
2026-02-10 11:15:00,i-0123456789abcdef0,t3.medium,ap-northeast-1,user001,stop,success
2026-02-10 11:30:00,i-0123456789abcdef6,t3.2xlarge,eu-west-1,user005,start,success
2026-02-10 11:45:00,i-0123456789abcdef3,t3.xlarge,ap-northeast-1,user002,stop,success
2026-02-10 12:00:00,i-0123456789abcdef7,t3.medium,ap-northeast-1,user001,start,failed
2026-02-10 12:15:00,i-0123456789abcdef4,t3.medium,us-west-2,user004,reboot,success
2026-02-10 12:30:00,i-0123456789abcdef8,t3.small,ap-northeast-1,user003,start,success
2026-02-10 12:45:00,i-0123456789abcdef5,t3.small,ap-northeast-1,user002,terminate,success
2026-02-10 13:00:00,i-0123456789abcdef9,t3.large,us-east-1,user001,start,success
2026-02-10 13:15:00,i-0123456789abcdefa,t3.medium,ap-northeast-1,user004,stop,success
2026-02-10 13:30:00,i-0123456789abcdefb,t3.xlarge,ap-northeast-1,user005,start,success
2026-02-10 13:45:00,i-0123456789abcdefc,t3.small,eu-west-1,user003,start,success

ファイル名: application-logs.csv

timestamp,application,environment,log_level,message,response_time_ms
2026-02-10 09:00:00,web-api,production,INFO,Request processed successfully,45
2026-02-10 09:00:05,web-api,production,INFO,Request processed successfully,52
2026-02-10 09:00:10,web-api,production,WARN,Slow query detected,1250
2026-02-10 09:00:15,batch-job,production,INFO,Job started,10
2026-02-10 09:00:20,web-api,production,ERROR,Database connection failed,5000
2026-02-10 09:00:25,web-api,staging,INFO,Request processed successfully,38
2026-02-10 09:00:30,mobile-api,production,INFO,Request processed successfully,65
2026-02-10 09:00:35,web-api,production,INFO,Request processed successfully,42
2026-02-10 09:00:40,web-api,production,WARN,High memory usage detected,89
2026-02-10 09:00:45,batch-job,production,INFO,Processing 1000 records,150
2026-02-10 09:00:50,mobile-api,production,ERROR,Authentication failed,120
2026-02-10 09:00:55,web-api,production,INFO,Request processed successfully,48
2026-02-10 09:01:00,web-api,production,INFO,Request processed successfully,55
2026-02-10 09:01:05,web-api,staging,WARN,Cache miss,200
2026-02-10 09:01:10,batch-job,production,INFO,Job completed successfully,5
2026-02-10 09:01:15,web-api,production,ERROR,Timeout occurred,3000
2026-02-10 09:01:20,mobile-api,production,INFO,Request processed successfully,72
2026-02-10 09:01:25,web-api,production,INFO,Request processed successfully,41
2026-02-10 09:01:30,web-api,production,INFO,Request processed successfully,39
2026-02-10 09:01:35,web-api,production,WARN,Rate limit approaching,95

Athena クエリ保管用バケットの作成

任意の汎用バケットを作成しておきます。

Athenaコンソールにて、「primary」ワークグループのクエリ結果の保存先設定を先程作成したバケットに変更します。

S3アクセスポイントを作成してみる

S3 アクセスポイントの作成

FSx コンソールからボリュームを選択し、「S3 Access Point を作成」を選択するだけです。マネジメントコンソールから直感的に操作できました。

設定項目は以下の通り:

  • Access Point 名: 任意の名前
  • ファイルシステムのユーザーIDのタイプ: Windows を選択
  • ユーザー名: FSxにR/W権限があるユーザー名を指定
  • ネットワークオリジン: インターネット

アクセスポイントを作成すると、ステータスが「Creating」となります。

ステータスが「Available」に変わればOKです。

ボリュームの詳細画面でS3アクセスポイントのエイリアスが確認できるので、メモしておいてください。

S3 アクセスポイント経由でAthenaクエリを実行してみる

Athenaのクエリエディタ画面を開き、ワークグループが「primary」であることを確認します。

データベースを作成

以下のクエリを実行し、データベースを作成します。

CREATE DATABASE IF NOT EXISTS fsx_logs_db;

クエリが成功するとデータベースが作成されるので、左のメニューから作成したデータベースを選択します。

テーブルを作成

先程控えたS3アクセスポイントのエイリアスを利用して、テーブル作成クエリを実行します。

まずはEC2ログです。

CREATE EXTERNAL TABLE IF NOT EXISTS fsx_logs_db.ec2_access_logs (
  timestamp STRING,
  instance_id STRING,
  instance_type STRING,
  region STRING,
  user STRING,
  action STRING,
  status STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 's3://fsx-logs-access-dkft8aheit4pcpjqquotpx8xshxioapn1b-ext-s3alias/logs/'
TBLPROPERTIES ('skip.header.line.count'='1');

LOCATION の指定方法:

  • 形式: s3://<access-point-alias>/<path>/
  • <access-point-alias>: S3 が自動生成したエイリアス(例: fsx-logs-access-point-aqfqprnstn7aefdfbarligizwgyfouse1a-ext-s3alias
  • <path>: FSx ボリューム内のパス(例: logs/
  • 末尾のスラッシュ / を忘れずに!
  • ARN ではなく、Alias を使用する点に注意!

クエリが成功すると、テーブルが作成されて左メニューのテーブル欄にも表示されます。

同じ要領でアプリケーションログのクエリも実行します。

CREATE EXTERNAL TABLE IF NOT EXISTS fsx_logs_db.application_logs (
  timestamp STRING,
  application STRING,
  environment STRING,
  log_level STRING,
  message STRING,
  response_time_ms INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 's3://fsx-logs-access-dkft8aheit4pcpjqquotpx8xshxioapn1b-ext-s3alias/logs/'
TBLPROPERTIES ('skip.header.line.count'='1');

それぞれのテーブルが作成されました。

注意:

  • 両方のテーブルで同じ LOCATION を指定していますが、Athena はテーブル定義のカラム構造に基づいて適切にデータを読み取ります
  • もし特定のファイルだけを対象にしたい場合は、LOCATIONs3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/fsx-logs-access-point/logs/ec2-access-logs.csv のように個別ファイルを指定することも可能です

分析クエリの実行

クエリ 1: 基本的なデータ確認

-- EC2 アクセスログの全件取得
SELECT * FROM fsx_logs_db.ec2_access_logs
LIMIT 10;

クエリ 2: リージョン別のアクション集計

-- リージョン別のアクション数を集計
SELECT 
  region,
  COUNT(*) as action_count,
  COUNT(CASE WHEN status = 'success' THEN 1 END) as success_count,
  COUNT(CASE WHEN status = 'failed' THEN 1 END) as failed_count
FROM fsx_logs_db.ec2_access_logs
GROUP BY region
ORDER BY action_count DESC;

クエリ 3: 環境別のエラー率

-- 環境別のエラー率を計算
SELECT 
  environment,
  COUNT(*) as total_logs,
  COUNT(CASE WHEN log_level = 'ERROR' THEN 1 END) as error_count,
  ROUND(
    CAST(COUNT(CASE WHEN log_level = 'ERROR' THEN 1 END) AS DOUBLE) / 
    CAST(COUNT(*) AS DOUBLE) * 100, 
    2
  ) as error_rate_percent
FROM fsx_logs_db.application_logs
GROUP BY environment
ORDER BY error_rate_percent DESC;

所感

実際に検証して一番驚いたのは、「FSx ONTAPに保存したデータが、本当にS3バケットにあるかのような感覚」で扱える点です。

今までは「ファイルサーバーのデータは、一旦S3にコピーしてから分析する」のが当たり前でしたが、その壁が完全になくなったと感じました。今回はAthenaを使って手軽にログ分析を行いましたが、この手軽さならAmazon Bedrockなどの生成AIサービスと組み合わせて、社内ドキュメントを即座に活用するといった構成も捗りそうですね。

まとめ

今回は、FSx ONTAPの新機能であるS3アクセスポイントを利用して、FSx ONTAP上のログファイルをAthenaで直接分析する方法をご紹介しました。

実際に触ってみて感じた、この機能の大きなメリットは以下の3点です。

  1. これまで分析のために行っていた「S3へのデータコピー」が不要になること
  2. 長年ファイルサーバーに蓄積されてきたログやドキュメントを、そのままAmazon BedrockやAmazon SageMakerの入力データとして活用できるようになったこと
  3. Athenaだけでなく、S3互換のSDKやCLIを使ってFSx ONTAP内のデータにアクセスできるため、アプリケーションの改修コストも最小限に抑えられること

「ファイルサーバーにあるデータをもっと活用したいけれど、移行の手間が……」と悩んでいた方にとって、今回のアップデートは非常に嬉しいものになりました。

FSx ONTAPをご利用中の方はもちろん、オンプレミスからの移行を検討されている方も、ぜひこの機能を活用してはいかがでしょうか。

この記事が、皆さんのデータ利活用の一助となれば幸いです。

阿部伊織(執筆記事の一覧)

インフラエンジニアからクラウドエンジニアへ転職。