API Gateway便利ですよね。EC2立てるほどの無いような簡単な用途があって使ってみて便利なのですが、以下二点困りました。
- httpsでしか使えない
- パスに固定で[stage]/[resource]が付いて、消せない(http://host/ みたいなルートパスで使えない)
両方、ホントにAPIとして使う分には特に問題無いんですが、S3の静的ページホスティングではできないちょっとした事をhttpのページとしてやらせようとしてたので困りました。
結果としてCloudFrontを通す事で解決できました。
以下の設定するのみです。普通です。
ポイントは以下。これで http://host/ で動きます。
-
Origin Path
に消したいパスを設定 -
Origin Protocol Policy
をHTTPS Only
に設定 -
Viewer Protocol Policy
をHTTP and HTTPS
に設定
- キャッシュについて
- 私の用途だとキャッシュ有りで問題無かったのでそのままですが、キャッシュせずにプロキシのように使う事も可能なはずです。検証してないのでリンク貼りませんがググればすぐ出てきました。
- コストについて
- キャッシュしてあればAPI Gatewayの呼び出しが減る分で相殺されそう。キャッシュしなかった場合CloudFront分増えますがAPI Gatewayのデータ転送量は課金されないはずです。
以上です。