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

FastlyとTerraform Cloudで最高な自動化を実現しよう

FastlyとTerraform Cloudで最高な自動化を実現しよう

Fastly Yamagoya2022で登壇した資料です

Kazuto Kusama

March 04, 2023
Tweet

More Decks by Kazuto Kusama

Other Decks in Technology

Transcript

  1. Copyright © 2021 HashiCorp
    FastlyとTerraform Cloudで
    最高な自動化を実現しよう
    .

    View Slide

  2. Copyright © 2021 HashiCorp
    草間一人
    Sr. Solutions Engineer
    @jacopen
    Kazuto
    Kusama

    View Slide

  3. View Slide

  4. View Slide

  5. 会場のみなさんに聞きたい
    Fastlyといえば何?

    View Slide

  6. 会場のみなさんに聞きたい
    Fastlyといえば何?
    CDN
    VCL

    View Slide

  7. 会場のみなさんに聞きたい
    Fastlyといえば何?
    CDN
    VCL
    TLS
    WAF
    Compute

    View Slide

  8. めっちゃ便利だけど
    設定どうやって管理しよう?

    View Slide

  9. 自動化している 自動化していない

    View Slide

  10. で自動化しませんか?

    View Slide

  11. ▪ インフラのプロビジョニングツール
    ▪ 構成をHCL(HashiCorp Configration Language)で
    コード化
    ▪ Infrastructure as Codeを実現

    View Slide

  12. resource "aws_network_interface" "foo" {
    subnet_id = aws_subnet.my_subnet.id
    private_ips = ["172.16.10.100"]
    tags = {
    Name = "primary_network_interface"
    }
    }
    resource "aws_instance" "foo" {
    ami = "ami-005e54dee72cc1d00"
    instance_type = "t2.micro"
    network_interface {
    network_interface_id = aws_network_interface.foo.id
    device_index = 0
    }
    credit_specification {
    cpu_credits = "unlimited"
    }
    }
    Network Interface
    AMI
    Instance type
    Network interfaceと紐
    付け

    View Slide

  13. Fastly Terraform Provider

    View Slide

  14. Fastly Terraform Provider
    [email protected]
    TLS
    WAF
    VCL

    View Slide

  15. Customer
    何故Terraformで自動化が重要なのか

    View Slide

  16. Customer
    Backend

    View Slide

  17. Customer
    Backend
    Deploy

    View Slide

  18. Customer
    Backend
    Log, Metrics
    Deploy
    これらの環境をミス無く、効率よく管理

    View Slide

  19. View Slide

  20. Terraform Providers
    Cloud Network
    SaaS
    Orchestrator
    On-Prem
    Monitoring

    View Slide

  21. View Slide

  22. View Slide

  23. Terraformは便利、でも・・・
    規模が大きくなればなるほど
    悩みも増える

    View Slide

  24. Terraformは便利、でも・・・
    バージョン管理
    したい
    Gitにcommitしたら
    自動でPlanしたい
    Stateファイルを
    良い感じに管理したい

    View Slide

  25. View Slide

  26. ▪ HashiCorpが提供するSaaS
    ▪ Terraformの最適なワークフローを提供
    – 各種VCSとの連携(GitHub, GitLab, Azure DevOps etc..)
    – ステートの管理
    – 変数の管理
    ▪ 有償版のTerraform Cloud Businessもある
    – Policy as Code
    – Audit Log
    – SSO Integration

    View Slide

  27. View Slide

  28. ステートファイルの保存
    apply
    生成
    ステートファイル

    View Slide

  29. ステートファイルの保存
    apply
    生成
    ステートファイル

    View Slide

  30. Gitリポジトリとの連携
    push
    apply

    View Slide

  31. Gitリポジトリとの連携
    push apply

    View Slide

  32. Gitリポジトリとの連携
    push
    apply

    View Slide

  33. 複数人でTerraform運用
    チームが何人になっても
    Terraformの運用を
    スケールできる

    View Slide

  34. IaCでよくある悩み
    Fastly設定のコード化・自動化
    詳しくないメンバーが
    直接設定を変更してしまう
    差分が生まれる

    View Slide

  35. IaCでよくある悩み
    差分が生まれる
    管理されていない
    設定が入っていることによ
    るセキュリティ問題
    気づかずにTerraformを実
    行して設定がまき戻る問

    View Slide

  36. 1. 検知 2. 通知 3. ステート修正
    Drift Detection

    View Slide

  37. こういう場合はどうする?
    https://example.com/
    https://example.com/ui
    https://example.com/api
    https://example.com/auth
    On-prem
    S3
    Amplify
    チームのスケールに
    管理が追いつかない

    View Slide

  38. Workspace & terraform_remote_state
    FastlyをIaCするリポジトリ
    アプリをIaCするリポジトリ

    View Slide

  39. アプリのIaC
    リポジトリ & Workspace側
    S3 Bucketを作成 &
    website_endpointをoutput
    Terraform Cloud上のStateを
    terraform-fastly workspaceに共有

    View Slide

  40. FastlyのIaC
    リポジトリ & Workspace側
    Terraform Cloudの
    terraform-fastly-app workspaceの
    Stateを使うと宣言
    State内の
    output(website_endpoint)を
    backendのaddressに設定

    View Slide

  41. こういう場合はどうする?
    https://example.com/
    https://example.com/ui
    https://example.com/api
    https://example.com/auth
    On-prem
    S3
    Amplify
    自分たちのリソースは
    自分たちで管理
    リモートステートで
    緩やかに連携

    View Slide

  42. View Slide

  43. Thank You
    [email protected]
    www.hashicorp.com

    View Slide