前提環境の確認
RustFSのデプロイにはDocker環境が必須となる。まずはローカルマシンにDockerがインストールされているか確認する。ターミナルを開き、以下のコマンドを実行してバージョン情報を取得する。
docker --version
バージョン番号が表示されれば準備完了である。コマンドが見つからない場合は、OSに応じたDockerエンジンまたはDocker Desktopを導入してほしい。
また、コンテナを削除してもデータが失われないよう、ホストマシンのディスクにデータ永続化用の十分な空き容量を確保しておくことを推奨する。
データ永続化を伴うコンテナの起動
コンテナ再作成時のデータ消失を防ぐため、ホストのディレクトリをコンテナにマウントして起動する。以下のコマンドをコピーし、必要に応じてパラメータを変更して実行する。
docker run -d \
--name rustfs_local \
-p 19000:9000 \
-p 19001:9001 \
-v /opt/rustfs_data:/data \
-e RUSTFS_ACCESS_KEY=ROOT_ACCESS \
-e RUSTFS_SECRET_KEY=P@ssw0rd! \
rustfs/rustfs:latest
各オプションの概要は以下の通りである:
--name rustfs_local: コンテナの識別名。運用時の操作が容易になる。-p 19000:9000: S3 API通信用のポートマッピング。外部クライアントは19000番ポートでアクセスする。-p 19001:9001: Web管理コンソール用のポートマッピング。ブラウザから19001番ポートでアクセスする。-v /opt/rustfs_data:/data: データ永続化のためのマウント設定。ホストの/opt/rustfs_dataにデータが保存される。RUSTFS_ACCESS_KEY: 認証用のアクセスキー(S3のAKに相当)。RUSTFS_SECRET_KEY: 認証用のシークレットキー(S3のSKに相当)。安全な文字列を指定すること。
起動後、以下のコマンドでステータスを確認する。
docker container ls
リスト内でrustfs_localのSTATUSがUpになっていれば、サービスは正常に起動している。
Web管理コンソールへのアクセス
ブラウザを起動し、以下のURLにアクセスする。
http://localhost:19001
ログイン画面が表示されたら、環境変数として設定した認証情報を入力する。
- Access Key:
ROOT_ACCESS - Secret Key:
P@ssw0rd!
ログイン後は、バケットの作成、オブジェクトのアップロード・削除、アクセス権限の変更などをGUI上で直感的に操作できる。
S3インターフェースの動作検証
RustFSは標準的なS3プロトコルと完全な互換性を持つ。AWS CLIを用いて、実際のAPI通信を検証する。
AWS CLIのセットアップ
awscliがインストールされている前提で、以下のコマンドを実行し認証情報を設定する。
aws configure
対話形式で以下の通り入力する。
AWS Access Key ID [None]: ROOT_ACCESS
AWS Secret Access Key [None]: P@ssw0rd!
Default region name [None]: local
Default output format [None]: json
バケットの作成
ローカル環境のエンドポイントを明示的に指定し、検証用のバケットを作成する。
aws --endpoint-url http://localhost:19000 s3 mb s3://validation-bucket
ファイルのアップロード確認
適当なテストファイルをアップロードし、動作を確認する。
aws --endpoint-url http://localhost:19000 s3 cp sample.log s3://validation-bucket/
コマンドの実行が成功したら、Webコンソール上でvalidation-bucketの中身を確認するか、aws --endpoint-url http://localhost:19000 s3 ls s3://validation-bucket/を実行してファイルが存在することを確認する。これにより、S3 SDKを利用するアプリケーションからもシームレスに接続できることが証明される。
コンテナ運用のコマンド群
日常的なメンテナンスで頻繁に使用するコマンドを以下に挙げる。
# コンテナの停止
docker container stop rustfs_local
# コンテナの起動
docker container start rustfs_local
# ログの出力確認(トラブルシューティング用)
docker container logs -f rustfs_local
# コンテナの削除(マウントされたホスト側のデータは保持される)
docker container rm -f rustfs_local
ポート番号や認証キーを変更したい場合は、一度コンテナを削除し、新しいパラメータを指定して再度docker runを実行すればよい。
ユースケース
- ローカル開発環境: クラウドのS3サービスの代替として利用し、本番環境への移行時のコード変更を最小限に抑える。
- データレイク基盤の検証: Apache IcebergやDuckDBなどが前提とするストレージ層として即座に構築し、読み書きのロジックをテストする。
- 個人用ファイルストア: 外部クラウドに依存しない、プライベートな軽量バックアップ領域として運用する。
- ベンチマークテスト: MinIOなど他のオブジェクトストレージと並行して構築し、同一条件での性能比較を行う。