SlideShare a Scribd company logo
Terraformで始めるInfrastructure as
Code
自己紹介
• 名前:岩本 貴久
• 所属:技術1課
• わさびちゃん →
はじめに
3
手作業は何故ダメ?
作成・変更履歴
作業ログ
ログを見ればわかる・・・?(作業者によって精度はまちまち)
再現性
作業ログ&手順書
怪しい
構成管理
毎回構成図の更新
その構成図、最新ですか?
4
Infrastructure as Code
Infrastructure as Code(IaC)とは?
インフラをコードで扱い、プログラムと同じ様にコードで管理・更新を行うこと
5
IaCのメリット
作成・変更履歴
Gitのコミットログ見ろ
再現性
コード実行しろ
構成管理
コード見ろ
6
IaCを運用する心構
IaCを本気でやる(運用する)心構
絶対にマネコンは触らない
ステートファイルを保持し続ける
デプロイのフロー
障害対応
最後までそのツールを使い続ける覚悟
7
IaCに必要なもの
8
IaCのツール
CloudFormation
Terraform ← 今日はこの話
Ansible
他・・・?
9
ここから、本題
10
Terraformとは?
HashiCorp(はしこーぷ)社がオープンソースで開発しているプロビジョニ
ング ツール
AWS以外に、GCP、Azure、OpenStack、Vmware、他、に対応
書式はDSL(domain-specific language/ドメイン固有言語)で記載
複数のプロバイダに同時にプロビジョニングも可能
11
Terraformの仕組み
12
AWS API
terraform plan terraform apply terraform destroy
main.tf
ローカル環境
terraform.tfstate
Terraformの範囲
Terraformはプロビジョナーと呼ばれる、各プラットフォーム向けアダプタ
が手供されている。
(AWSで言えば)AWS API がで構築できる範囲となる。
local-exec Provisioner
Terraformの実行環境でローカルコマンドを走らせることができる。
サンプル
13
provisioner "local-exec”{
command = "echo ${aws_instance.web.private_ip} >> private_ips.txt"
}
Terraformのインストール
Terraformのインストールは、バイナリファイルを任意のディレクトリに配
置するだけ。
MacならBrewでインストールが可能
14
Terraformを始める
1、ディレクトリを作成
2、「main.tf」ファイルを作成
15
$ mkdir sample-prj
$ cd sample-prj
$ touch main.tf
プロバイダーの設定(AWS)
「main.tf」内に以下の記載をする
プロジェクトの初期化
16
provider "aws" {
access_key = "ACCESS_KEY_HERE"
secret_key = "SECRET_KEY_HERE"
region = "ap-northeast-1"
}
$ terraform init
クレデンシャル、ベタ書き、ダメゼッタイ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"
クレデンシャル、ベタ書き、ダメゼッタイ2
AssumeRoleが使えない
Profileを指定する。
Aswarp
https://github.com/fujiwara/aswrap
18
$ AWS_PROFILE=HOGE terraform xxxx
$ AWS_PROFILE=HOGE aswarp terraform xxxx
スタイリッシュな形
「main.tf」には、リージョンのみを記載する。
クレデンシャルは(AWS-CLIの)Profileで指定する。(←おすすめ)
Terraform実行時の引数で指定する。
環境変数で値を渡す。
「 terraform.tfvars 」に記載する。
19
provider "aws" {
region = "ap-northeast-1"
}
変数の利用
Terraform内では変数の利用が可能
「 terraform.tfvars 」
「 terraform.tfvars 」以外のファイルを指定する場合は、引数で指定する。
20
variable "foo" {}
resource "aws_s3_bucket" "s3_bucket" {
bucket = "${var.foo}”
}
foo = ”hoge-name"
リソースの設定(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"
}
}
他のリソースを参照する
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属性を参照
}
テンプレートファイルを分割する
拡張子「.tf」ファイルに適当に分割する。
AWSサービス単位に分けるのがオススメ。
同一ディレクトリ内の「.tf」ファイルは実行時に読み込まれる。
「main.tf」 ファイルは必須。
23
リソースの依存関係
基本的には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"]
変数型の利用
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"]
}
利用できる関数
https://www.terraform.io/docs/configuration/interpolation.html#built
-in-functions
例
file(path)
ローカルからファイルを読み込む。
join(delim, list)
文字列を結合する。
他
26
アウトプット
「Output」を用いて、作成されたリソースの値を出力
27
output "ip" {
value = "${aws_eip.ip.public_ip}"
}
Terraformの実行
ドライラン
適用/アップデート
環境の削除
28
$ terraform plan
$ terraform apply
$ terraform destroy
Terraformでの(インフラ)状態管理
ファイル「terraform.tfstate」
tfstateの中身はJSON
このファイルがコンフリクト、消失すると死ぬ
Gitで管理するのは非推奨
共有方法
Atlas
Consle
29
ちょっと先行くTerraformの使い方
30
ステイタス共有する
Terraformは管理対象のリソースを、ファイル「terraform.tfstate」で管理
する。
ディフォルトでは、カレントディレクトリに作成される。
S3 Backend
31
terraform {
backend "s3" {
bucket = "mybucket"
key = "path/to/my/key"
region = "us-east-1"
}
}
環境を切り替える(ワークスペース)
同じTerraformのコードをワークスペース(環境)ごとに使い分けることの
できる機能。
例えば、Production/developmentと2つのworkspaceを作成し、同じ
Terraformコードを利用して、2つの環境のリソースを作成できる。
32
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
}
同じ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"
}
同じ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)}"
}
異なるEC2を複数台作成する1
「main.tf」
36
variable "keypaer-name" {
}
variable "subnets" {
type = "list"
}
variable "ec2-param" {
type = "list"
}
異なる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
}
]
異なる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")}"
}
異なる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")}"
}
}
異なるEC2を複数台作成する5
技術的にできるけど、めっちゃ複雑になるからやめたほうがいい。
40
EC2を作るベストプラクティス1
同じ内容のインスタンス単位を、1セクションする。
複数台の場合はLoopで作成する。
パラメータ値をMAPで外部に切り出す。
41
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")}"
}
}
まとめ
マネコン、ダメ、ゼッタイ
IaCは覚悟の問題
Terraformは素晴らしい
43

