1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CloudFrontに接続できないデバイスがある場合の対処方法

Last updated at Posted at 2017-12-30

どうやっても繋がらない

[デバイス]-CloudFront-APIGateway-Lambda(S3に保存)というサーバーレス構成を作っています。
これに対して画像を送信しようとしてるんだけど、どうにも接続できない。
なんで?と思って色々調べてみたら、コレが怪しいということに気が付きました。

SNI 非対応クライアントのために API Gateway をハックする

確かにデバイス自体は古いので、SNIに対応していない可能性がある。
とはいえ、サーバーレス構成からサーバー構成にするのは悔しい。

SNI非対応クライアントへの対応

ということで、ならばSNI非対応クライアント用に対応させればいい。
CloudFrontを調べてみるとこんなものがある。

CloudFront で HTTPS リクエストを供給する方法の選択

「代替ドメイン名を使用するように CloudFront を構成すると、CloudFront は、各エッジロケーションの専用 IP アドレスを使用するか、Server Name Indication (SNI) を使用して、HTTPS リクエストを供給できます。このセクションでは各オプションの仕組みについて説明します。 」

ということは、代替ドメイン名を使用するようにCloudFrontを構成する、ということをすればSNIを使用しない構成になるということだ。

専用IPアドレスの料金

なればやってみよう!という前に、料金の確認。

専用 IP 独自 SSL

「毎月 600 USD をお支払。この月額料金は時間数で案分。」

「6 月に 24 時間だけ使用の場合、(1 日/30 日)* 600 USD = 20 USD となります。」

非常に高い。試すとしてもリミットは1時間まで!

やってみよう

まとめると、これを実現するには、以下2つのことが必要ということ。

 1.CloudFrontで独自証明書を使用する
 2.専用IPアドレスモードに変更する

1はコチラがとても参考になりました。ありがとうございます。
Amazon CloudFrontの独自ドメインSSL証明書をAWS CLIでアップロードする

結果、こんな感じで独自証明書が選択できます。
ssl-select

独自証明書を選択すると、専用IPアドレスモードが選択できるようになります。
ということで選択します。
ALL-clients

結果

[デバイス]-CloudFront-APIGateway-Lambda(S3に保存)というサーバーレス構成で接続することができました!わーい!

但し、すぐにCloudFrontの構成を元に戻しました。高すぎる。
まぁ、デバイス側では対応できないこともあるでしょうし、お金出せるのであればやっていいと思います。
今日はここまで。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?