Rocky Linux 8/9 に AWS S3をマウントする。

概要

Rock Linux 8で保存しているデータのバックアップを取るために、S3へデータ転送を行うことにしました。
マウントしてファイルの転送は可能です。
転送速度の問題が主になりますが、課題が無い訳ではありません。
取り敢えず、マウントしてファイル共有出来るという感じです。

手順リスト

  • Step-1:S3の準備
  • Step-2:ユーザ準備
  • Step-3:awscliのインストール
  • Step-4:goofysのインストール
  • Step-5:検証

Step-1:S3の準備

AWSのS3バケットを作成します。

バケット名とリージョンを指定して作成します。
その他の設定については、特に影響は無いみたいです。
当初、「このバケットのブロックパブリックアクセス設定」にある「パブリックアクセスをすべて ブロック」になっているので気になったのですが、ユーザのアクセス権限が優先されるらしく、設定次第で実質的にはパブリックでのアクセスも可能なのでしょう。(恐いなぁ~と思う人は、嘘だと思って試してみると良いでしょう。)

Step-2:ユーザ準備

S3へアクセスするためにIAMでユーザを登録します。
既存のユーザでも構いません。
ユーザに対し以下を設定します。

アクセス権限:AmazonS3FullAccess
アクセス権限タブ→アクセス権限の追加でAmazonS3FullAccessを追加します。

認証情報タブ→アクセスキーの作成でアクセスキーを新規に作成します。
アクセスキーIDとシークレットアクセスキーが発行されます。
シークレットアクセスキーは、このタイミングだけしか表示することが出来ませんので大切に保管してください。
CSVファイルとしてダウンロードすることも可能なので、ダウンロードしておいても良いでしょう。

Step-3:awscliのインストール

多分、CentOS 8/Rocky Linux 8から有効だと思いますが、以下の方法でawscliをインストールします。

これで行けるかと思ったのですが、タイミング悪くRocky 9ではdnfでインストールが出来ませんでした。
Pythonで対象モジュールのインストールが必要となるのですが、インストールしてもダメでした。単純なバグですが。。。面倒なので直接インストールする場合は下記を参考にインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions

インストールの確認は以下のコマンドです。

awscliのインストールが完了したら、先に作成したS3へアクセスするための初期設定を行います。

AWSへのアクセスIDとシークレットキーを指定します。
出力フォーマットはjson形式を指定します。
出力形式を指定しないと、この後の動作が上手く動作しません。

Step-4:goofysのインストール

まずは、golangとfuseをインストールします。

次にgoofysをインストールするのですが、最新版は以下でインストールすることが出来ます。

以下のコマンドでインストール出来たことを確認します。

Step-5:マウントする。

まずはマウントポイントを作成します。

これで準備は完了です。

実際にマウントしてみます。
コマンド形式はmountコマンドと同じですね。

課題

/etc/fstabへ静的マウントの方法が分かっていません。
出来そうなんだけど、検証中です。
TBD