$30 off During Our Annual Pro Sale. View Details »

Pulumiを触ってみよう

YouYou
August 26, 2023

 Pulumiを触ってみよう

YouYou

August 26, 2023
Tweet

More Decks by YouYou

Other Decks in Programming

Transcript

  1. Pulumiを触ってみよう
    1

    View Slide

  2. Name:ユータ
    Occupation:SRE
    X:@Y0u281 (オーでなくゼロです)
    ブログ:https://zenn.dev/yuta28
    自己紹介
    X QRコード
    2

    View Slide

  3. 目次 ● IaCの課題
    ● Pulumiとは
    ● VS Terraform & AWS CDK
    ● Terraformからの移行
    ● まとめ
    3

    View Slide

  4. 課題
    Terraform
    ● 独自言語の学習コスト
    ● stateファイルの管理
    ● ライセンス問題
    4
    AWS CDK
    ● AWSでしか使えない
    ● CI/CD基盤の構築
    ● プログラミング知識が必要

    View Slide

  5. 5

    View Slide

  6. Pulumiとは
    ● JS/TS、Python、Go、YAMLでIaC
    ● AWS以外にもK8SやDatadogなど100以上のパッケージを提供
    ● 構成管理を管理してくれるマネージドなPulumi Cloud
    ● 他ツールから移行もサポート
    6

    View Slide

  7. VS Terraform & AWS CDK
    Terraform
    ● 独自言語の学習コスト
    ○ プログラミング言語可
    ● stateファイルの管理
    ○ デフォルトでPulumi Cloud提供
    ● ライセンス問題
    ○ 真のオープンソースを目指す(らし
    い)
    7
    AWS CDK
    ● AWSでしか使えない
    ○ GCPやAzureにも可能
    ● CI/CD基盤の構築
    ○ Pulumi Cloudが構築
    ● プログラミング知識が必要
    ○ YAMLファイルでも可

    View Slide

  8. Terraformからの移行
    8
    resource "random_string" "s3_bucket_name" {
    length = 8
    special = false
    upper = false
    }
    # Create S3
    resource "aws_s3_bucket" "migration_S3" {
    bucket = "yuta-${random_string.s3_bucket_name.id}"
    }
    S3作成サンプルコード

    View Slide

  9. Terraformからの移行
    # pulumi convert --from terraform --language typescript
    {-out 出力先ディレクトリ}
    9

    View Slide

  10. Terraformからの移行
    10
    import * as pulumi from "@pulumi/pulumi" ;
    import * as aws from "@pulumi/aws" ;
    import * as random from "@pulumi/random" ;
    const s3BucketName = new random.RandomString("s3BucketName" , {
    length: 8,
    special: false,
    upper: false,
    });
    // Create S3
    const migrationS3 = new aws.s3.BucketV2("migrationS3" ,
    {bucket: pulumi.interpolate`yuta-${s3BucketName.id}`
    });

    View Slide

  11. まとめ
    11
    ● 多言語サポートやクロスプラットフォーム
    ● コンバートツールは良さそう
    ● インポートツールが欲しい

    View Slide

  12. ありがとうございました
    より詳しい内容は以下のブログで↓
    TerraformからPulumiへの移行方法
    (https://zenn.dev/yuta28/articles/migr
    ation-terraform-to-pulumi)
    12

    View Slide