Step by stepで学ぶTerraformによる監視付きAWS構築

Terraform
81 PAGES
竹澤 陽|@Sheile
株式会社アーベルソフト
Tech-circle #12
自己紹介 2
仕事関連
名前:竹澤 陽
所属:株式会社アーベルソフト
言語:Ruby, JavaScript, Go, C++, C#, 他色々
仕事:Webシステムのフロントからバックエンドまで全部
仕事以外
Twitter:@Sheile
サークル:RebRank (http://www.rebrank.org)
自己紹介 3
RefRain ~prism memories~
今日の流れ 4
コードによるインフラ構築
(Infrastructure as code)
Terraformとは
メリットとデメリット
ハンズオン
質疑応答
今日の流れ 5
コードによるインフラ構築
(Infrastructure as code)
Terraformとは
メリットとデメリット
ハンズオン
質疑応答
コードによるインフラ構築 6
構築内容を記述した
ファイル
構築の流れ
ツール ネットワーク構築
サーバ構築
セットアップ
代表的なツール 7
ネットワーク、サーバ構築
・CloudFormation(AWS)
・OpenStack Heat(OpenStack)
・Google Deployment Manager(GCP)
サーバ・ミドルウェアのセットアップ
・Puppet
・Chef
・Ansible
・Itamae
・(Docker)
各ツールの対応範囲 8
Puppet, Chef, Ansible
ネットワーク
サーバ構築
ミドルウェア
AWS
Cloud
Formation
Heat
Google
Deployment
Manager
OpenStack GCP
Terraformの対応範囲 9
ネットワーク
サーバ構築
ミドルウェア
AWS OpenStack GCP
他サービス
Terraform
今日の流れ 10
コードによるインフラ構築
(Infrastructure as code)
Terraformとは
メリットとデメリット
ハンズオン
質疑応答
Terraformとは 11
構築内容を記述した
*.tfファイル
構築の流れ
Terraform ネットワーク構築
サーバ構築
セットアップ
Webサービス
Terraformとは 12
Terraformの中身
Terraformの中身 13
Providers
Providers
https://www.terraform.io/docs/providers/index.html
Terraform
CLI Frontend
AWS
Google
OpenStack
Heroku
CloudFlare
DNSimple
Terraformの中身 14
Provisioners
Provisioners
https://www.terraform.io/docs/provisioners/index.html
Terraform
CLI Frontend
local-exec
remote-exec
chef
file
Terraformの使用方法 15
基本的な流れ
1. Terraform configrationを記述
2. planでどんな変更が加わるか確認
3. applyで実際に構築
4. showやaws consoleで結果確認
5. Terraform configrationを修正
6. planでどんな変更が加わるか確認
7. applyで実際に構築
8. 要らなくなったらdestroy
今日の流れ 16
コードによるインフラ構築
(Infrastructure as code)
Terraformとは
メリットとデメリット
ハンズオン
質疑応答
メリットとデメリット 17
メリット
メリット 18
1. システム構成の複製が容易
構築内容を記述した
ファイル
ツール
本番環境
Staging環境
開発環境
メリット 19
2. 似たシステムを参考にした構成が容易
似たシステムを構築する
ファイルを元に編集
ツール 新システム
メリット 20
3. SVN, Gitなどによるバージョン管理が可能
・履歴の管理
・変更者の確認
・差分の確認
・変更の取り消し
アプリ開発と同様の
利点が得られる
メリット 21
4. 設計書よりも厳密な記述・チェックが可能
構築内容を記述した
ファイル
ツール
ネットワーク構築
サーバ構築
セットアップ
設計書 作業者
ネットワーク構築
サーバ構築
セットアップ
メリット 22
5. 既存環境に影響を与えない確認が可能
設定変更など
merge
develop
master
メリット 23
6. コードとシステムの同一性が保障される
構築内容を記述した
ファイル
ツール ネットワーク構築
サーバ構築
セットアップ
※構築されたシステムに手動で変更を加えなければ
メリット 24
7. システム構築の自動テストができる
2. 構築
3. テスト
1. clone
コード変更時や特定曜日に自動実行しますぞ
メリットとデメリット 25
デメリット
デメリット 26
構築内容を記述した
ファイル
1. 初期コストが高い
ツール ネットワーク構築
サーバ構築
セットアップ
構築の試行錯誤
デメリット 27
2. アドホックな修正がいれづらい
構築内容を記述した
ファイル
ツール ネットワーク構築
サーバ構築
セットアップ
デメリット 28
3. データの退避先が必要
Immutable Infrastructure 29
もしくはDisposable Infrastructure
・Amazon RDSやAuroraといった外部DB
・Fluentdを用いたログの退避
今日の流れ 30
コードによるインフラ構築
(Infrastructure as code)
Terraformとは
メリットとデメリット
ハンズオン
質疑応答
ハンズオン 31
一休み……の前に
宿題の確認 32
事前準備
1. Terraformのインストール
2. PATHの追加
3. AWSアカウント
4. AWS IAMユーザの作成(API Key / Secret)
5. StatusCakeユーザの作成(User / API Key)
手元に用意
1. AWS Access Key & Secret Key(credentials.csv)
2. StatusCake Username(メールアドレスは不可)
3. StatusCake API Key
4. AWSに登録した秘密鍵(techcircle12.pem)
ハンズオン 33
おさらい
Terraformの使用方法 34
基本的な流れ
1. Terraform configrationを記述
2. planでどんな変更が加わるか確認
3. applyで実際に構築
4. showやaws consoleで結果確認
5. Terraform configrationを修正
6. planでどんな変更が加わるか確認
7. applyで実際に構築
8. 要らなくなったらdestroy
ハンズオンの全体像 35
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
ハンズオン 36
まずは写経
準備 37
作業ディレクトリの作成
$ mkdir ~/terraform # お好みのディレクトリで
$ cd ~/terraform
Terraform configurationの作成
$ touch main.tf # 空のmain.tfを作成
※Windowsの場合はフォルダを作成してコマンドプロンプトを起動
・Terraformはディレクトリ内の全ての*.tfファイルを構築
※今回はmain.tfのみを使用し、随時追記していきます
AWS provider 38
AWS Provider
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "us-east-1"
}
https://www.terraform.io/docs/providers/aws/
・providerは接続情報を記述
・これ自体では何も作成されない
・Regionは変更可能ですが、今回はus-east-1で
variables 39
動的な値
variable "aws_access_key" {}
variable "aws_secret_key" {}
・variableはplan, apply, destroy時に指定する変数
・対話型インターフェイスで指定
・コマンドオプション(-var) で指定
・環境変数で指定
・terraform.tfvarsファイルで指定
https://www.terraform.io/docs/providers/aws/
実行してみよう 40
terraform plan
$ terraform plan
https://www.terraform.io/docs/commands/plan.html
・variableで定義したAWS KeyとAWS Secretを入力
・まだ接続情報(provider)だけなので、こうなる
No changes. Infrastructure is up-to-date.
terraform.tfvarsファイル 41
variableの値をファイルで指定
aws_access_key="AKIA********"
aws_secret_key="********"
https://www.terraform.io/docs/commands/plan.html
・variableで定義したパラメータを指定
・terraform.tfvarsは自動的に読み込まれる
・VCSに入れる場合は.gitignore / svn:ignore推奨
$ terraform plan
次はこれ 42
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
VPCで他の人と環境を分ける 43
aws_vpc リソース
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
・Argument Referenceは指定可能な値
・Attributes Referenceは取得可能な値
・resourceは実際に作成される「何か」
・AWS上のサーバ
・StatusCake上の監視設定
https://www.terraform.io/docs/providers/aws/r/vpc.html
実行してみよう 44
terraform plan
$ terraform plan
https://www.terraform.io/docs/commands/plan.html
・variableで定義したAWS KeyとAWS Secretを入力
・サーバ側には対応するVPCが無いのでこうなる
Plan: 1 to add, 0 to change, 0 to destroy.
やりがちなポカミス 45
ダブルクォート漏れ(数字やtrue/falseは省略可能)
access_key = ${var.aws_access_key}
$漏れ
access_key = "{var.aws_access_key}"
JSONの癖でカンマを付けるとエラー
provider "aws" {
access_key = "${var.aws_access_key}",
secret_key = "${var.aws_secret_key}"
}
=漏れ
access_key "${var.aws_access_key}"
実行してみよう 46
terraform apply
$ terraform apply
https://www.terraform.io/docs/commands/apply.html
・AWS上にVPCが作られる
・ブラウザでAWS Consoleにログインして確認
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
構築結果の確認 47
AWS Console
ハンズオン 48
それでは本番
次はこれ 49
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
Subnetを作る 50
aws_subnet リソース
https://www.terraform.io/docs/providers/aws/r/subnet.html
resource "aws_subnet" "main" {
vpc_id = "${aws_vpc.main.id}"
cidr_block = "10.0.1.0/24"
}
・vpc_idは他リソースのAttributeを動的に参照
"${リソース種別.リソース名.Attribute名}"
・結果の確認は左メニューのSubnets
次はこれ 51
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
Internet gatewayを作る 52
aws_internet_gateway リソース
https://www.terraform.io/docs/providers/aws/r/internet_gateway.html
resource "aws_internet_gateway" "igw" {
vpc_id = "${??????}"
}
・vpc_idは他リソースのAttributeを動的に参照
・結果の確認は左メニューのInternet gateways
"${リソース種別.リソース名.Attribute名}"
次はこれ 53
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
GatewayへのRouteを作る 54
aws_route リソース
https://www.terraform.io/docs/providers/aws/r/route.html
resource "aws_route" "route_to_igw" {
route_table_id = "${aws_vpc.main.main_route_table_id}"
destination_cidr_block = "0.0.0.0/0"
gateway_id = "${??????}"
}
・gateway_idはさっき作った
Internet gatewayのidを使用
・結果の確認はRoute Tables → Routeタブ
次はこれ 55
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
RouteTableをSubnetに紐づける 56
aws_route_table_association リソース
・確認はRoute Tables → Subnet Associations
https://www.terraform.io/docs/providers/aws/r/route_table_association.html
resource "aws_route_table_association" "a" {
subnet_id = "${??????}"
route_table_id = "${aws_vpc.main.main_route_table_id}"
}
次はこれ 57
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
SecurityGroupを作る 58
aws_security_group リソース
https://www.terraform.io/docs/providers/aws/r/security_group.html
resource "aws_security_group" "allow_ssh_httpd" {
name = "allow_ssh_httpd"
description = "Allow ssh and HTTP inbound traffic"
vpc_id = "${aws_vpc.main.id}"
ingress {
from_port = ??????
to_port = ??????
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = ??????
to_port = ??????
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
~次ページへ続く
・HTTP(80番)とSSH(22番)のポートを解放
SecurityGroupを作る 59
aws_security_group リソース
https://www.terraform.io/docs/providers/aws/r/security_group.html
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
・確認は左メニューのSecurity Groups
→ allow_ssh_httpd → Inbound rules
次はこれ 60
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
Instance(サーバ)を作る 61
aws_instance リソース
https://www.terraform.io/docs/providers/aws/r/instance.html
resource "aws_instance" "web" {
depends_on = ["aws_internet_gateway.igw"]
ami = "ami-60b6c60a"
key_name = "techcircle12"
subnet_id = "${aws_subnet.main.id}"
vpc_security_group_ids = ["${??????}"]
instance_type = "t2.micro"
tags {
Name = "Terraform"
}
}
Instance(サーバ)を作る 62
aws_instance リソース
・確認はVPCではなくEC2のInstancesメニュー
https://www.terraform.io/docs/providers/aws/r/instance.html
次はこれ 63
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
固定IPを振る 64
aws_eip リソース
・確認は左メニューのElastic IPs
・試しにSSHでつないでみるのもアリ
https://www.terraform.io/docs/providers/aws/r/eip.html
resource "aws_eip" "web" {
depends_on = ["aws_internet_gateway.igw"]
instance = "${??????}"
vpc = true
}
# aws_eip.public_ipの確認
terraform show
# ssh接続(windowsの人はターミナルソフトをもう一つ起動するなど)
ssh –i techcircle12.pemのパス ec2-user@IPアドレス
間に合わなかった場合 65
ここまでの内容を記述したmain.tf
http://bit.ly/1WPSUKK
いち・だぶりゅ・ぴー・えす・ゆー・けー・けー
※大文字は太文字
ハンズオン 66
インフラ以外の構築
次はこれ 67
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
Webサーバのインストール 68
remote-exec provisioner
・Elastic IP(public IP)を付ける前はSSH不可
※(今回はやらないが)subnetの設定を変えれば可能
・実行するコマンドはyumで手軽に
https://www.terraform.io/docs/provisioners/remote-exec.html
https://www.terraform.io/docs/provisioners/connection.html
Webサーバのインストール 69
remote-exec provisioner
resource "aws_eip" "web" {
~省略~
provisioner "remote-exec" {
inline = [
"sudo yum install -y httpd",
"sudo service httpd start",
"sleep 10"
]
connection {
host = "${self.public_ip}"
user = "ec2-user"
private_key = "${var.private_key_path}"
}
}
}
Webサーバのインストール 70
variableの追加
variable "private_key_path" {}
・SSHで接続するための秘密鍵として
techcircle12.pemへの絶対パスを指定
・terraform.tfvarsに追記しておくと楽
Resourceの再構築 71
再構築
$ terraform plan
No changes. Infrastructure is up-to-date.
$ terraform apply
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
$ terraform destroy --target aws_eip.web
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
$ terraform plan
Plan: 1 to add, 0 to change, 0 to destroy.
$ terraform apply
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
・provisionerの追加はResourceの再構築が必要
次はこれ 72
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
監視設定の作成 73
StatusCake provider
https://www.terraform.io/docs/providers/statuscake/
variable "statuscake_user" {}
variable "statuscake_apikey" {}
provider "statuscake" {
username = "${var.statuscake_user}"
apikey = "${var.statuscake_apikey}"
}
監視設定の作成 74
statuscake_test リソース
・無料プランの場合check_rateは300秒が最低
・確認は http://www.statuscake.com/
https://www.terraform.io/docs/providers/statuscake/r/test.html
resource "statuscake_test" "web" {
website_name = "terraform test"
website_url = "http://${??????}/"
test_type = "HTTP"
check_rate = 300
}
間に合わなかった場合 75
ここまでの内容を記述したmain.tf
http://bit.ly/20vegiH
に・ぜろ・ぶい・いー・じー・あい・えいち
※大文字は太文字
ハンズオン 76
時間が余った人用
次はこれ 77
ネットワーク図
AWS VPC
10.0.0.0/16
10.0.1.0/24
Gateway
54.xxx.xxx.xx(global/固定)
10.0.1.xxx(private/自動)
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet gateway
同一リソースを複数作成 78
count Attribute
・全てのResourceにcountが指定可能
・同一のResourceが複数作成される
・Resourceの参照時は添え字を追加する
・Listで受け取ることも可能
https://www.terraform.io/docs/configuration/resources.html
resource "aws_instance" "web" {
count = 2
~省略~
}
aws_instance.web.1.public_ip
aws_instance.web.*.public_ip
時間が余った人用 79
remote-exec (provisioner)
https://www.terraform.io/docs/provisioners/remote-exec.html
output
https://www.terraform.io/intro/getting-started/outputs.html
対象サーバにssh/winrmで自動ログインしてコマンドを実行
バックエンドサーバの場合、踏み台サーバ(basition_host)の設定も可能
aws_intanceの中に書くのが基本
→全instanceの構築終了後に実行したい場合などはnull_resourceの
中に書くと自分以外のサーバにssh/winrm可能
terraform outputコマンドで一覧が取得可能
必要な情報をまとめて出力したり、他アプリとの連携などに利用可能
今日の流れ 80
コードによるインフラ構築
(Infrastructure as code)
Terraformとは
メリットとデメリット
ハンズオン
質疑応答
終わりに 81
@Sheile
Twitterアカウント
連絡先
sheile1024@gmail.com
http://bit.ly/1JIN8bS
アンケート
いち・じぇい・あい・えぬ・はち・びー・えす
※大文字は太文字
後始末を忘れずに
$ terraform destroy
1 sur 81

Recommandé

FIWARE Big Data Ecosystem : Cygnus and STH Comet par
FIWARE Big Data Ecosystem : Cygnus and STH CometFIWARE Big Data Ecosystem : Cygnus and STH Comet
FIWARE Big Data Ecosystem : Cygnus and STH Cometfisuda
2.4K vues57 diapositives
Dell EMC の Azure Stack と GPU par
Dell EMC の Azure Stack と GPUDell EMC の Azure Stack と GPU
Dell EMC の Azure Stack と GPUHiroshi Matsumoto
308 vues27 diapositives
Terraform on Azure par
Terraform on AzureTerraform on Azure
Terraform on AzureJulien Corioland
1.7K vues14 diapositives
Openstack heat & How Autoscaling works par
Openstack heat & How Autoscaling worksOpenstack heat & How Autoscaling works
Openstack heat & How Autoscaling worksCoreStack
2.8K vues15 diapositives
Terraform on Azure par
Terraform on AzureTerraform on Azure
Terraform on AzureMithun Shanbhag
2.5K vues16 diapositives
Azure Digital Twins.pdf par
Azure Digital Twins.pdfAzure Digital Twins.pdf
Azure Digital Twins.pdfTomasz Kopacz
592 vues85 diapositives

Contenu connexe

Tendances

Azure Stack Overview par
Azure Stack OverviewAzure Stack Overview
Azure Stack OverviewPT Datacomm Diangraha
3.2K vues24 diapositives
Practical Microservice Architecture (edition 2022).pdf par
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfAhmed Misbah
769 vues98 diapositives
(ARC307) Infrastructure as Code par
(ARC307) Infrastructure as Code(ARC307) Infrastructure as Code
(ARC307) Infrastructure as CodeAmazon Web Services
12K vues67 diapositives
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet... par
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...Manuel Pais
591 vues68 diapositives
[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送 par
[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送
[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送Google Cloud Platform - Japan
1.8K vues49 diapositives
Introduction to Microservices par
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesAmazon Web Services
67K vues124 diapositives

Tendances(20)

Practical Microservice Architecture (edition 2022).pdf par Ahmed Misbah
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
Ahmed Misbah769 vues
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet... par Manuel Pais
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
Manuel Pais591 vues
[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送 par Google Cloud Platform - Japan
[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送
[Cloud OnAir] エンタープライズでのマイグレーション 組織とリソース管理 2019年07月25日 放送
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft... par Amazon Web Services
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Amazon Web Services10.4K vues
Clean architecture par .NET Crowd
Clean architectureClean architecture
Clean architecture
.NET Crowd3.5K vues
ACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricks par Sandro Pereira
ACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricksACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricks
ACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricks
Sandro Pereira429 vues
Microsoft Graph APIを活用した社内アプリケーション開発 par Yuki Hattori
Microsoft Graph APIを活用した社内アプリケーション開発Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発
Yuki Hattori23.3K vues
apidays Paris 2022 - The next five years of the API Economy, Paolo Malinverno... par apidays
apidays Paris 2022 - The next five years of the API Economy, Paolo Malinverno...apidays Paris 2022 - The next five years of the API Economy, Paolo Malinverno...
apidays Paris 2022 - The next five years of the API Economy, Paolo Malinverno...
apidays121 vues
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014 par Nov Matake
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake98.8K vues
Microservices Testing Strategies JUnit Cucumber Mockito Pact par Araf Karsh Hamid
Microservices Testing Strategies JUnit Cucumber Mockito PactMicroservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Araf Karsh Hamid515 vues
Cloud adoption fails - 5 ways deployments go wrong and 5 solutions par Yevgeniy Brikman
Cloud adoption fails - 5 ways deployments go wrong and 5 solutionsCloud adoption fails - 5 ways deployments go wrong and 5 solutions
Cloud adoption fails - 5 ways deployments go wrong and 5 solutions
Yevgeniy Brikman4.4K vues

Similaire à Step by stepで学ぶTerraformによる監視付きAWS構築

今からでも間に合う!インフラ自動化超入門 @渋谷 par
今からでも間に合う!インフラ自動化超入門 @渋谷今からでも間に合う!インフラ自動化超入門 @渋谷
今からでも間に合う!インフラ自動化超入門 @渋谷Daigou Harada
1.6K vues63 diapositives
Programming AWS with Perl at YAPC::Asia 2013 par
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Yasuhiro Horiuchi
7.1K vues40 diapositives
Using Windows Azure par
Using Windows AzureUsing Windows Azure
Using Windows AzureShinji Tanaka
2.2K vues47 diapositives
Node.js勉強会 Framework Koa par
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koakamiyam .
8.6K vues35 diapositives
成長を加速する minne の技術基盤戦略 par
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
9.4K vues40 diapositives
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere par
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphereQuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphereWataru Unno
194 vues79 diapositives

Similaire à Step by stepで学ぶTerraformによる監視付きAWS構築(20)

今からでも間に合う!インフラ自動化超入門 @渋谷 par Daigou Harada
今からでも間に合う!インフラ自動化超入門 @渋谷今からでも間に合う!インフラ自動化超入門 @渋谷
今からでも間に合う!インフラ自動化超入門 @渋谷
Daigou Harada1.6K vues
Programming AWS with Perl at YAPC::Asia 2013 par Yasuhiro Horiuchi
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi7.1K vues
Node.js勉強会 Framework Koa par kamiyam .
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koa
kamiyam .8.6K vues
成長を加速する minne の技術基盤戦略 par Hiroshi SHIBATA
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA9.4K vues
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere par Wataru Unno
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphereQuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
QuickDemo HashiCorp Terraform with Microsoft Azure and VMware vSphere
Wataru Unno194 vues
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践 par Yoshifumi Kawai
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai191.5K vues
Apexコアデベロッパーセミナー(Apexコード)071010 par stomita
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
stomita3K vues
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります par fukuoka.ex
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex3K vues
Dockerを使ったローカルでの開発から本番環境へのデプロイまで par Ryo Nakamaru
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru30.7K vues
20170422 azure portal cli 使いこなし par Takayoshi Tanaka
20170422 azure portal cli 使いこなし20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし
Takayoshi Tanaka312 vues
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所 par 真吾 吉田
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田16.6K vues
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい par Kazumi IWANAGA
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたいはじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
はじめての Bluemix でシングルサインオン ~ 雲間を越えて、つなげたい
Kazumi IWANAGA956 vues
ASP.NET シングル ページ アプリケーション (SPA) 詳説 par Akira Inoue
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue17.9K vues
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」 par fukuoka.ex
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex4.9K vues
13016 n分で作るtype scriptでnodejs par Takayoshi Tanaka
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka2.3K vues
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会 par Makoto SAKAI
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI5K vues

Dernier

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 par
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
110 vues26 diapositives
定例会スライド_キャチs 公開用.pdf par
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
154 vues64 diapositives
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 par
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
68 vues12 diapositives
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 par
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
13 vues22 diapositives
光コラボは契約してはいけない par
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
30 vues17 diapositives

Dernier(7)

PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 par PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 par PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」

Step by stepで学ぶTerraformによる監視付きAWS構築

Notes de l'éditeur

  1. Puppetの初出は2005年
  2. *.tfファイルはTerraform configurations
  3. planの時点では既存システムに何も影響を与えないのでガシガシ実行してOK
  4. ・同一構成ならいくらでも複製できる ・Stagingでは動いたのに本番環境では何故かエラーが出る、という問題を減らせる
  5. ・既に動いている実績のあるファイルを使用できる
  6. ・設計書が正しくても構築時に失敗 ・手順書のレビューと比べて機械的なValidationが掛けやすくポカミスを抑制できるというのも上げられる
  7. ブランチを切った開発が可能 Masterにある定義ファイルとDevelopにある定義ファイルは互いに影響しないので、本番に影響を与えずに動作検証ができる
  8. ・例えば、長年使った既存システムがここにあります。 お客さんから「新サーバへの移行」を依頼された場合、 あなたの手元にある設計書は果たして現在のシステムと同一でしょうか?信用できますか?
  9. 自動テスト自体は手作業で作ったインフラに対してもできる JenkinsなどのCIツールから叩ける レベル感も色々:chefspec, test-kitchen, serverspec
  10. 記述方法の問題と、ファイルを作る前に実物が出来るのでは問題 JSON、YAMLといった汎用的なデータフォーマットを使っているツールもある RubyによるDSL、Terraform自身もHCLというJSONに似ているがちょっと違う
  11. 直接手を入れるとコード=システムの関連が崩れる 両方に入れる コードに入れてすぐ自動構築する
  12. これはContainerでも問題になるパターン Terraformは差分を適用することで、既存のインスタンスをそのまま使える →変更の種類によっては無理。 Chefの場合は冪等性によって、既存環境を残しつつ修正を適用できるようになっていますが、変更内容によっては再構築が必要になることがあります
  13. planの時点では既存システムに何も影響を与えないのでガシガシ実行してOK
  14. planの時点では既存システムに何も影響を与えないのでガシガシ実行してOK
  15. terraformはディレクトリ単位で処理します
  16. VPCを作る所までは写経です
  17. VPCを作る所までは写経です
  18. 時間が余るようならAnsibleとかremote-execとか。ChefはChef serverが必要なのでちょっとつらいか。
  19. 時間が余るようならAnsibleとかremote-execとか。ChefはChef serverが必要なのでちょっとつらいか。
  20. 時間が余るようならAnsibleとかremote-execとか。ChefはChef serverが必要なのでちょっとつらいか。
  21. 時間が余るようならAnsibleとかremote-execとか。ChefはChef serverが必要なのでちょっとつらいか。