More Related Content

What's hot

わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
健一 辰濱
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and Performance
Mineaki Motohashi
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
 
「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」
富士通クラウドテクノロジーズ株式会社
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
Kuniteru Asami
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
 

What's hot (20)

わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and Performance
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 

Similar to Terraformで始めるInfrastructure as Code

XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
Tomoyuki Obi
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
Hiro Yoshioka
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
 
Azure Functions 入門
Azure Functions 入門Azure Functions 入門
Azure Functions 入門
jz5 MATSUE
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming Paradigm
Minero Aoki
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
 
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)YoheiOkuyama
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
ao27
 
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
Takuya Iwatsuka
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and designTomoharu ASAMI
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
 

Similar to Terraformで始めるInfrastructure as Code (20)

XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
Azure Functions 入門
Azure Functions 入門Azure Functions 入門
Azure Functions 入門
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming Paradigm
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
 
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
BBBBB
BBBBBBBBBB
BBBBB
 
1MB
1MB1MB
1MB
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
 
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 

More from Takahisa Iwamoto

Ansibleハンズオン勉強会
Ansibleハンズオン勉強会Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
Takahisa Iwamoto
 
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
Takahisa Iwamoto
 
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
Takahisa Iwamoto
 
20161212 岩本
20161212 岩本20161212 岩本
20161212 岩本
Takahisa Iwamoto
 
20160925 jaws kyoto
20160925 jaws kyoto20160925 jaws kyoto
20160925 jaws kyoto
Takahisa Iwamoto
 
concrete5とAWSのほどよい関係
concrete5とAWSのほどよい関係concrete5とAWSのほどよい関係
concrete5とAWSのほどよい関係
Takahisa Iwamoto
 
コンクリに関係無いAnsible
コンクリに関係無いAnsibleコンクリに関係無いAnsible
コンクリに関係無いAnsible
Takahisa Iwamoto
 
2014年版 抑えておきたいサーバセキュリティ
2014年版 抑えておきたいサーバセキュリティ2014年版 抑えておきたいサーバセキュリティ
2014年版 抑えておきたいサーバセキュリティ
Takahisa Iwamoto
 
第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)Takahisa Iwamoto
 
押さえておきたいサーバーセキュリティ
押さえておきたいサーバーセキュリティ押さえておきたいサーバーセキュリティ
押さえておきたいサーバーセキュリティTakahisa Iwamoto
 
サーバー監視
サーバー監視サーバー監視
サーバー監視
Takahisa Iwamoto
 

More from Takahisa Iwamoto (11)

Ansibleハンズオン勉強会
Ansibleハンズオン勉強会Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
 
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
800件の事例から見た、オンプレからAWSへのマイグレーションの秘訣
 
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
フロントエンドエンジニアに伝えたい 常時SSLとCDNの話
 
20161212 岩本
20161212 岩本20161212 岩本
20161212 岩本
 
20160925 jaws kyoto
20160925 jaws kyoto20160925 jaws kyoto
20160925 jaws kyoto
 
concrete5とAWSのほどよい関係
concrete5とAWSのほどよい関係concrete5とAWSのほどよい関係
concrete5とAWSのほどよい関係
 
コンクリに関係無いAnsible
コンクリに関係無いAnsibleコンクリに関係無いAnsible
コンクリに関係無いAnsible
 
2014年版 抑えておきたいサーバセキュリティ
2014年版 抑えておきたいサーバセキュリティ2014年版 抑えておきたいサーバセキュリティ
2014年版 抑えておきたいサーバセキュリティ
 
第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)第2回勉強会資料 岩本(配布用)
第2回勉強会資料 岩本(配布用)
 
押さえておきたいサーバーセキュリティ
押さえておきたいサーバーセキュリティ押さえておきたいサーバーセキュリティ
押さえておきたいサーバーセキュリティ
 
サーバー監視
サーバー監視サーバー監視
サーバー監視
 

Terraformで始めるInfrastructure as Code