Upgrade to Pro — share decks privately, control downloads, hide ads and more …

S3に関する調査が必要になったときの 効率よく調査できるTips

S3に関する調査が必要になったときの 効率よく調査できるTips

Avatar for caad TakaraShinya

caad TakaraShinya

November 02, 2025
Tweet

More Decks by caad TakaraShinya

Other Decks in Technology

Transcript

  1. S3調査でよくある悩み Amazon S3に保存された⼤量のデータを調査する際に直⾯する⼀般的な課題 ファイルが多すぎて、どれを⾒ればいいかわ からない 膨⼤な数のファイルの中から、⽬的のデータを⾒つけ出 すのに苦労する。 調査のために全ファイルをダウンロードする のは時間とコストがかかりすぎる 必要なデータがファイルの⼀部であるにも関わらず、全

    体をダウンロードしなければならず、時間、ネットワー ク帯域、データ転送コストが無駄になる。 ローカルPCのストレージが⾜りない ⼤規模なS3数据をローカル環境にすべて保存するだけの ストレージ容量がない。 データ鮮度の問題 ダウンロードしたデータはS3上の最新の状態を反映して おらず、データが古くなる可能性がある。 これらの課題を解決するための新しいアプローチ 3 / 18
  2. 従来の調査方法:ローカルへの全件ダウンロード S3に保存されたデータを調査する際、最も直感的な⽅法の⼀つが、必要なファイルをローカル環境にダウンロードするこ とです。 S3バケット ダウンロード ローカル環境 調査 時間と帯域幅の消費 ⼤容量のファイルをダウンロードするには、膨⼤な時間とネットワー ク帯域幅が必要です。必要なデータがファイルの⼀部である場合で

    も、全体をダウンロードしなければならないため、無駄が⽣じます。 ストレージ容量の圧迫 ローカル環境のストレージ容量には限りがあり、⼤規模なS3数据をす べて保存することは現実的ではありません。 コストの増加 データ転送量に応じて料⾦が発⽣するため、不要なダウンロードはコ ストの増加に直結します。 データ鮮度の問題 ダウンロードしたデータは、その時点のスナップショットであり、S3 上の数据が更新された場合、ローカルのデータは古くなります。 従来の調査⽅法の課題 4 / 18
  3. 解決策:Mountpoint for S3とは? Mountpoint for Amazon S3は、Amazon S3バケットをローカルのファイルシステムのようにマウントできるオープン ソースのファイルクライアントです。これにより、S3 APIを意識することなく、使い慣れたLinuxコマンドや既存のファイ

    ルベースのアプリケーションでS3上のファイルに直接アクセスできるようになります。 S3バケット ローカルファイルシステム 既存アプリケーション ファイルシステムインター フェース S3オブジェクトをファイルとしてマウント し、ファイルアプリケーションのAPIコール をS3 REST APIコールに変換します。 ⾼いスループット性能 AWS Common Runtime (CRT)と統合され、 データのプリフェッチ、シーケンシャルデー タの最適化、データのキャッシングによって パフォーマンスが向上します。 既存ツールの活⽤ UNIXスタイルのファイルアクセスを知って いる既存のアプリケーション、コマンド、 ツール(ls, cat, dd, findなど)をS3バケット に対してそのまま使⽤できます。
  4. Mountpoint for S3の仕組み Mountpoint for S3は、Linuxの仮想ファイルシステム (VFS) を利⽤하여動作します。ユーザーが⾏うファイル操作がどのようにS3 API コールに変換されるかを以下のように追跡できます。

    ファイル操作 ls, cat, open, read などのコ マンドや関数 VFS (仮想ファイル システム) ファイル操作をMountpoint への呼び出しに変換 Mountpoint 呼び出しをS3 APIコールに 変換して処理 S3 API LIST, GET, PUT などのS3 APIコール 透過的な変換 アプリケーション側でS3 APIを直接扱うためのコード変更が不 要。既存のツールやワークフローをそのまま活⽤できます。 API抽象化 S3 APIの詳細を意識せずに、標準的なファイルシステムインター フェースでS3オブジェクトにアクセスできます。 Mountpoint for S3 はオープンソースのファイルクライアントです 7 / 18
  5. Mountpoint for S3の主な特徴① ファイルシステムインターフェース S3オブジェクトをファイルとしてマウントし、ファイ ル操作のように扱えます ファイルアプリケーションのAPIコールをS3 REST API コールに変換します

    既存のツールやワークフローを変更せずに利⽤できます ⾼いスループット性能 AWS Common Runtime (CRT)と統合され、効率的な データ処理が可能に データのプリフェッチ、シーケンシャル最適化、 キャッシング機能でパフォーマンス向上 ネットワーク帯域を有効に活⽤し、最⼤100 GB/秒の データ転送能⼒を活⽤ Mountpoint for S3はオープンソースのファイルクライアントです 8 / 18
  6. Mountpoint for S3の主な特徴② 既存ツールの活⽤ S3オブジェクトをファイルとし てマウントし、既存のLinuxコマ ンドやアプリケーションで直接 操作可能 `ls`, `cat`,

    `dd`, `find`などの UNIXスタイルファイルアクセス をS3バケットにも適⽤ S3 APIを意識せずに、使い慣れ たツールでデータ操作が可能に 開発効率の向上 ローカルファイルのようにS3上 のデータを扱えるため、開発サ イクルの短縮に寄与 学習コストや作業の複雑さが軽 減され、エンジニアの⽣産性と 満⾜度が向上 既存のスキルセットとツールを 最⼤限に活⽤できる画期的なア プローチ コスト削減の可能性 必要なデータのみをオンデマン ドで読み込むことで、不要な データ転送量を削減 S3オペレーションコストを効果 的に抑えることができる Mountpoint⾃体の利⽤に追加料 ⾦は発⽣せず、⽀払いは基礎と なるS3オペレーションに対して のみ 実務上でのメリットが豊富にあります 9 / 18
  7. 導入手順:コマンド例 1 RPMパッケージのダウンロード ダウンロードコマンド $ wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm Mountpoint for S3のRPMパッケージをダウンロードします

    2 Mountpointのインストール インストールコマンド $ sudo yum install ./mount-s3.rpm ダウンロードしたRPMパッケージをインストールします Mountpoint for S3の導⼊⼿順 10 / 18
  8. 導入手順:コマンド例 4 S3バケットのマウント マウントコマンド $ mount-s3 hogehoge hogehoge 作成したディレクトリにS3バケットをマウントします 3

    マウントポイントの作成 ディレクトリ作成 $ mkdir hogehoge S3バケットをマウントするためのローカルディレクトリを作成します Mountpoint for S3の導⼊⼿順 10 / 18
  9. 実践例:S3上のファイル探索 マウントしたS3バケット内をLinuxコマンドで探索する実例 bash - 80x24 $ cd hogehoge $ ls

    -l | head -10 total 0 drwxr-xr-x 2 hoge hoge 0 Aug 7 23:07 2024_12_30 drwxr-xr-x 2 hoge hoge 0 Aug 7 23:07 2024_12_31 ... $ cd 2024_12_30/hogehoge $ ls -l | head -10 total 2680 -rw-r--r-- 1 jeff jeff 19337 Feb 10 2024 17-12-01.jpg -rw-r--r-- 1 jeff jeff 19380 Feb 10 2024 17-15-01.jpg ... ファイル探索の効率化 S3バケット内のファイル構造を即座に把握可能 必要に応じて特定のディレクトリのみに移動し て探索 ローカル環境に全ファイルをダウンロードする ことなく、必要最⼩限の情報のみ取得 既存のLinuxコマンド(ls, find, grepなど)をそ のまま使⽤可能 Mountpoint for S3の利点 12 / 18
  10. 実践例:S3上のファイルを直接処理 Mountpoint for S3を使⽤することで、S3上のファイルを ローカルにダウンロードすることなく直接操作できます。 ripgrepによるファイル検索 S3バケット内に保存された⼤量のファイルから特定 の⽂字列を含むファイル名を検索する例です。通常 であればすべてをダウンロードする必要があります が、Mountpointを使⽤すれば直接処理可能です。

    重要なポイント ローカル環境への全ダウンロードが不要 使い慣れたLinuxコマンドをそのまま使⽤ S3の存在を意識せずにファイル操作可能 bash # S3バケットをマウント $ mount-s3 hogehoge hogehoge # 画像ファイルが含まれたディレクトリに移動 $ cd hogehoge/2024_12_30/hoge # ripgrepで文字列でファイル検索 (スレッドを利用して並列実行も可能) $ ./rg --threads $(($(nproc) * 2)) -l --glob '!hogehoge-prod/monitoring/' \ "memory|cpu|" \ ./hogehoge-prod/ > /tmp/filecontent_hit_list_globed.txt MountpointがバックグラウンドでS3からのデータ読み込みを効率的に処理する ため、ユーザーはS3の存在を意識せずに既存のツールを活⽤できます。 Mountpoint for S3 13 / 18
  11. Mountpoint導入による効果① 調査時間の劇的な短縮 ⼤容量ファイルのダウンロード待ち時間がゼロ 必要なデータに即座にアクセス可能 バージニア等、遠隔地のデータでも⾼速 ※24万件中 2300件のファイル抽出が30分かからず データ転送コストの削減 必要なデータのみをオンデマンドで読み込むた め、不要なデータ転送が削減され、S3からのデー

    タ転送コストを抑制できます。Mountpointの利⽤ ⾃体には追加コストがかかりません。 ローカルストレージの節約 ⼤規模なS3数据をローカルに保存する必要がなく なり、ローカルPCのストレージ容量を圧迫する⼼ 配がなくなります。必要な場合のみデータがロー カルにキャッシュされるため、効率的なストレー ジ利⽤が可能です。 エンジニアの作業ストレス軽減 S3 APIを意識することなく、使い慣れたLinuxコマ ンドや既存のアプリケーションでS3上のデータを 扱えるため、学習コストや作業の複雑さが軽減さ れ、エンジニアの⽣産性と満⾜度が向上します。 Mountpoint for S3の導⼊による定量的効果 14 / 18
  12. 他のS3調査手法との比較 Mountpoint for S3 特徴 • ファイルシステムインターフェース • ⾼いスループット性能 •

    既存ツールの活⽤可 最適なユースケース • ⼤規模データ調査 • ETLプロセス Amazon Athena 特徴 • SQLによるクエリ • 即座に実⾏可能 • コスト効率が良い 最適なユースケース • 分析クエリ • レポート作成 S3 Select 特徴 • JSONデータの抽出 • 低遅延で⾼効率 • API経由でのアクセス 最適なユースケース • API連携 • データ加⼯ ⽬的に応じて最適な調査⼿法を選択し、活⽤することが重要です S3調査⼿法の⽐較 16 / 18
  13. まとめ:Mountpoint for S3の活用ポイント ファイルシステムインターフェースの活⽤ 既存のLinuxコマンドやアプリケーションを変更せずにS3 データに対して直接アクセスできるため、調査フローワー クの効率化が期待できる。 ⾼いスループット性能 AWS Common

    Runtimeと統合され、データのプリフェッ チやキャッシングによりパフォーマンスが向上。ネット ワーク帯域を効率的に活⽤できる。 コスト削減の効果 必要なデータのみをオンデマンドで読み込むことで、不要 なデータ転送量を削減し、S3オペレーションコストを抑え ることができる。 既存ツールの活⽤ `ls`, `cat`, `grep`, `ripgrep`など、⻑年使い慣れたコマ ンドラインツールやスクリプトをS3データに対してそのま ま適⽤できる。 ベストプラクティス S3バケットのマウントポイントは、⽤途に合わせて適切なオプショ ンで設定する ⼤規模データセットの調査には、Mountpoint for S3を推奨 Mountpoint for S3 | 効率的なS3データ調査 17 / 18