Upgrade to Pro — share decks privately, control downloads, hide ads and more …

lt53

takashi
January 21, 2023

 lt53

takashi

January 21, 2023
Tweet

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. 今回のサービスについて
    ❏ CloudFront
    ❏ Amazon CloudFront は、高いパフォーマンス、セキュリティ、デベロッパーの利便性のために構築されたコンテンツ配信ネット
    ワーク (CDN) サービスです。 

    ❏ グローバルサービス 

    ❏ ※ AWSの公式サイトから引用 

    ❏ AWS Certificate Manager (ACM) 

    ❏ AWS サービスと内部接続リソースで使用するパブリックおよびプライベート SSL/TLS 証明書をプロビジョニング、管理、およ
    び展開します。ACM を使用すれば、SSL/TLS 証明書の購入、アップロード、および更新という時間のかかるプロセスを手動
    で行う必要がなくなります。 

    ❏ リージョンサービス 

    ❏ ※ AWSの公式サイトから引用 


    View Slide

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

    View Slide

  6. 構成図

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide