Posted at

AWS API Gatewayで httpsしか使えないのとパスが固定なのをCloudFrontでカバーする

More than 3 years have passed since last update.

API Gateway便利ですよね。EC2立てるほどの無いような簡単な用途があって使ってみて便利なのですが、以下二点困りました。


  • httpsでしか使えない

  • パスに固定で[stage]/[resource]が付いて、消せない(http://host/ みたいなルートパスで使えない)

両方、ホントにAPIとして使う分には特に問題無いんですが、S3の静的ページホスティングではできないちょっとした事をhttpのページとしてやらせようとしてたので困りました。

結果としてCloudFrontを通す事で解決できました。

以下の設定するのみです。普通です。

ポイントは以下。これで http://host/ で動きます。



  • Origin Path に消したいパスを設定


  • Origin Protocol PolicyHTTPS Only に設定


  • Viewer Protocol PolicyHTTP and HTTPSに設定

image

image


  • キャッシュについて


    • 私の用途だとキャッシュ有りで問題無かったのでそのままですが、キャッシュせずにプロキシのように使う事も可能なはずです。検証してないのでリンク貼りませんがググればすぐ出てきました。



  • コストについて


    • キャッシュしてあればAPI Gatewayの呼び出しが減る分で相殺されそう。キャッシュしなかった場合CloudFront分増えますがAPI Gatewayのデータ転送量は課金されないはずです。



以上です。