わずか7+1ステップでできる、WEBサイトのS3移行
消費増税で否応なく財政が逼迫する今日このごろ、
さあ今こそ、レンタルサーバーに置いたサイトをS3移行して、経費増大を取り返そうではありませんか!
1. コンテンツの用意
WEBサイトのHTMLや画像を用意します。
なお、S3は 静的な ファイルホスティングサービスなので、 WordpressなどのPHPで動的に生成するタイプのサイトはS3には置けません。
もちろん、静的な部分(画像など)だけS3に置いて、 動的な部分は社内サーバーやEC2に設置するという選択肢もあります。
2. アカウント作成
公式サイトトップから。
なお、登録にはクレジットカードと、電話番号(認証のため)が求められます。
3. バケット作成
ともあれ、(コンソール)https://console.aws.amazon.com/console/homeを開きましょう。 色々なサービスがありますね。
まずS3を開きます。
"Create Bucket" からBucketを作成します。 "Bucket" は、フォルダーかHDDドライブのようなもので、 すべてのObject(ファイル)はBucketに所属します。
BucketのName = WEBサイトのホスト名にします。 RegionはTokyoにします。もちろん、海外向けのサイトなら海外のRegionを選びます。
バケットを作った後、"Properties"を開き、"Static Website Hosting"から"Enable website hosting" を選択して、 バケットをWebサイトとして使えるようにします。
4. ユーザー作成
AWSコンソールから手動でアップロードもできます。しかし、s3cmd
を使うと格段に楽になります。
それにはまず、ツール用のユーザーを作ります。
AWSコンソールからIAMを開き、 "Create New Users" から適当なユーザーを作ります。
アクセスキーとシークレットキーが表示されます。シークレットキーはここでしか確認できないので、注意してください。 (もしシークレットキーを忘れたら、"User Actions" の "Manage Access Key" から新しいアクセスキーを作りなおします。)
できたばかりのユーザーは何の権限も持っていないので何もできません。 "User Policies" - "Attach Policies" から権限を追加します。 とりあえず "Amazon S3 Full Access" を選びます。
5. s3cmdインストール&同期
s3cmdはPC内のフォルダーとS3のBucketを同期させるツールです。
私が使っているLinux Mintなら、apt-get install s3cmd
で入りました。
PythonさえあればWindowsでもMacでもインストールできるようなので、がんばってください。
手順としては、
- http://www.python.org/getit/ からWindows 版 Pythonを入手
- インストール
- https://github.com/s3tools/s3cmd から s3cmdを入手
- 任意のフォルダに展開
- コマンドラインから python setup.py を実行
- s3cmd --configure を実行 (アクセスキー・シークレットキー入力)
- 生成されたファイルの中身を修正
- s3cmd を実行
あとはコマンド一発で同期が完了します。
s3cmd sync -P -r -F 【フォルダー】 s3://【バケット名】
6. サイトの表示確認
さあ、 http://【WEBサイトのホスト名】.s3-website-ap-northeast-1.amazonaws.com/ を開きましょう(東京リージョンの場合)
404になる場合、単にindex.htmlが無いか、BucketのPropertiesで"Static Website Hosting"が設定されていないのかもしれません。
7. DNS登録
このままだとホスト名が不格好なので、DNSサーバーのCNAME
で、
本来のホスト名を【WEBサイトのホスト名】.s3-website-ap-northeast-1.amazonaws.comに転送する設定を追加します。
8. 1ヶ月後の請求書を見る
AWS万歳!