S3プロトコルURI (s3://) を解析する
AWS CLI、SDK、SparkやHadoopなどのツールで使用されるs3://プロトコルURI形式を解析します。HTTPエンドポイントへのマッピング方法を理解します。
S3 Protocol
詳細な説明
s3://プロトコルURI
s3://プロトコルはHTTP URLではありません。AWSツール(CLI、SDK)、Apache Spark、Hadoop、その他のデータ処理フレームワークがS3オブジェクトを参照するために使用するURIスキームです。HTTPエンドポイントの詳細を抽象化した、簡潔で人間が読みやすい形式を提供します。
URI構造
s3://BUCKET/KEY
例
s3://data-lake-prod/raw/events/2024/01/15/events.parquet
解析されたコンポーネント
| コンポーネント | 値 |
|---|---|
| バケット | data-lake-prod |
| キー | raw/events/2024/01/15/events.parquet |
| リージョン | (URIに埋め込まれていない) |
| スタイル | S3プロトコル |
s3://が使用される場面
| コンテキスト | 例 |
|---|---|
| AWS CLI | aws s3 cp s3://bucket/key ./local-file |
| AWS SDK | SDK設定でS3の場所を指定 |
| Apache Spark | spark.read.parquet("s3://bucket/path") |
| Hadoop | hadoop fs -ls s3://bucket/prefix/ |
| AWS Glue | データカタログのテーブルロケーション |
| AWS Athena | クエリ結果の保存場所 |
| Terraform | S3バックエンドの状態保存 |
リージョン解決
s3:// URIにはリージョン情報が含まれません。リージョンは以下で解決されます:
AWS_DEFAULT_REGION環境変数~/.aws/configファイルのプロファイル- EC2インスタンスメタデータ(AWS上で実行時)
- バケットの実際のリージョン(HEADリクエスト経由)
関連URIスキーム
s3a://— Hadoop 2.x+でS3Aファイルシステムコネクタによる改善されたS3アクセスに使用。s3n://— レガシーHadoop S3ネイティブファイルシステム(非推奨)。s3-external-1://— まれに使用、us-east-1の明示的ルーティング用。
ユースケース
AWS Glueジョブスクリプトで使用されるs3:// URIと、WebアプリケーションフロントエンドのブラウザベースアクセスやAPI呼び出しに必要なHTTPS URLの間で変換する。