[OCI]goofysを利用してAWS S3からOCIのオブジェクト・ストレージに直接ファイルをコピーしてデータ移行してみた
はじめに
オブジェクト・ストレージをファイルシステムとしてマウントできるgoofysを利用して、AWSのS3バケットからOCIオブジェクト・ストレージに直接データを移行してみました。
この方法であれば、S3バケット内のファイルを一度どこかにダウンロードしてからアップロードする必要がないため、中間ストレージが不要になります。
安定した環境が必要な場合は、S3側にAWS Storage Gateway、OCIオブジェクト・ストレージ側にOracle Cloud Infrastructure Storage Gatewayを使用することをお勧めします。
事前準備
AWS側(データ移行元)
・S3バケット(ここではfrom-aws-bucketという名前です)
・S3バケットにアクセスできるユーザのアクセスキーとシークレットキー
OCI(データ移行先)
・オブジェクト・ストレージ・バケット(ここではociという名前です)
・オブジェクト・ストレージ・バケットにアクセスできるユーザの顧客秘密キー(アクセス・キーと秘密キー)
・インターネットアクセスが可能なコンピュート・インスタンス(今回はOSとしてOracle Linux 7.9を使用)
1. goofysのインストールと設定
SSHクライアントからコンピュート・インスタンスにopcユーザでログインします。
goofysはGo、fuseを使用するので、事前にインストールします。
sudo yum install -y golang fuse
goofysのバイナリをダウンロードします。
wget https://github.com/kahing/goofys/releases/latest/download/goofys
goofysをパスが通っているディレクトリに移動します。
sudo cp goofys /usr/local/bin
オーナーをrootに変更し、パーミッションを変更します。
sudo chown root:root /usr/local/bin/goofys
sudo chmod 775 /usr/local/bin/goofys
goofysが使用する認証情報の設定ファイルを作成します。
sudo mkdir -p /root/.aws
sudo vi /root/.aws/credentials
[oci]
aws_access_key_id = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA <- OCIユーザのアクセスキー
aws_secret_access_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB <- OCIユーザの秘密キー
[aws]
aws_access_key_id = CCCCCCCCCCCCCCCCCCCC <- AWSユーザのアクセスキー
aws_secret_access_key = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD <= AWSユーザのシークレットキー
以上でgoofysを使用する準備が整いました。
2. goofysによるS3バケットとオブジェクト・ストレージ・バケットのマウント
マウントポイントを作成します。
・/mnt_o:OCI オブジェクト・ストレージ・バケット(oci)用のマウントポイント
・/mnt_a:AWS S3バケット(from_aws_bucket)用のマウントポイント
sudo mkdir -p /mnt_o
sudo chmod -R 777 /mnt_o
sudo mkdir -p /mnt_a
sudo chmod -R 777 /mnt_a
/etc/fstabを編集します。
sudo vi /etc/fstab
以下の2行をファイルの末尾に追加します。
goofys#oci /mnt_o fuse _netdev,allow_other,--dir-mode=0755,--file-mode=0666,--uid=1000,--gid=1000,--endpoint=https://<ネームスペース>.compat.objectstorage.<OCIリージョン識別子>.oraclecloud.com,--region=<OCIリージョン識別子>,--profile=oci 0 0
goofys#from-aws-bucket /mnt_a fuse _netdev,allow_other,--region=<AWSリージョン識別子>,--profile=aws 0 0
mount -aでfstabの内容を反映し、OCIのオブジェクト・ストレージ・バケット oci を**/mnt_oに、AWSのS3バケット from_aws_bucket を/mnt_a**にマウントします。
sudo mount -a
3. S3バケットからオブジェクト・ストレージ・バケットへのデータコピー
AWSのコンソールから、S3バケット from_aws_bucket の内容を確認します。
テスト用のPDFファイルが30個入っています。
S3バケット from_aws_bucket をマウントした /mnt_a の内容を確認します。
[opc@iptest /]$ cd /mnt_a
[opc@iptest mnt_a]$ ls -l
total 63990
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 10.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 11.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 12.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 13.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 14.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 15.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 16.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 17.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 18.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 19.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 1.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 20.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 21.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 22.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 23.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 24.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 25.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 26.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 27.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 28.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 29.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 2.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 30.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 3.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 4.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 5.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 6.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 7.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 8.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:36 50544 9.pdf
S3バケット from_aws_bucket の内容が表示されることを確認できました。
では、cpコマンドで /mnt_a 内のファイルを /mnt_o にコピーしてみます。
cp /mnt_a/* /mnt_o
コピーが完了したら、オブジェクト・ストレージ・バケット oci をマウントした /mnt_o の内容を確認します。
[opc@iptest mnt_a]$ cd /mnt_o
[opc@iptest mnt_o]$ ls -l
total 63990
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 10.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 11.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 12.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 13.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 14.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 15.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 16.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 17.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 18.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 19.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 1.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 20.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 21.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:39 50544 22.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 23.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 24.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 25.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 26.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 27.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 28.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 29.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 2.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 30.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 3.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 4.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 5.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 6.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 7.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 8.pdf
-rw-r--r--. 1 root root 2183884 Nov 17 14:40 50544 9.pdf
/mnt_a(=S3バケット from_aws_bucket )の内容が /mnt_o にコピーされました。
OCIのコンソールから、オブジェクト・ストレージ・バケット oci の内容を確認します。
S3バケット from_aws_bucket の内容がオブジェクト・ストレージ・バケット ociにコピーされていることが確認できました。
まとめ
goofysを使用することで、AWSのS3バケットの内容を一度ダウンロードすることなく、OCIのオブジェクト・ストレージ・バケットに直接コピーしてデータを移行することができました。めでたし、めでたし。
ファイル数やファイルサイズによるパフォーマンスの変化についても、後日確認してみたいと思います。
参考情報
Author And Source
この問題について([OCI]goofysを利用してAWS S3からOCIのオブジェクト・ストレージに直接ファイルをコピーしてデータ移行してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/500InternalServerError/items/2428e353398844766b43著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .