TC3_Terraform勉強会資料_part1
by
TC3株式会社
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
©2022 TC3株式会社 www. tc3.co.jp ©2022 TC3株式会社 Terraform勉強会 2022/07/01
Slide 2
Slide 2 text
©2022 TC3株式会社 www. tc3.co.jp ● Terraformって何? ● Terraform実行の流れ ● TerraformCLI agenda
Slide 3
Slide 3 text
©2022 TC3株式会社 www. tc3.co.jp ● Terraformって何? ● ただなの? ● Cloudformationと何が違うの? ● 前提知識は? ● どうやって勉強すると早いの? ● ローカルPCに何か入れるの? Terraformって何?
Slide 4
Slide 4 text
©2022 TC3株式会社 www. tc3.co.jp ● いわゆるIacツール ● ネットワーク上にある様々なリソースをコードで作成/管理できる ○ クラウドサービス各種(AWS,GCP,Azure) ○ SaaS(Auth0,Okta,Githubなど) ■ ただしクラウドサービスと比べると機能が少ない場合あり Terraformって何? Terraformって何?
Slide 5
Slide 5 text
©2022 TC3株式会社 www. tc3.co.jp Terraformって何? Terraformって何?(例) resource “auth0_client” “myapp”{ … } resource “aws_secretsmanager_secret” “auth0” { secure_string = <<-EOF { client_id = auth0_client.myapp.client_id … } } 作成 パラメーター返却 (client_id, client_secret, …) 作成 パラメーター返却 (arn) 更にarn情報をecs_taskに紐づけることも可能
Slide 6
Slide 6 text
©2022 TC3株式会社 www. tc3.co.jp ● CLI版は無料 ○ いつも利用してるのはこっち ● CLoud版は有料 ○ IDE ○ stateやsecretの管理ができたり、CI/CDを簡単に組んだりできるらしい Terraformって何? ただなの?
Slide 7
Slide 7 text
©2022 TC3株式会社 www. tc3.co.jp ● Cloudformation ○ よいところ ■ AWSのサービスとの連携が豊富(SAM,StackSets等) ■ AWSサポートに対応 ○ わるいところ ■ yaml ■ 抽象化できない(設定値を全部かく必要がある) ■ AWSのみ対応 Terraformって何? Cloudformationと何が違うの?
Slide 8
Slide 8 text
©2022 TC3株式会社 www. tc3.co.jp ● Terraform ○ よいところ ■ マルチプロバイダ対応 ■ コードの抽象化が可能 ○ わるいところ ■ これといったベストプラクティスがない ■ 未対応のリソースがある Terraformって何? Cloudformationと何が違うの?
Slide 9
Slide 9 text
©2022 TC3株式会社 www. tc3.co.jp ● Must ○ 代表的なサービス名とそれが何をするためのものかがわかる ■ サーバーを建てたい -> EC2 などがわかればOK ● Want ○ サービスの依存関係 ■ 知らなくてもなんとかなる。エラーになるのでそこから調べればよい ● Needn’t ○ 各サービスの細かいパラメータ(docをみればわかる) Terraformって何? 前提知識は?
Slide 10
Slide 10 text
©2022 TC3株式会社 www. tc3.co.jp ● 実践で学ぶ ○ GUIでのリソース生成を今すぐにやめる ○ Iacを徹底するならGUIは禁止(仮に検証だとしても) ○ terraform <サービス名> でぐぐったら大抵ヒットする ● Udemy(構文とかまとまってるけど有料) ○ 超Terraform完全入門 https://www.udemy.com/course/hashicorp-terraform-aws-devops-iac/ ● certificateもあるみたいなので公式トレーニング的なのもあるかも Terraformって何? どうやって勉強すると早いの?
Slide 11
Slide 11 text
©2022 TC3株式会社 www. tc3.co.jp ● AWSCLI (Profileの作成・管理に必要) ● tfenv (pyenv的なアレ) ● Terraform インストール方法など https://qiita.com/sasshi_i/items/b5117d51fed800fa6b09 Terraformって何? ローカルPCに何か入れるの?
Slide 12
Slide 12 text
©2022 TC3株式会社 www. tc3.co.jp 1. 作成したいリソースを検索 https://registry.terraform.io/providers/hashicorp/aws/latest/docs 2. コーディング 3. terraform init 4. terraform plan 5. terraform apply 6. terraform destroy Terraform実行の流れ
Slide 13
Slide 13 text
©2022 TC3株式会社 www. tc3.co.jp https://registry.terraform.io/providers/hashicorp/aws/latest/docs Terraform実行の流れ 1. 作成したいリソースを検索
Slide 14
Slide 14 text
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 2. コーディング
Slide 15
Slide 15 text
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 2. コーディング docsから作成したリソース名を調べて入力 terraform上の識別子(任 意の名前) リソースのパラメーター (これもdocs参照) つまり我々にできることは docsを見ることだけ・・!
Slide 16
Slide 16 text
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 3. terraform init
Slide 17
Slide 17 text
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 4. terraform plan 指定しなかったパラメータはデフォルトの値が 入力される(Optionalと書いてある箇所は省略 可能)
Slide 18
Slide 18 text
©2022 TC3株式会社 www. tc3.co.jp 追加、変更、削除の内訳が表示される。 意図していないものが無いかどうか要チェック! Terraform実行の流れ 4. terraform plan
Slide 19
Slide 19 text
©2022 TC3株式会社 www. tc3.co.jp 最終確認にyesと入力すると処理が開始する Terraform実行の流れ 5. terraform apply
Slide 20
Slide 20 text
©2022 TC3株式会社 www. tc3.co.jp AWSコンソールから作成されていることを確認 Terraform実行の流れ 5. terraform apply
Slide 21
Slide 21 text
©2022 TC3株式会社 www. tc3.co.jp 利用料もかかるので満足したら削除しよう Terraform実行の流れ 6. terraform destroy
Slide 22
Slide 22 text
©2022 TC3株式会社 www. tc3.co.jp StatusがTerminatedになっていることを確認 Terraform実行の流れ 6. terraform destroy
Slide 23
Slide 23 text
©2022 TC3株式会社 www. tc3.co.jp ● terraform console ● terraform fmt ● terraform graph ● terraform import ● terraform output ● terraform workspace TerraformCLI 便利コマンド
Slide 24
Slide 24 text
©2022 TC3株式会社 www. tc3.co.jp 関数のテストやresourceの内容の確認に使える TerraformCLI terraform console
Slide 25
Slide 25 text
©2022 TC3株式会社 www. tc3.co.jp 汚いコードがきれいに TerraformCLI terraform fmt
Slide 26
Slide 26 text
©2022 TC3株式会社 www. tc3.co.jp vscodeならextensionを導入すると自動補完可能 settings.json TerraformCLI terraform fmt
Slide 27
Slide 27 text
©2022 TC3株式会社 www. tc3.co.jp resource間の依存関係を表示できる(これはpngで出力してみた結果) なるほどわからん TerraformCLI terraform graph
Slide 28
Slide 28 text
©2022 TC3株式会社 www. tc3.co.jp 作成済のリソースをterrafrom管理下における 1. 適当なバケットを作成 2. 空のリソースを作成 TerraformCLI terraform import
Slide 29
Slide 29 text
©2022 TC3株式会社 www. tc3.co.jp 4. state list & show -> main.tfに内容をコピーして管理下に。 TerraformCLI terraform import 3. import -> stateがインポートされる
Slide 30
Slide 30 text
©2022 TC3株式会社 www. tc3.co.jp https://www.terraform.io/language/state https://www.terraform.io/language/state/remote TerraformCLI terraform import
Slide 31
Slide 31 text
©2022 TC3株式会社 www. tc3.co.jp TerraformCLI terraform output リソース内の値を取得できる
Slide 32
Slide 32 text
©2022 TC3株式会社 www. tc3.co.jp TerraformCLI terraform workspace ワークスペースを切り替えることで環境を分けることができる