AWS S3で独自ドメインを変更する (S3お引越し)

こんにちは。カイザーです。

AWS S3で、静的ウェブホスティングを使用すると、AWS S3でWebサイトを公開できます。しかも、独自ドメインを持っていれば、Route 53に登録するか、CNAMEでエンドポイントを設定するだけで、独自ドメインも使用できます。

しかし、AWS S3では、独自ドメインを使用する際、バケット名と同一でないといけません。
そのため、独自ドメインを変更するには、バケット自体をお引越しする必要がありますので、その過程を説明します。

1. 新規バケットの作成

いつも通り作ります。ただし、バケット名は、新しい独自ドメインと同じにしてください。
また、必要であれば設定をコピーしてください。(筆者に場合はエラーでできませんでしたが。)

2. IAMユーザの作成

バケットのコピーはコマンドラインで行います。Webサイトからは行わないので、専用のIAMユーザを作成します。
AWSでIAMのページを開き、下記のように操作します。

とりあえず、AmazonS3FullAccessにしておきます。

「グループの作成」を押すと元の画面に戻り、作成したグループが追加されているので、それにチェックを入れて「次のステップ:確認」を選択します。

その後、アクセスキーとシークレットアクセスキーが発行されるので、必ず控えておきましょう。

3. s3cmdでお引越し

まずはインストール(macOSの場合)

$ brew install s3cmd

次に初期設定

$ s3cmd --configure

最終確認でこんな感じになります。

New settings:
  Access Key: hogehogehogehogehogehoge
  Secret Key: hogehogehogehogehogehogehogehogehogehoge
  Default Region: ap-northeast-1
  S3 Endpoint: s3.amazonaws.com
  DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.s3.amazonaws.com
  Encryption password: 
  Path to GPG program: None
  Use HTTPS protocol: True
  HTTP Proxy server name: 
  HTTP Proxy server port: 0

ここまでできたら、あとは下記です。

$ s3cmd sync s3://[移動元バケット名] s3://[移動先バケット名]

少し時間がかかりますが、これでコピーされます。

ちなみに、これだとオブジェクトの設定まではコピーされなかったので、そこは後で設定する必要がありました。

4. 独自ドメインの設定

下記等を参考に。
http://qiita.com/Ichiro_Tsuji/items/c174d580587a622d3358

これで完了です。ドメインを変更するというよりかは、お引越しでした。