カテゴリ: AWS S3 更新日: 2025/12/03

【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 S3の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

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

UGREEN USB-Cハブを見る

※ Amazon広告リンク