概要
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をインストールします。
1 2 |
# dnf install epel-release # dnf install awscli |
これで行けるかと思ったのですが、タイミング悪くRocky 9ではdnfでインストールが出来ませんでした。
Pythonで対象モジュールのインストールが必要となるのですが、インストールしてもダメでした。単純なバグですが。。。面倒なので直接インストールする場合は下記を参考にインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions
1 2 3 |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install |
インストールの確認は以下のコマンドです。
1 |
aws --version |
awscliのインストールが完了したら、先に作成したS3へアクセスするための初期設定を行います。
1 2 3 4 5 |
# aws configure AWS Access Key ID [None]: XXXXXXXXXXXXXX AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Default region name [None]: Default output format [None]: json |
AWSへのアクセスIDとシークレットキーを指定します。
出力フォーマットはjson形式を指定します。
出力形式を指定しないと、この後の動作が上手く動作しません。
Step-4:goofysのインストール
まずは、golangとfuseをインストールします。
1 |
# yum install golang fuse |
次にgoofysをインストールするのですが、最新版は以下でインストールすることが出来ます。
1 2 |
# curl -L https://github.com/kahing/goofys/releases/latest/download/goofys -o /usr/local/bin/goofys # chmod 755 /usr/local/bin/goofys |
以下のコマンドでインストール出来たことを確認します。
1 |
# goofys --version |
Step-5:マウントする。
まずはマウントポイントを作成します。
1 |
# mkdir /mnt/s3-strage |
これで準備は完了です。
実際にマウントしてみます。
コマンド形式はmountコマンドと同じですね。
1 |
# goofys bucket_name /mnt/s3-strage/ |
課題
/etc/fstabへ静的マウントの方法が分かっていません。
出来そうなんだけど、検証中です。
TBD