Skip to content

ARM 版 Amazon Linux 2023 に Mountpoint for Amazon S3 をインストールする

以前に Amazon Linux2 で S3 Bucket を goofys でマウントする というメモを書きました。 現在では新たに AWS 謹製の「Mountpoint for Amazon S3」がリリースされています。

今回は t4a.small (ARM アーキテクチャ) のAmazon Linux 2023 へ Mountpoint for Amazon S3 をインストールする手順をメモしておきます。

インストール

以下を実行します。 t4a.small インスタンスで 8 分 30 秒程度かかりました。

1
2
3
4
5
6
dnf -y install fuse fuse-devel cmake3 clang-devel git
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone --recurse-submodules https://github.com/awslabs/mountpoint-s3.git
cd mountpoint-s3
cargo build --release

Mountpoint for Amazon S3 は Rust で書かれています。 上記の手順にある Rust のインストール時は以下のようにインストール方法を選択する箇所がありました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /root/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory is located at:

  /root/.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:

  /root/.cargo/bin

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /root/.profile
  /root/.bash_profile
  /root/.bashrc

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: aarch64-unknown-linux-gnu
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>

ビルドが完了すると target/release/mount-s3 にバイナリが生成されました。 現時点のバージョンは以下でした。

1
2
# mount-s3 --version
mountpoint-s3 0.2.0-4bcd182

バイナリは PATH 環境変数の通った場所へコピーしておきます。

1
cp target/release/mount-s3 /usr/local/bin/

S3 Bucket のマウント

S3 Bucket をマウントします。

1
2
mkdir ~/mnt
mount-s3 my-s3-bucket-name ~/mnt

参考

ヘルプ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# mount-s3 --help
Mountpoint for Amazon S3

Usage: mount-s3 [OPTIONS] <BUCKET_NAME> <MOUNT_POINT>

Arguments:
  <BUCKET_NAME>  Name of bucket to mount
  <MOUNT_POINT>  Mount point for file system

Options:
  -l, --log-directory <LOG_DIRECTORY>  Log file directory [default: $HOME/.mountpoint-s3]
  -f, --foreground                     Run as foreground process
  -h, --help                           Print help
  -V, --version                        Print version

Bucket options:
      --prefix <PREFIX>              Prefix inside the bucket to mount, ending in '/' [default: mount the entire bucket] [default: ]
      --region <REGION>              AWS region of the bucket [default: auto-detect region]
      --endpoint-url <ENDPOINT_URL>  S3 endpoint URL [default: auto-detect endpoint]
      --virtual-addressing           Force virtual-host-style addressing
      --path-addressing              Force path-style addressing
      --requester-pays               Set the 'x-amz-request-payer' to 'requester' on S3 requests

Mount options:
      --auto-unmount           Automatically unmount on exit
      --allow-root             Allow root user to access file system
      --allow-other            Allow other non-root users to access file system
      --uid <UID>              Owner UID [default: current user's UID]
      --gid <GID>              Owner GID [default: current user's GID]
      --dir-mode <DIR_MODE>    Directory permissions [default: 0755]
      --file-mode <FILE_MODE>  File permissions [default: 0644]

Client options:
      --throughput-target-gbps <N>  Desired throughput in Gbps [default: 10]
      --thread-count <N>            Number of FUSE daemon threads [default: 1]
      --part-size <PART_SIZE>       Part size for multi-part GET and PUT [default: 8388608]

AWS credentials options:
      --no-sign-request    Do not sign requests. Credentials will not be loaded if this argument is provided.
      --profile <PROFILE>  Use a specific profile from your credential file.