カテゴリ: AWS S3 更新日: 2026/05/12

【AWS】s3 syncでdelete・exclude・profileの使い方を解説!初心者向け完全ガイド

316
【AWS】s3 syncでdelete・exclude・profileの使い方を解説

先生と生徒の会話形式で理解しよう

生徒

「先生!AWS CLIのs3 syncコマンドって、cpとどう違うんですか?」

先生

s3 syncは、ディレクトリ同士を丸ごと同期するのに便利なコマンドなんです。差分だけコピーしてくれる点も特徴ですよ。」

生徒

「じゃあ、--deleteとか--excludeとかは何に使うんですか?」

先生

「それぞれ重要な役割があります。今回はdeleteexcludeprofileの3つの使い方を詳しく解説していきましょう。」

1. s3 syncとは?cpとの違いを理解しよう

1. s3 syncとは?cpとの違いを理解しよう
1. s3 syncとは?cpとの違いを理解しよう

aws s3 syncは、ローカルディレクトリとS3バケット、またはS3バケット同士を同期させるためのコマンドです。s3 cpは単なるコピー操作に対して、s3 syncは「差分を見て転送」するという特徴があります。

つまり、一度アップロードしたファイルを再度アップロードする必要がない場合や、更新されたファイルだけを反映したいときに、syncは非常に便利です。

2. --deleteオプションでS3を完全に同期

2. --deleteオプションでS3を完全に同期
2. --deleteオプションでS3を完全に同期

--deleteは、ローカルに存在しないファイルをS3側から削除するオプションです。つまり、ローカルの状態にS3を正確に揃えたいときに使います。


aws s3 sync ./local-dir s3://your-bucket-name/dir --delete

このように指定することで、S3側の不要なファイルも削除され、ローカルと同じ構成に保つことができます。ただし、削除は元に戻せないため、事前に--dryrunで確認することをおすすめします。

3. --excludeオプションで不要なファイルを除外

3. --excludeオプションで不要なファイルを除外
3. --excludeオプションで不要なファイルを除外

--excludeは、指定したパターンに一致するファイルを同期の対象から除外するためのオプションです。ワイルドカードも利用できます。


aws s3 sync ./project s3://your-bucket-name/project --exclude "*.log"

この例では、.log拡張子を持つファイルがすべて同期対象から除外されます。ビルド時の出力ファイルやキャッシュファイルを除外したいときに非常に便利です。

AWSの基本用語や仕組みを、図解でサクッと理解したい人には、 入門の定番書がこちらです。

AWSの基本が全部わかる教科書をAmazonで見る

※ Amazon広告リンク

4. 複数の--excludeと--includeの組み合わせ

4. 複数の--excludeと--includeの組み合わせ
4. 複数の--excludeと--includeの組み合わせ

--exclude--includeは組み合わせて使うことで、より柔軟に対象ファイルをコントロールできます。以下のように使用します。


aws s3 sync ./project s3://your-bucket-name/project --exclude "*" --include "*.html"

この場合、全てのファイルを除外(--exclude "*")した上で、HTMLファイルのみを含める(--include "*.html")という意味になります。

5. --profileで複数のAWSアカウントを使い分け

5. --profileで複数のAWSアカウントを使い分け
5. --profileで複数のAWSアカウントを使い分け

AWS CLIでは--profileオプションを使って、複数のAWSアカウントを簡単に切り替えることができます。事前にaws configure --profileで設定しておく必要があります。


aws s3 sync ./assets s3://my-bucket/assets --profile dev-account

この例では、dev-accountという名前で設定されたプロファイルの認証情報を使ってS3に同期します。開発用、検証用、本番用と複数アカウントを使い分ける際に必須の機能です。

6. S3からローカルに同期する場合

6. S3からローカルに同期する場合
6. S3からローカルに同期する場合

s3 syncは、ローカル→S3だけでなく、S3→ローカルへの同期も可能です。S3に保存されたバックアップをローカルに復元する場合などに役立ちます。


aws s3 sync s3://your-bucket-name/data ./local-data

このようにすることで、S3の内容がローカルのlocal-dataディレクトリに同期されます。--deleteを併用することで、ローカルの古いファイルも削除して正確に一致させることができます。

7. --dryrunで事前に確認しよう

7. --dryrunで事前に確認しよう
7. --dryrunで事前に確認しよう

同期操作はファイルの削除や上書きを伴うことがあるため、--dryrunを使って事前に動作を確認することが重要です。


aws s3 sync ./project s3://your-bucket-name/project --delete --dryrun

--dryrunを付けると、実際にはファイルの転送や削除をせずに、何が実行されるかを表示してくれます。安全に運用するための基本的なテクニックです。

8. 特定の拡張子だけ同期したい場合の実例

8. 特定の拡張子だけ同期したい場合の実例
8. 特定の拡張子だけ同期したい場合の実例

例えば、画像ファイルだけをS3にアップロードしたい場合、次のように--includeを活用します。


aws s3 sync ./media s3://your-bucket-name/media --exclude "*" --include "*.png" --include "*.jpg"

これで.png.jpgだけが同期され、他のファイルは無視されます。静的ファイルや特定のデータだけを対象にしたいときに最適です。

9. よくあるミスとその対処法

9. よくあるミスとその対処法
9. よくあるミスとその対処法
  • プロファイル名のスペルミス → aws configure list-profilesで確認
  • 対象フォルダの/の有無 → 末尾スラッシュで挙動が変わるので注意
  • --deleteのつけ忘れ → 削除が反映されない
  • Windows環境での--excludeパスの違い → バックスラッシュ\に注意

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

AWS CLIの「s3 sync」コマンドとは、具体的にどのような機能を持つコマンドなのですか?初心者にもわかりやすく教えてください。

AWS CLIの「s3 sync」コマンドは、お使いのパソコンにあるローカルディレクトリと、クラウド上のAWS S3バケット、あるいは異なるS3バケット同士の中身を「同期」させるための非常に強力なツールです。プログラミング初心者が最初につまずきやすいポイントですが、単なるコピーではなく、送信元と送信先の「差分」を自動的に判別して、新しく作成されたファイルや更新されたファイルだけを効率的に転送してくれるのが最大の特徴です。これにより、無駄なデータ通信を抑えつつ、常に最新の状態を維持することができます。
AWS S3の一覧へ
新着記事
Flutter
Flutterでのリポジトリパターンの実装例
Flutterでリポジトリパターンを実装する方法を完全解説!初心者向けアーキテクチャ設計入門
Java
Java の Objects クラスを使って null チェックを簡単にする方法
JavaのObjectsクラスの使い方を完全ガイド!nullチェックを簡単・安全に行う方法
Java
Java の UUID クラスを使って一意の識別子を作成する方法
JavaのUUIDクラスの使い方を完全ガイド!初心者でもわかる一意な識別子の作成方法
Java
Java の古い日付クラス(Date, Calendar)と新しい日付 API の違い
JavaのDateとCalendarと新しい日付APIの違いとは?初心者向け完全ガイド
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク