Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TC3_Terraform勉強会資料_part1
Search
TC3株式会社
July 01, 2022
Technology
0
700
TC3_Terraform勉強会資料_part1
TC3にて実施したTerraform勉強会の資料Part1です。
TC3株式会社
July 01, 2022
Tweet
Share
More Decks by TC3株式会社
See All by TC3株式会社
TC3紹介資料_v202303(候補者向け)
tc3jp
0
10k
TC3 社内勉強会 Content Security Policy
tc3jp
0
380
Workload Identity Federationとは_TC3_IDaaS勉強会_revised
tc3jp
0
620
Workload Identity Federationとは_TC3_IDaaS勉強会
tc3jp
0
61
TC3会社紹介資料_short_v202203.pdf
tc3jp
0
3.8k
Other Decks in Technology
See All in Technology
UE5の雑多なテク
ryuichikawano
0
390
【shownet.conf_】持続可能な次世代Wi-Fi運用に向けて
shownet
PRO
0
350
エムスリーマネジメントチーム紹介資料 / Introduction of M3 Management Team
m3_engineering
0
280
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
expajp
4
1.8k
ADRを運用して3年経った僕らの現在地
onk
PRO
11
5k
業務ヒアリングと知識の呪い
tamai_63
0
280
I tried the newly introduced certification "Applied Skills" on Microsoft Learn
mappie_kochi
0
140
軽いノリで"自動化"に取り組んではいけないという話
tetsuyaooooo
1
480
kube-vipとkube-proxy置き換えCiliumを積んだ究極のK3sクラスタを建てる
logica0419
4
210
ドキュメントとの付き合い方を考える
leveragestech
1
130
【shownet.conf_】コンピューティング資源を統合した分散コンテナ基盤の進化
shownet
PRO
0
400
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
2
1.7k
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.9k
How GitHub Uses GitHub to Build GitHub
holman
473
290k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.5k
Building a Scalable Design System with Sketch
lauravandoore
459
32k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
Code Reviewing Like a Champion
maltzj
519
39k
KATA
mclloyd
27
13k
The Pragmatic Product Professional
lauravandoore
31
6.2k
How To Stay Up To Date on Web Technology
chriscoyier
787
250k
Speed Design
sergeychernyshev
22
480
Ruby is Unlike a Banana
tanoku
96
11k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Transcript
©2022 TC3株式会社 www. tc3.co.jp ©2022 TC3株式会社 Terraform勉強会 2022/07/01
©2022 TC3株式会社 www. tc3.co.jp • Terraformって何? • Terraform実行の流れ • TerraformCLI
agenda
©2022 TC3株式会社 www. tc3.co.jp • Terraformって何? • ただなの? • Cloudformationと何が違うの?
• 前提知識は? • どうやって勉強すると早いの? • ローカルPCに何か入れるの? Terraformって何?
©2022 TC3株式会社 www. tc3.co.jp • いわゆるIacツール • ネットワーク上にある様々なリソースをコードで作成/管理できる ◦ クラウドサービス各種(AWS,GCP,Azure)
◦ SaaS(Auth0,Okta,Githubなど) ▪ ただしクラウドサービスと比べると機能が少ない場合あり Terraformって何? Terraformって何?
©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に紐づけることも可能
©2022 TC3株式会社 www. tc3.co.jp • CLI版は無料 ◦ いつも利用してるのはこっち • CLoud版は有料
◦ IDE ◦ stateやsecretの管理ができたり、CI/CDを簡単に組んだりできるらしい Terraformって何? ただなの?
©2022 TC3株式会社 www. tc3.co.jp • Cloudformation ◦ よいところ ▪ AWSのサービスとの連携が豊富(SAM,StackSets等)
▪ AWSサポートに対応 ◦ わるいところ ▪ yaml ▪ 抽象化できない(設定値を全部かく必要がある) ▪ AWSのみ対応 Terraformって何? Cloudformationと何が違うの?
©2022 TC3株式会社 www. tc3.co.jp • Terraform ◦ よいところ ▪ マルチプロバイダ対応
▪ コードの抽象化が可能 ◦ わるいところ ▪ これといったベストプラクティスがない ▪ 未対応のリソースがある Terraformって何? Cloudformationと何が違うの?
©2022 TC3株式会社 www. tc3.co.jp • Must ◦ 代表的なサービス名とそれが何をするためのものかがわかる ▪ サーバーを建てたい ->
EC2 などがわかればOK • Want ◦ サービスの依存関係 ▪ 知らなくてもなんとかなる。エラーになるのでそこから調べればよい • Needn’t ◦ 各サービスの細かいパラメータ(docをみればわかる) Terraformって何? 前提知識は?
©2022 TC3株式会社 www. tc3.co.jp • 実践で学ぶ ◦ GUIでのリソース生成を今すぐにやめる ◦ Iacを徹底するならGUIは禁止(仮に検証だとしても)
◦ terraform <サービス名> でぐぐったら大抵ヒットする • Udemy(構文とかまとまってるけど有料) ◦ 超Terraform完全入門 https://www.udemy.com/course/hashicorp-terraform-aws-devops-iac/ • certificateもあるみたいなので公式トレーニング的なのもあるかも Terraformって何? どうやって勉強すると早いの?
©2022 TC3株式会社 www. tc3.co.jp • AWSCLI (Profileの作成・管理に必要) • tfenv (pyenv的なアレ)
• Terraform インストール方法など https://qiita.com/sasshi_i/items/b5117d51fed800fa6b09 Terraformって何? ローカルPCに何か入れるの?
©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実行の流れ
©2022 TC3株式会社 www. tc3.co.jp https://registry.terraform.io/providers/hashicorp/aws/latest/docs Terraform実行の流れ 1. 作成したいリソースを検索
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 2. コーディング
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 2. コーディング docsから作成したリソース名を調べて入力 terraform上の識別子(任 意の名前)
リソースのパラメーター (これもdocs参照) つまり我々にできることは docsを見ることだけ・・!
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 3. terraform init
©2022 TC3株式会社 www. tc3.co.jp Terraform実行の流れ 4. terraform plan 指定しなかったパラメータはデフォルトの値が 入力される(Optionalと書いてある箇所は省略
可能)
©2022 TC3株式会社 www. tc3.co.jp 追加、変更、削除の内訳が表示される。 意図していないものが無いかどうか要チェック! Terraform実行の流れ 4. terraform plan
©2022 TC3株式会社 www. tc3.co.jp 最終確認にyesと入力すると処理が開始する Terraform実行の流れ 5. terraform apply
©2022 TC3株式会社 www. tc3.co.jp AWSコンソールから作成されていることを確認 Terraform実行の流れ 5. terraform apply
©2022 TC3株式会社 www. tc3.co.jp 利用料もかかるので満足したら削除しよう Terraform実行の流れ 6. terraform destroy
©2022 TC3株式会社 www. tc3.co.jp StatusがTerminatedになっていることを確認 Terraform実行の流れ 6. terraform destroy
©2022 TC3株式会社 www. tc3.co.jp • terraform console • terraform fmt
• terraform graph • terraform import • terraform output • terraform workspace TerraformCLI 便利コマンド
©2022 TC3株式会社 www. tc3.co.jp 関数のテストやresourceの内容の確認に使える TerraformCLI terraform console
©2022 TC3株式会社 www. tc3.co.jp 汚いコードがきれいに TerraformCLI terraform fmt
©2022 TC3株式会社 www. tc3.co.jp vscodeならextensionを導入すると自動補完可能 settings.json TerraformCLI terraform fmt
©2022 TC3株式会社 www. tc3.co.jp resource間の依存関係を表示できる(これはpngで出力してみた結果) なるほどわからん TerraformCLI terraform graph
©2022 TC3株式会社 www. tc3.co.jp 作成済のリソースをterrafrom管理下における 1. 適当なバケットを作成 2. 空のリソースを作成 TerraformCLI
terraform import
©2022 TC3株式会社 www. tc3.co.jp 4. state list & show ->
main.tfに内容をコピーして管理下に。 TerraformCLI terraform import 3. import -> stateがインポートされる
©2022 TC3株式会社 www. tc3.co.jp https://www.terraform.io/language/state https://www.terraform.io/language/state/remote TerraformCLI terraform import
©2022 TC3株式会社 www. tc3.co.jp TerraformCLI terraform output リソース内の値を取得できる
©2022 TC3株式会社 www. tc3.co.jp TerraformCLI terraform workspace ワークスペースを切り替えることで環境を分けることができる