1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS CLIを使ってJetson NanoとS3のデータ同期を試してみる

Posted at

概要

AWS CLIを使ってJetson NanoとS3のデータ同期をテストした時のログを残しておきます。
テストの結果、JetsonとS3間でもaws s3 syncを使うと、差分のみのデータ同期、削除は同期しないといったデータ同期が可能であることが確認できました。
プログラムを作らなくても手軽にデータ同期の仕組みを作れそうです。

image.png

AWS CLIは、Linux ARMもサポートしており、Jetsonでも動作するようです。

AWS CLI v2 now available for Linux ARM
https://aws.amazon.com/jp/blogs/developer/aws-cli-v2-now-available-for-linux-arm/

環境

Jetson Nano
Jetpack 4.4.1

AWS CLIのバージョンは以下

$ aws --version
aws-cli/2.1.21 Python/3.7.3 Linux/4.9.140-tegra exe/aarch64.ubuntu.18 prompt/off

AWS CLIのインストール

以下の手順に従ってインストールします。
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html#ARM

curlがなかったので入れておきます。

sudo apt install curl -y

手順にある以下のコマンドでインストールします。

curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

導入されたことを確認します。

$ /usr/local/bin/aws --version
aws-cli/2.1.21 Python/3.7.3 Linux/4.9.140-tegra exe/aarch64.ubuntu.18 prompt/off

Access Key、Secret Access等の接続の設定を行います。

$ aws configure
AWS Access Key ID [None]: xxxxxxx
AWS Secret Access Key [None]: xxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json

JetsonとS3のデータ同期をテスト

ディレクトリを作成して、ファイルを5つ作成します。
aws s3 syncでデータ同期を行い、ファイルが5つアップロードされることを確認します。

nvidia@nvidia-desktop:~/work$ aws s3 ls tsota-jetson --recursive  
nvidia@nvidia-desktop:~/work$ mkdir test
nvidia@nvidia-desktop:~/work$ for i in `seq 1 5`; do touch test/${i}.txt; done
nvidia@nvidia-desktop:~/work$ ls -l test
total 0
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 1.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 2.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 3.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 4.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 5.txt
nvidia@nvidia-desktop:~/work$ aws s3 sync test s3://tsota-jetson/test/ 
upload: test/2.txt to s3://tsota-jetson/test/2.txt
upload: test/5.txt to s3://tsota-jetson/test/5.txt
upload: test/3.txt to s3://tsota-jetson/test/3.txt
upload: test/4.txt to s3://tsota-jetson/test/4.txt
upload: test/1.txt to s3://tsota-jetson/test/1.txt
nvidia@nvidia-desktop:~/work$ aws s3 ls tsota-jetson --recursive
2021-01-24 11:16:19          0 test/1.txt
2021-01-24 11:16:19          0 test/2.txt
2021-01-24 11:16:19          0 test/3.txt
2021-01-24 11:16:19          0 test/4.txt
2021-01-24 11:16:19          0 test/5.txt

追加データで5つのデータを作成します。
aws s3 syncでデータ同期を実施して、差分の5ファイルがアップロードされることを確認します。

nvidia@nvidia-desktop:~/work$ for i in `seq 6 10`; do touch test/${i}.txt; done
nvidia@nvidia-desktop:~/work$ ls -l test
total 0
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 10.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 1.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 2.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 3.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 4.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 5.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 6.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 7.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 8.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 9.txt
nvidia@nvidia-desktop:~/work$ aws s3 sync test s3://tsota-jetson/test/ 
upload: test/7.txt to s3://tsota-jetson/test/7.txt
upload: test/10.txt to s3://tsota-jetson/test/10.txt
upload: test/9.txt to s3://tsota-jetson/test/9.txt
upload: test/6.txt to s3://tsota-jetson/test/6.txt
upload: test/8.txt to s3://tsota-jetson/test/8.txt

既存ファイルを更新して同期されることを確認します。
1.txtの内容を更新して、aws s3 syncでS3のバケットが更新されることを確認します。

nvidia@nvidia-desktop:~/work$ echo "abcdef" > test/1.txt 
nvidia@nvidia-desktop:~/work$ ls -l test
total 4
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 10.txt
-rw-rw-r-- 1 nvidia nvidia 7  1月 24 11:17 1.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 2.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 3.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 4.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:15 5.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 6.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 7.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 8.txt
-rw-rw-r-- 1 nvidia nvidia 0  1月 24 11:16 9.txt
nvidia@nvidia-desktop:~/work$ aws s3 sync test s3://tsota-jetson/test/ 
upload: test/1.txt to s3://tsota-jetson/test/1.txt              
nvidia@nvidia-desktop:~/work$ aws s3 ls tsota-jetson --recursive
2021-01-24 11:17:48          7 test/1.txt
2021-01-24 11:16:54          0 test/10.txt
2021-01-24 11:16:19          0 test/2.txt
2021-01-24 11:16:19          0 test/3.txt
2021-01-24 11:16:19          0 test/4.txt
2021-01-24 11:16:19          0 test/5.txt
2021-01-24 11:16:54          0 test/6.txt
2021-01-24 11:16:54          0 test/7.txt
2021-01-24 11:16:54          0 test/8.txt
2021-01-24 11:16:54          0 test/9.txt

削除をテストしてみます。
S3への削除の同期は、--deleteオプションを指定する必要があります。
最初は--deleteオプションなしで実行して、削除が同期されないことを確認します。
次に--deleteオプションをつけて、削除が同期されることを確認します。

nvidia@nvidia-desktop:~/work$ rm test/*.txt
nvidia@nvidia-desktop:~/work$ ls -l test
total 0
nvidia@nvidia-desktop:~/work$ aws s3 sync test s3://tsota-jetson/test/ 
nvidia@nvidia-desktop:~/work$ aws s3 ls tsota-jetson --recursive
2021-01-24 11:17:48          7 test/1.txt
2021-01-24 11:16:54          0 test/10.txt
2021-01-24 11:16:19          0 test/2.txt
2021-01-24 11:16:19          0 test/3.txt
2021-01-24 11:16:19          0 test/4.txt
2021-01-24 11:16:19          0 test/5.txt
2021-01-24 11:16:54          0 test/6.txt
2021-01-24 11:16:54          0 test/7.txt
2021-01-24 11:16:54          0 test/8.txt
2021-01-24 11:16:54          0 test/9.txt
nvidia@nvidia-desktop:~/work$ aws s3 sync test s3://tsota-jetson/test/ --delete
delete: s3://tsota-jetson/test/1.txt
delete: s3://tsota-jetson/test/5.txt        
delete: s3://tsota-jetson/test/10.txt       
delete: s3://tsota-jetson/test/4.txt        
delete: s3://tsota-jetson/test/6.txt        
delete: s3://tsota-jetson/test/7.txt        
delete: s3://tsota-jetson/test/8.txt        
delete: s3://tsota-jetson/test/9.txt        
delete: s3://tsota-jetson/test/2.txt        
delete: s3://tsota-jetson/test/3.txt        
nvidia@nvidia-desktop:~/work$ aws s3 ls tsota-jetson --recursive
nvidia@nvidia-desktop:~/work$ 

以上。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?