Slide 1

Slide 1 text

Terraformでマルチリージョンでリソースを 作成する方法について 2023/01/18 JAWS-UG初心者支部#53 新年LTスペシャル会

Slide 2

Slide 2 text

自己紹介 名前 : たかし 所属 : アイレット株式会社 業務内容 : AWSのインフラ構築、運用 保有資格 : AWS SAA、SOA、DVA、SAP、DOP、SCS 好きになりたいAWSサービス : Code Pipeline Twitter : 98_justdoit

Slide 3

Slide 3 text

拠点が国内のため、東京リージョンにインフラを構築します。 海外向けにも展開したいため、CloudFrontを前段に置き、ACMをバージニア北部で設 定します。 背景

Slide 4

Slide 4 text

今回のサービスについて ❏ CloudFront ❏ Amazon CloudFront は、高いパフォーマンス、セキュリティ、デベロッパーの利便性のために構築されたコンテンツ配信ネット ワーク (CDN) サービスです。 
 ❏ グローバルサービス 
 ❏ ※ AWSの公式サイトから引用 
 ❏ AWS Certificate Manager (ACM) 
 ❏ AWS サービスと内部接続リソースで使用するパブリックおよびプライベート SSL/TLS 証明書をプロビジョニング、管理、およ び展開します。ACM を使用すれば、SSL/TLS 証明書の購入、アップロード、および更新という時間のかかるプロセスを手動 で行う必要がなくなります。 
 ❏ リージョンサービス 
 ❏ ※ AWSの公式サイトから引用 
 


Slide 5

Slide 5 text

前提 CloudFrontのディストリビューションでカスタム証明書でACMを選択する場合、 ACMの証明書をバージニア北部で作成する必要がある。 (AWS SAAとかSCSの勉強してる際に出てくるやつです。) なぜ CloudFrontはグローバルサービスのため。

Slide 6

Slide 6 text

構成図

Slide 7

Slide 7 text

方法 1. リージョンごとにディレクトリを分けてリソースを構築する 2. Multiple Providersを使用する

Slide 8

Slide 8 text

1.リージョンごとのディレクトリ 下記のようにディレクトリを分けて作成し、ディレクトリ毎にapplyをする ./tf/ap-northeast-1/profile.tf ./tf/us-east-1/profile.tf ただこの場合環境変数を変更が必要な際、ディレクトリごとの修正が必要。

Slide 9

Slide 9 text

2.Multiple Providersを使用する 1つリージョンのみの場合のterraformの設定だとこんな感じ ※ awsの認証情報は環境変数で読み込んでます。

Slide 10

Slide 10 text

2.Multiple Providersを使用する Multiple Providersを使用する場合はproviderにaliasをつけて複数定義する

Slide 11

Slide 11 text

2.Multiple Providersを使用する リソース作成時は、provider.${alias}を指定してあげる 今回はprovider = aws.virginia 本来バージニア北部でACMの証明書を リクエストすべきですが、 今回はあえて同じリソースで 見比べるためにリージョン毎に VPCを作成しました。

Slide 12

Slide 12 text

作成したVPC 東京リージョンのVPC

Slide 13

Slide 13 text

作成したVPC バージニア北部のVPC

Slide 14

Slide 14 text

ありがとうございました!