S3で静的Webサイトホスティングからデプロイまで覚書
今回の流れ
1.S3でバケットの作成
AWSの管理画面からS3のバケットを作成します。
バケット名:
独自のドメインを設定する場合はドメイン名とバケット名を合わせてください。
リージョン:
東京がいいかな?
2.バケットのホスティング設定
プロパティメニューから作成したバケットの「静的ウェブサイトホスティング」を 選択。
有効化しインデントとエラードキュメントを設定
3.IAMの作成
IAMでユーザーを新規作成後に「アクセスキーID」と「シークレットアクセスキー」が 発行されるのでメモをしておいてください。
作成したユーザーの「ポリシーのアタッチ」から「AmazonS3FullAccess」を 選択
4.ページをデプロイ
デプロイには「s3cmd」を使用します。
インストール済みなことを確認
$ which s3cmd /usr/local/bin/s3cmd
デプロイしたいルート・ディレクトリで設定ファイルを作成します。
s3cmd -c ./.s3cfg --configure Access Key: アクセスキー Secret Key: シークレットキー Encryption password: Path to GPG program: None Use HTTPS protocol: True HTTP Proxy server name: HTTP Proxy server port: 0
これで./s3cfg
という設定ファイルができあがる
$ ls -la total 48 drwxr-xr-x 10 hoge-user staff 340 2 19 10:19 . drwxr-xr-x 60 hoge-user staff 2040 2 18 18:48 .. -rw-r--r--@ 1 hoge-user staff 6148 2 14 16:54 .DS_Store -rw------- 1 hoge-user staff 1781 2 19 10:19 .s3cfg -rwxrwxrwx 1 hoge-user staff 79 2 19 09:42 deploy.sh drwxr-xr-x 8 hoge-user staff 272 2 16 00:18 dist -rw-r--r-- 1 hoge-user staff 1532 2 16 00:50 gulpfile.js drwxr-xr-x 7 hoge-user staff 238 2 14 16:24 node_modules -rw-r--r-- 1 hoge-user staff 402 2 14 16:24 package.json drwxr-xr-x 9 hoge-user staff 306 2 16 00:19 src
これでいよいよデプロイ
デプロイしたいディレクトリとデプロイ先のバケット名を指定してあげる
s3cmd -c .s3cfg -P --follow-symlinks sync ./ディレクトリを指定/ s3://バケット名を指定/
コマンドが長いのでスクリプトにしてもいいと思います
$ cat deploy.sh #!/bin/sh s3cmd -c .s3cfg -P --follow-symlinks sync ./ディレクトリを指定/ s3://バケット名を指定/
5.独自ドメインを設定 DNSレコードにCNAMEでS3のエンドポイントを指定してあげればOKです!
簡単でいいですね!