-
AWS S3バケットの作成: AWSコンソールにアクセスし、新しいS3バケットを作成します。必要な設定を行い、バケットのアクセス許可を適切に設定してください。
-
CloudFrontディストリビューションの作成: AWSコンソールのCloudFrontサービスにアクセスし、新しいディストリビューションを作成します。ディストリビューションの設定で、以下の項目を設定します。
- Origin Domain Name: S3バケットのエンドポイントを指定します。
- Origin Path: オプションですが、S3バケット内の特定のパスを指定することもできます。
- Default Cache Behavior Settings: キャッシュの設定を行います。
- Alternate Domain Names (CNAMEs): CloudFrontディストリビューションに関連付けるカスタムドメインを指定します。
-
Djangoの設定変更: Djangoの
settings.py
ファイルを編集し、デフォルトのファイルストレージバックエンドを設定します。以下のコードを追加してください。
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_S3_CUSTOM_DOMAIN = 'your-cloudfront-domain.cloudfront.net'
- コード例: 以下は、DjangoビューからS3バケットにファイルをアップロードする例です。
from django.core.files.storage import default_storage
def upload_file(request):
file = request.FILES['file']
file_name = file.name
file_path = f'media/{file_name}'
storage = default_storage
storage.save(file_path, file)
これで、DjangoのデフォルトのファイルストレージとしてCloudFrontが設定され、S3バケット内のファイルが高速に配信されるようになります。