1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:AWS S3とHTMLで画像を簡単に15分で公開する方法を勝手に紹介してみた

Posted at

はじめに

AWSのS3バケットを利用して画像をアップロードし、それをHTMLファイル (index.html) で表示する方法について解説します。

S3は静的ウェブサイトホスティング機能を提供しており、簡単にウェブサイトを公開することができます。

書こうと思ったきっかけ

最近、クラウドストレージを活用したウェブサイトの構築方法について学ぶ機会がありました。

特に、AWS S3を使った静的サイトホスティングが手軽に実装できる点が魅力的だったため、その手順をまとめてみることにしました。

また、画像をアップロードし、直接HTMLに組み込む方法についても需要があると感じたため、今回の記事を書こうと思いました。

詳しくはこちらも参考にしてみてください。

1. S3バケットの作成

1.1 AWS S3コンソールにアクセス

  1. AWSコンソールにログインし、「S3」サービスを開きます。
  2. 「バケットを作成」ボタンをクリックします。

1.2 バケットの設定

  • バケット名: 一意の名前を指定(例: my-image-bucket)。
  • リージョン: 任意のリージョンを選択。
  • パブリックアクセスの設定:
    • 「すべてのパブリックアクセスをブロック」のチェックを外し、公開設定を許可。
  • 静的ウェブサイトホスティングの有効化:
    • 「静的ウェブサイトホスティング」を有効化。
    • 「インデックスドキュメント」に index.html を指定。

2. 画像をS3にアップロード

2.1 画像ファイルのアップロード

  1. S3バケットを開き、「オブジェクト」タブを選択。
  2. 「アップロード」ボタンをクリックし、画像ファイル(例: my-image.jpg)をアップロード。
  3. アップロード後、オブジェクトのURLをコピーしておく(例: https://my-image-bucket.s3.amazonaws.com/my-image.jpg)。

2.2 画像のパブリックアクセス設定

  1. アップロードした画像を選択。
  2. 「アクセス許可」タブを開く。
  3. 「パブリックアクセスを許可」に変更し、保存。

S3バケットポリシーの編集

S3バケットのアクセス許可タブに移動し、バケットポリシーを編集します。以下のバケットポリシーを追加します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dev-s3-content/*"
        }
    ]
}

このポリシーは、dev-s3-content/* 以下のすべてのオブジェクトに対して、S3からの公開アクセスを許可します。

Resourceの箇所については、ご自身の環境に合わせて修正してください!

3. index.htmlの作成

以下の index.html を作成し、S3バケットにアップロードします。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>S3にアップロードした画像</title>
</head>
<body>
    <h1>S3にアップロードした画像</h1>
    <img src="https://my-image-bucket.s3.amazonaws.com/my-image.jpg" alt="アップロード画像" width="600">
</body>
</html>

ポイント:

  • src 属性に S3の画像URL を指定。
  • alt 属性を適切に設定。

4. index.htmlをS3にアップロード

4.1 アップロード手順

  1. S3バケットを開く。
  2. 「アップロード」ボタンをクリックし、index.html をアップロード。
  3. index.html のパブリックアクセスを許可。

4.2 ウェブサイトのURL確認

  • 「プロパティ」タブの「静的ウェブサイトホスティング」セクションに記載されたURLを確認。
  • https://my-image-bucket.s3-website-ap-northeast-1.amazonaws.com/index.html などのURLにアクセスして、画像が表示されるか確認。

5. カスタムドメインを設定(オプション)

CloudFrontやRoute 53を使用してカスタムドメインを設定できます。

5.1 CloudFrontの設定

  1. AWSコンソールでCloudFrontを開く。
  2. 新しいディストリビューションを作成。
  3. オリジンドメインにS3バケットのURLを指定。
  4. 「オブジェクトのパブリックアクセス」を有効化。
  5. CloudFrontのURL(例: https://d123456789.cloudfront.net/index.html)を取得。

5.2 Route 53でのドメイン設定

  1. Route 53でドメインを取得。
  2. CNAMEレコードを作成し、CloudFrontのURLを指定。

まとめ

この方法を使うと、S3バケットに画像をアップロードし、index.html を使って簡単に表示できます。

また、CloudFrontやRoute 53を活用することで、カスタムドメインの設定やCDNの最適化も可能です。

これにより、手軽に静的ウェブサイトを公開し、画像を表示できる環境を構築できます。

おまけ

こんな感じのイメージになります!

Screenshot 2025-02-28 at 6.48.13.png

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?