バケットに「.」(ピリオド)を含む名称を付けると、https通信がエラーになることがある。エラーが起こる仕組みを理解しておこう。

つまずき対策

 S3にバケットを作成して、オブジェクトをアップロードすると、ユニークなURLが二つ発行され、httpまたはhttpsでアクセスする。ピリオドを含む「my.bucket」というバケット名にしたなら、以下の二つのURLが発行される(httpsで通信する場合を想定)。

https://s3-ap-northeast-1.amazonaws.com/my.bucket/object.html

https://my.bucket.s3-ap-northeast-1.amazonaws.com/object.html

 このうち、上段のURLでアクセスする場合は問題がないが、下段のURLにアクセスするとSSLエラーとなってしまう。これはSSLサーバー証明書が「*.s3-ap-northeast-1.amazonaws.com」といったワイルドカード証明書を利用していることが原因だ。「bucket」がサブドメイン名と見なされて、ドメイン名は「*.bucket.s3-ap-northeast-1.amazonaws.com」と認識されてしまう。

 バケット名は、このことを考慮して決めよう。

横倉 健大郎
サーバーワークス クラウドインテグレーション部 技術二課 課長
AWS歴7年のITエンジニア。オンプレミス環境からAWS環境への移行業務に数多く従事。