Storj DCSで静的Webサイトをホストしてみる
Amazon S3でもできる静的Webサイトのホスティングと同じようなことがStorj DCSを使っても可能です。
独自ドメインも使えるので、今回はWebサイトのホスティング、そして画像や動画などのアセットなどをStorj DCSで配信する設定を試していきます。
前提
DCSのクライアントツール Uplink CLI が必要です。
以前の記事でも記載してますので、ご参照いただければと。
アップロードはWebのコンソールからできますが、静的Webサイトのホスティングを設定するためには現状ではこのUplink CLIからしかできないようです。
独自ドメインを使うので、もう一つ必要なのは、DNSプロバイダー
です。
本記事ではRoute 53を利用します。
設定
ファイルアップロード
静的WebサイトのHTMLファイルを作成し、Storj DCSにアップロードします。
$ uplink cp ~/index.html sj://<<DCSのバケット名>>/<<フォルダ名>>
共有設定
Webサイト/サブドメインのルートとなるバケットまたはオブジェクトプレフィックスを共有します。
uplinkのshare
コマンドを使うことで可能です。
uplink share --dns <<独自ドメイン名>> sj://<<DCSのバケット名>>/<<prefix>> --base-url <<linkshare url>>
dns
オプションで指定したドメインで共有できますが、これは全て読み取り専用として共有されます。
base-url
オプションは優先リンクシェアリージョンを指定できます。
デフォルトは、https://link.us1.storjshare.io
です。
リージョン | URL |
---|---|
アジア | https://link.ap1.storjshare.io |
EU | https://link.eu1.storjshare.io |
US | https://link.us1.storjshare.io |
共有のコマンドを実行すると、3つのDNSレコードを作成するために必要な情報を含むゾーンファイルを出力します。
例)
$ORIGIN example.com. $TTL 3600 <hostname> IN CNAME link.<region>.storjshare.io. txt-<hostname> IN TXT storj-root:<bucket>/<prefix> txt-<hostname> IN TXT storj-access:<access key>
この出力された情報をDNSプロバイダーで設定していきます。
DNS設定
コマンドを実行して出力されたCNAMEとTXTレコードを登録する必要があります。
CNAME
生成されたゾーンファイルのCNAMEをターゲット名として使用して、ホスト名にCNAMEレコードを作成します
TXT(ルートパス)
ルートドメインを解決するバケットまたはオブジェクトプレフィックスキー(およびindex.htmlファイルを含む)を作成します。
TXT(アクセスキー)
ルートパスへの読み取り専用およびパブリックアクセスキーを作成します
確認
digコマンドを使って設定したDNSレコードが登録されているか確認しておきます。
※ ANSWER SECTIONのCNAME,TXT
$ dig @1.1.1.1 <hostname>.<domain> $ dig @1.1.1.1 txt-<hostname>.<domain> TXT
アクセス確認
DNSレコードが適切に設定されていると、httpでアクセスできるようになっています。
http://<hostname>.<domain>
でブラウザでページが表示されるか確認します。
※ index.htmlがルートドメインを解決するバケットまたはオブジェクトプレフィックスキーにあると、index.htmlを省略してアクセスできます
独自ドメインの場合は、Storj DCSだけではhttpsアクセスできないので、Fastly, Cloudflareなどを使ってHTTPSプロキシを行なってサイトを保護する必要が出てくるかと思います。
404ページ
uplink share
で設定した共有プレフィックスのルートに、404.html
という名前のファイルをアップロードしておくことで独自のカスタマイズされた404エラーページを表示させることができます。