Skip to content

stknohg/terraform-cloudfront-cd-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform sample for CloudFront continuous deployment

TerraformでCloudFrontの継続的デプロイを試すためのサンプルです。

構成図

このサンプルを実行すると下図の環境を作成できます。

Diagram

前提条件

  • Terraform 1.7+
  • Terraform AWS Provider 5.12.0+

ビルド方法

Terraformではプライマリディストリビューションの作成とステージングディストリビューションとのリンクを同時に行えない制限があります。

同時に行おうとすると以下のエラーとなります。

Error: creating CloudFront Distribution: InvalidArgument: Continuous deployment policy is not supported during distribution creation.

このため2回に分けて処理を行う必要があります。

Step.1

最初に./main.tfの設定をlink_deployment_policy = falseにしておきます。

# main.tf
module "cloudfront" {
  // snip...
  link_deployment_policy = false
}

その上でterraform initからterraform applyまで行います。

terraform init
terraform plan
terraform apply

これでステージングディストリビューションとのリンク以外のリソースが作成されます。

Step.2

次に./main.tfの設定をlink_deployment_policy = trueに変更します。

# main.tf
module "cloudfront" {
  // snip...
  link_deployment_policy = true
}

もう一度terraform applyを実行します。

terraform plan
terraform apply

これでステージングディストリビューションとのリンクが行われすべての作業が完了です。

アクセス方法

オリジンS3バケットの/v1/配下にコンテンツを保存するとプライマリディストリビューションからアクセスできます。
/v2/配下にコンテンツを保存するとステージングディストリビューションからアクセスできます。

プライマリ環境

curl https://<primary>.cloudfront.net/

ステージング環境

aws-cf-cd-sampleヘッダを付けてプライマリディストリビューションへアクセスします。

curl -H 'aws-cf-cd-sample:true' https://<primary>.cloudfront.net/

削除方法

オリジンS3にコンテンツが残っている場合は事前にすべて削除しておきます。
そのうえでterraform destroyしてください。

terraform destroy

制限事項

  • CNAMEの設定はしていません
  • ログ出力の設定はしていません
  • キャッシュ設定はしていません (CachingDisabledを使う様にしています)

ライセンス

About

Terraform sample for CloudFront continuous deployment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published