TC3_Terraform勉強会資料_part1
by
TC3株式会社
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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 ワークスペースを切り替えることで環境を分けることができる