Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Takahisa Iwamoto
PPTX, PDF
4,956 views
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
Internet
◦
Read more
7
Save
Share
Embed
Embed presentation
Download
Downloaded 15 times
1
/ 43
2
/ 43
3
/ 43
4
/ 43
5
/ 43
6
/ 43
7
/ 43
8
/ 43
9
/ 43
Most read
10
/ 43
11
/ 43
12
/ 43
Most read
13
/ 43
14
/ 43
Most read
15
/ 43
16
/ 43
17
/ 43
18
/ 43
19
/ 43
20
/ 43
21
/ 43
22
/ 43
23
/ 43
24
/ 43
25
/ 43
26
/ 43
27
/ 43
28
/ 43
29
/ 43
30
/ 43
31
/ 43
32
/ 43
33
/ 43
34
/ 43
35
/ 43
36
/ 43
37
/ 43
38
/ 43
39
/ 43
40
/ 43
41
/ 43
42
/ 43
43
/ 43
More Related Content
PPTX
DeNA の AWS アカウント管理とセキュリティ監査自動化
by
DeNA
PDF
AWS Black Belt Online Seminar AWS Direct Connect
by
Amazon Web Services Japan
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
PDF
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
PDF
20210526 AWS Expert Online マルチアカウント管理の基本
by
Amazon Web Services Japan
PPTX
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
by
Tokoroten Nakayama
PDF
これからLDAPを始めるなら 「389-ds」を使ってみよう
by
Nobuyuki Sasaki
PDF
20200811 AWS Black Belt Online Seminar CloudEndure
by
Amazon Web Services Japan
DeNA の AWS アカウント管理とセキュリティ監査自動化
by
DeNA
AWS Black Belt Online Seminar AWS Direct Connect
by
Amazon Web Services Japan
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
20210526 AWS Expert Online マルチアカウント管理の基本
by
Amazon Web Services Japan
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
by
Tokoroten Nakayama
これからLDAPを始めるなら 「389-ds」を使ってみよう
by
Nobuyuki Sasaki
20200811 AWS Black Belt Online Seminar CloudEndure
by
Amazon Web Services Japan
What's hot
PDF
AWSではじめるDNSSEC
by
Tomohiro Nakashima
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PDF
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
by
Brocade
PPTX
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
by
NGINX, Inc.
PDF
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
by
Amazon Web Services Japan
PDF
認証の課題とID連携の実装 〜ハンズオン〜
by
Masaru Kurahayashi
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
by
Amazon Web Services Japan
PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PDF
今なら間に合う分散型IDとEntra Verified ID
by
Naohiro Fujie
PDF
単なるキャッシュじゃないよ!?infinispanの紹介
by
AdvancedTechNight
PPTX
Docker超入門
by
VirtualTech Japan Inc.
PDF
Amazon ElastiCacheのはじめ方
by
Amazon Web Services Japan
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
PPTX
Molecule入門
by
Hiroki Uchida
AWSではじめるDNSSEC
by
Tomohiro Nakashima
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
ガチで聞く!ヤフーのOpenStackプライベート・クラウドの実態とは
by
Brocade
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
by
NGINX, Inc.
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
by
Amazon Web Services Japan
認証の課題とID連携の実装 〜ハンズオン〜
by
Masaru Kurahayashi
マイクロサービス 4つの分割アプローチ
by
増田 亨
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
by
Amazon Web Services Japan
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
Dockerからcontainerdへの移行
by
Kohei Tokunaga
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
今なら間に合う分散型IDとEntra Verified ID
by
Naohiro Fujie
単なるキャッシュじゃないよ!?infinispanの紹介
by
AdvancedTechNight
Docker超入門
by
VirtualTech Japan Inc.
Amazon ElastiCacheのはじめ方
by
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
Molecule入門
by
Hiroki Uchida
Similar to Terraformで始めるInfrastructure as Code
PDF
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
by
Wataru Unno
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
by
Yo Takezawa
PDF
ゼロからはじめるTerraformでのDevOps2021
by
Wataru Unno
PDF
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
by
NTT DATA Technology & Innovation
PDF
Terraform始めました
by
w1mvy pine
PDF
Provisioning Nutanix VMs with Terraform
by
Wataru Unno
PDF
terraform基礎
by
risa buto
PDF
Terraformをいじってみて
by
ssuser11d6e6
PDF
OSSを活用したIaCの実現
by
Trainocate Japan, Ltd.
PDF
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
by
shinyatsukasaki
PDF
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
by
Wataru Unno
PDF
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
by
Kazumi OHIRA
PDF
AWS CloudFormationによるInfrastructure as Codeの実現
by
HIRA
PDF
TerraformによるIaCの導入
by
IAJ Co.,Ltd.
PDF
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
by
Masahito Zembutsu
PDF
Terraform
by
Shigeyuki Takeuchi
PDF
IaC事始め Infrastructure as Code やってみる?
by
大使 梶原
PDF
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
by
Keiichi Hikita
PDF
Gmo media terraform slide
by
hashicorpjp
PDF
インフラセキュリティブートキャンプ #seccamp
by
Masahiro NAKAYAMA
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
by
Wataru Unno
Step by stepで学ぶTerraformによる監視付きAWS構築
by
Yo Takezawa
ゼロからはじめるTerraformでのDevOps2021
by
Wataru Unno
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
by
NTT DATA Technology & Innovation
Terraform始めました
by
w1mvy pine
Provisioning Nutanix VMs with Terraform
by
Wataru Unno
terraform基礎
by
risa buto
Terraformをいじってみて
by
ssuser11d6e6
OSSを活用したIaCの実現
by
Trainocate Japan, Ltd.
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
by
shinyatsukasaki
見終わったらすぐできる! VMware & Nutanix ユーザーのためのTerraform Cloud
by
Wataru Unno
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
by
Kazumi OHIRA
AWS CloudFormationによるInfrastructure as Codeの実現
by
HIRA
TerraformによるIaCの導入
by
IAJ Co.,Ltd.
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
by
Masahito Zembutsu
Terraform
by
Shigeyuki Takeuchi
IaC事始め Infrastructure as Code やってみる?
by
大使 梶原
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
by
Keiichi Hikita
Gmo media terraform slide
by
hashicorpjp
インフラセキュリティブートキャンプ #seccamp
by
Masahiro NAKAYAMA
More from Takahisa Iwamoto
PPTX
Ansibleハンズオン勉強会
by
Takahisa Iwamoto
PPTX
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
by
Takahisa Iwamoto
PPTX
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
by
Takahisa Iwamoto
PPTX
20161212 岩本
by
Takahisa Iwamoto
PPTX
20160925 jaws kyoto
by
Takahisa Iwamoto
PPTX
concrete5とAWSのほどよい関係
by
Takahisa Iwamoto
PPTX
コンクリに関係無いAnsible
by
Takahisa Iwamoto
PPTX
2014年版 抑えておきたいサーバセキュリティ
by
Takahisa Iwamoto
PPTX
第2回勉強会資料 岩本(配布用)
by
Takahisa Iwamoto
PPTX
押さえておきたいサーバーセキュリティ
by
Takahisa Iwamoto
ZIP
サーバー監視
by
Takahisa Iwamoto
Ansibleハンズオン勉強会
by
Takahisa Iwamoto
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
by
Takahisa Iwamoto
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
by
Takahisa Iwamoto
20161212 岩本
by
Takahisa Iwamoto
20160925 jaws kyoto
by
Takahisa Iwamoto
concrete5とAWSのほどよい関係
by
Takahisa Iwamoto
コンクリに関係無いAnsible
by
Takahisa Iwamoto
2014年版 抑えておきたいサーバセキュリティ
by
Takahisa Iwamoto
第2回勉強会資料 岩本(配布用)
by
Takahisa Iwamoto
押さえておきたいサーバーセキュリティ
by
Takahisa Iwamoto
サーバー監視
by
Takahisa Iwamoto
Terraformで始めるInfrastructure as Code
1.
Terraformで始めるInfrastructure as Code
2.
自己紹介 • 名前:岩本 貴久 •
所属:技術1課 • わさびちゃん →
3.
はじめに 3
4.
手作業は何故ダメ? 作成・変更履歴 作業ログ ログを見ればわかる・・・?(作業者によって精度はまちまち) 再現性 作業ログ&手順書 怪しい 構成管理 毎回構成図の更新 その構成図、最新ですか? 4
5.
Infrastructure as Code Infrastructure
as Code(IaC)とは? インフラをコードで扱い、プログラムと同じ様にコードで管理・更新を行うこと 5
6.
IaCのメリット 作成・変更履歴 Gitのコミットログ見ろ 再現性 コード実行しろ 構成管理 コード見ろ 6
7.
IaCを運用する心構 IaCを本気でやる(運用する)心構 絶対にマネコンは触らない ステートファイルを保持し続ける デプロイのフロー 障害対応 最後までそのツールを使い続ける覚悟 7
8.
IaCに必要なもの 8
9.
IaCのツール CloudFormation Terraform ← 今日はこの話 Ansible 他・・・? 9
10.
ここから、本題 10
11.
Terraformとは? HashiCorp(はしこーぷ)社がオープンソースで開発しているプロビジョニ ング ツール AWS以外に、GCP、Azure、OpenStack、Vmware、他、に対応 書式はDSL(domain-specific language/ドメイン固有言語)で記載 複数のプロバイダに同時にプロビジョニングも可能 11
12.
Terraformの仕組み 12 AWS API terraform plan
terraform apply terraform destroy main.tf ローカル環境 terraform.tfstate
13.
Terraformの範囲 Terraformはプロビジョナーと呼ばれる、各プラットフォーム向けアダプタ が手供されている。 (AWSで言えば)AWS API がで構築できる範囲となる。 local-exec
Provisioner Terraformの実行環境でローカルコマンドを走らせることができる。 サンプル 13 provisioner "local-exec”{ command = "echo ${aws_instance.web.private_ip} >> private_ips.txt" }
14.
Terraformのインストール Terraformのインストールは、バイナリファイルを任意のディレクトリに配 置するだけ。 MacならBrewでインストールが可能 14
15.
Terraformを始める 1、ディレクトリを作成 2、「main.tf」ファイルを作成 15 $ mkdir sample-prj $
cd sample-prj $ touch main.tf
16.
プロバイダーの設定(AWS) 「main.tf」内に以下の記載をする プロジェクトの初期化 16 provider "aws" { access_key
= "ACCESS_KEY_HERE" secret_key = "SECRET_KEY_HERE" region = "ap-northeast-1" } $ terraform init
17.
クレデンシャル、ベタ書き、ダメゼッタイ1 スタイリッシュなエンジニアはクレデンシャルも、ご安全に。 1、Terraform実行時の引数で指定する。 2、環境変数で値を渡す。 3、「 terraform.tfvars 」に記載する。 17 $
terraform apply -var 'access_key=XXXXXXXXXXXXXXXXXXXXXX’ -var 'secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' $ export TF_VAR_access_key="AKIAXXXXXXXXXXXXXXXXXX" $ export TF_VAR_secret_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" aws_access_key = "AKIAXXXXXXXXXXXXXXXXXX" aws_secret_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
18.
クレデンシャル、ベタ書き、ダメゼッタイ2 AssumeRoleが使えない Profileを指定する。 Aswarp https://github.com/fujiwara/aswrap 18 $ AWS_PROFILE=HOGE terraform
xxxx $ AWS_PROFILE=HOGE aswarp terraform xxxx
19.
スタイリッシュな形 「main.tf」には、リージョンのみを記載する。 クレデンシャルは(AWS-CLIの)Profileで指定する。(←おすすめ) Terraform実行時の引数で指定する。 環境変数で値を渡す。 「 terraform.tfvars 」に記載する。 19 provider
"aws" { region = "ap-northeast-1" }
20.
変数の利用 Terraform内では変数の利用が可能 「 terraform.tfvars 」 「
terraform.tfvars 」以外のファイルを指定する場合は、引数で指定する。 20 variable "foo" {} resource "aws_s3_bucket" "s3_bucket" { bucket = "${var.foo}” } foo = ”hoge-name"
21.
リソースの設定(VPCを作る) TerrafromでVPCを作るサンプルコード 21 resource "aws_vpc" "myVPC"
{ cidr_block = "10.1.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_dns_hostnames = "false" tags { Name = "myVPC" } }
22.
他のリソースを参照する Terraform内で他のAWSリソースを参照する。 22 resource "aws_vpc" "myVPC"
{ cidr_block = "10.1.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_dns_hostnames = "false" tags { Name = "myVPC" } } resource "aws_internet_gateway" "myGW" { vpc_id = "${aws_vpc.myVPC.id}" # myVPCのid属性を参照 }
23.
テンプレートファイルを分割する 拡張子「.tf」ファイルに適当に分割する。 AWSサービス単位に分けるのがオススメ。 同一ディレクトリ内の「.tf」ファイルは実行時に読み込まれる。 「main.tf」 ファイルは必須。 23
24.
リソースの依存関係 基本的にはTerraform側で依存関係を解決。 一部、作成のみを実行して作成完了を待たないリソースがある。 リソースの作成を待つには「depends_on」を用いる。 24 resource "aws_s3_bucket" "example"
{ bucket = "terraform-getting-started-guide" acl = "private" } resource "aws_instance" "example" { ami = "ami-2757f631" instance_type = "t2.micro" depends_on = ["aws_s3_bucket.example"]
25.
変数型の利用 Map型 List型 25 variable "images" { type
= "map" default = { us-east-1 = "image-1234" us-west-2 = "image-4567" } } variable "zones" { default = ["us-east-1a", "us-east-1b"] }
26.
利用できる関数 https://www.terraform.io/docs/configuration/interpolation.html#built -in-functions 例 file(path) ローカルからファイルを読み込む。 join(delim, list) 文字列を結合する。 他 26
27.
アウトプット 「Output」を用いて、作成されたリソースの値を出力 27 output "ip" { value
= "${aws_eip.ip.public_ip}" }
28.
Terraformの実行 ドライラン 適用/アップデート 環境の削除 28 $ terraform plan $
terraform apply $ terraform destroy
29.
Terraformでの(インフラ)状態管理 ファイル「terraform.tfstate」 tfstateの中身はJSON このファイルがコンフリクト、消失すると死ぬ Gitで管理するのは非推奨 共有方法 Atlas Consle 29
30.
ちょっと先行くTerraformの使い方 30
31.
ステイタス共有する Terraformは管理対象のリソースを、ファイル「terraform.tfstate」で管理 する。 ディフォルトでは、カレントディレクトリに作成される。 S3 Backend 31 terraform { backend
"s3" { bucket = "mybucket" key = "path/to/my/key" region = "us-east-1" } }
32.
環境を切り替える(ワークスペース) 同じTerraformのコードをワークスペース(環境)ごとに使い分けることの できる機能。 例えば、Production/developmentと2つのworkspaceを作成し、同じ Terraformコードを利用して、2つの環境のリソースを作成できる。 32
33.
Lambdaファンクションのデプロイ 33 data "archive_file" "sample_function"
{ type = "zip" source_dir = "lambda/sample_function" output_path = "lambda/upload/sample_function.zip" } resource "aws_lambda_function" "sample_function" { filename = "${data.archive_file.sample_function.output_path}" function_name = "sample_function" role = "${aws_iam_role.lambda_sample_function.arn}" handler = "lambda_function.lambda_handler" source_code_hash = "${data.archive_file.sample_function.output_base64sha256}" runtime = "python3.6" memory_size = 128 timeout = 30 }
34.
同じEC2を複数台作成する 34 resource "aws_instance" "web"
{ count = 2 ami = "ami-1234567" instance_type = "t2.micro" key_name = ”HOGE.key" vpc_security_group_ids = [ "sg-987654", ] subnet_id = "subnet-012345" }
35.
同じEC2を複数のリージョンに配置する 35 variable "subnets" { default
= { "0" = "subnet-12345" "1" = "subnet-56789" } } resource "aws_instance" "web" { count = 2 ami = "ami-12345" instance_type = "t2.micro" key_name = ”hoge.key" vpc_security_group_ids = [ "sg-123456", ] subnet_id = "${lookup(var.subnets, count.index%2)}" }
36.
異なるEC2を複数台作成する1 「main.tf」 36 variable "keypaer-name" { } variable
"subnets" { type = "list" } variable "ec2-param" { type = "list" }
37.
異なるEC2を複数台作成する2 「terraform.tfvars」 37 subnets = [ { subnet-cidr
= "10.2.1.0/24" subnet-az = "ap-northeast-1a" }, { subnet-cidr = "10.2.2.0/24" subnet-az = "ap-northeast-1c" } ] ec2-param = [ { ami-id = "ami-08847abae18baa040" ec2-instance-type = "t2.micro" ec2-volume-size = "20" ec2-subnet = 1 } ]
38.
異なるEC2を複数台作成する3 「vpc.tf」 38 resource "aws_vpc" "my-vpc"
{ cidr_block = "10.11.0.0/16" instance_tenancy = "default" enable_dns_support = "true" enable_dns_hostnames = "false" } resource "aws_subnet" "public" { count = "${length(var.subnets)}" vpc_id = "${aws_vpc.my-vpc.id}" cidr_block = "${lookup(var.subnets[count.index], "subnet-cidr")}" availability_zone = "${lookup(var.subnets[count.index], "subnet-az")}" }
39.
異なるEC2を複数台作成する4 「ec2.tf」 39 resource "aws_instance" "ec2"
{ count = "${length(var.ec2-param)}" ami = "${lookup(var.ec2-param[count.index], "ami-id")}" instance_type = "${lookup(var.ec2-param[count.index], "ec2-instance-type")}" key_name = "${var.keypaer-name}" subnet_id = "${element(aws_subnet.public.*.id, "${lookup(var.ec2-param[count.index], "ec2- subnet")}")}" root_block_device = { volume_type = "gp2" volume_size = "${lookup(var.ec2-param[count.index], "ec2-volume-size")}" } }
40.
異なるEC2を複数台作成する5 技術的にできるけど、めっちゃ複雑になるからやめたほうがいい。 40
41.
EC2を作るベストプラクティス1 同じ内容のインスタンス単位を、1セクションする。 複数台の場合はLoopで作成する。 パラメータ値をMAPで外部に切り出す。 41
42.
EC2を作るベストプラクティス2 「terraform.tfvars」 「ec2.tf」 42 ec2-param = { ami-id
= "ami-08847abae18baa040" ec2-instance-type = "t2.micro" ec2-volume-size = "20" } resource "aws_instance" "ec2" { count = 2 ami = "${lookup(var.ec2-param, "ami-id")}" instance_type = "${lookup(var.ec2-param, "ec2-instance-type")}" subnet_id = “XXXXXXX” root_block_device = { volume_type = "gp2" volume_size = "${lookup(var.ec2-param, "ec2-volume-size")}" } }
43.
まとめ マネコン、ダメ、ゼッタイ IaCは覚悟の問題 Terraformは素晴らしい 43
Download