有馬総一郎のブログ

(彼氏の事情)

AWS S3(Amazon Simple Storage)で独自ドメインで公開する その1

堅牢なAWS S3でブログを公開する。まずは、普通にファイルをアップロードできるようにするまで。

思うに、下手なブログ(このブログのこと)を見るよりは、↓こちらを熟読されたし…自分もこの手引きを元に進めた。
Amazon Simple Storage Service の使用開始 - Amazon Simple Storage Service

もしくは↓のサイトもためになる。
AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティング – Gatespace’s Blog

  • Amazon S3 へのサインアップ
  • バケットの作成

注意点は、静的ウェブサイトホスティングの設定、 インデックスドキュメントindex.htmlを設定する。これをしないと、example.comに遷移しようとしても、example.com/index.htmlを見に行かず、アクセスエラーとなってしまう。この設定はサブディレクトリまで有効となる。

アクセス許可のバケットポリシーでは、手引きどおりに設定する。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::arimasou16.com/*"
        }
    ]
}

Versionは変更してはいけない、設定できる Versionは決まった年月日のものだけ。

それから、 www.example.comに遷移してきた場合もexample.comを参照するように、www.example.comのバケットを作成し、静的ウェブサイトホスティングの設定を、[x] 別のホスト名にすべてのリクエストをリダイレクトするにする。

  • アクセスキーID とシークレットアクセスキーの取得

セキュリティー認証情報のメニューからアクセクキー作成をする。

キーファイル(rootkey.csv)をダウンロードして、アクセスキーID(AWSAccessKeyId)、シークレットアクセスキー(AWSSecretKey)の内容を確認する。そして、S3にアップロードするためのコマンドs3cmdをインストールする。

sudo apt -y install s3cmd

そして、設定。s3cmd --configure

arimasou16@Lemur:~$ s3cmd --configure

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key: XXXXXXXXXXXXXXXXXXXX
Secret Key: abcdefABCDEFG1234567890abcdefABCDEF12345
Default Region [US]: Tokyo

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: password  
Path to GPG program [/usr/bin/gpg]: /usr/bin/gpg

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [Yes]: Yes

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name: 

New settings:
    Access Key: XXXXXXXXXXXXXXXXXXXX
    Secret Key: abcdefABCDEFG1234567890abcdefABCDEF12345
    Default Region: Tokyo
    Encryption password: password
    Path to GPG program: /usr/bin/gpg
    Use HTTPS protocol: True
    HTTP Proxy server name: 
    HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)

Save settings? [y/N] y
Configuration saved to '/home/arimasou16/.s3cfg'
arimasou16@Lemur:~$ 

s3cmdの使い方は、s3cmdのコマンド一覧 | オブジェクトストレージなどを参照。

始めは、それこそルートファイルindex.htmlでも転送してみて、アクセスが正しくできるか試す。アップロードしたファイルのプロパティのリンクをクリックし、表示できるか確認する。

Comments