[AWS][Terraform]Amplifyの独自ドメイン設定(AMPLIFY_MANAGED)時にハマったエラーとその解決法

こんにちは!こうじゅん(@kouzyunJa)です。以前、TerraformでAmplifyの構築をしていた際、SSL設定(AMPLIFY_MANAGED)にハマったエラーについて書いていこうと思います。同じようにハマった人の参考になれば嬉しいです!


ハマったエラーについて

そもそもAWS Amplifyは、Webアプリやモバイルアプリのバックエンド機能(認証、API、ストレージなど)を簡単に構築できるサービスです。Amplifyを使えば、複雑なインフラの設定を意識せず、クラウドサービスを簡単に構築できるのでとても便利です。以下、安達さん(@adachin0817)が個人ブログでAmplifyのTerraform化について書いていますので参考にしてみてください。

[AWS][Terraform][GitHub Actions]Amplify HostingでReactをデプロイ

今回は、そんなAmplifyですが、SSL証明書の設定(certificate_settings)で独自ドメインをTerraform化するときにエラーにハマりました。

certificate_settingsは、AmplifyでSSL証明書の管理方法を指定する設定です。これによって、独自ドメインでのHTTPS対応が可能になります。certificate_settingsのtype設定方法としては以下の2通りあります。

  1. AMPLIFY_MANAGED
    • Amplifyが自動でSSL証明書を発行・管理してくれます。
    • 証明書の更新や設定は自動で行えます。
  2. CUSTOM
    • ACM(AWS Certificate Manager)で発行したカスタム証明書を自分で指定します。
    • 指定の証明書で細かく設定したい必要なときに使います。

今回は、Amplifyに証明書管理をやってもらいたいためにAMPLIFY_MANAGEDを使いました。ところが、いざTerraformでApplyしようとするとエラーが発生しました。

AMPLIFY_MANAGEDを設定したはずなのに、「証明書のタイプが無効」というエラーメッセージが表示されていました。


対応したこと

色々と調査したところ、Terraformのバグが原因でエラーが発生していることが分かりました。GitHubのterraform-provider-awsのリリースノート "AMPLIFY_MANAGEDに設定したときに ValidationException が発生しないようにした”という記述がありました。

resource/aws_amplify_domain_association: Prevent ValidationException when setting certificate_settings.type to AMPLIFY_MANAGED.

このバグ修正が含まれたプルリクエストによると、Terraform AWS Provider v5.82.0でリリースされたとのことです。

This functionality has been released in v5.82.0 of the Terraform AWS Provider.

そのため、Terraform AWS Providerv5.82.0以上に指定してバージョンアップをすることにします。

バージョンアップを適応させます。

バージョンアップが適応されているか確認します。

Terraform AWS Providerがv5.82.0以上になっていることを確認できました。

再度applyしたところ、エラーが解消されて無事にドメイン設定が完了しました!


まとめ

今回は、TerraformでAWS AmplifyのAMPLIFY_MANAGED設定時に発生したエラーと、その解決方法について紹介しました。今回の対応を通じて、公式リリースノートバージョン管理の重要性を改めて感じました。

最後まで読んでいただき、ありがとうございました!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール