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
20190620_Multi_Cloud_Day.pdf
Search
nezumisannn
June 20, 2019
Technology
720
1
Share
20190620_Multi_Cloud_Day.pdf
nezumisannn
June 20, 2019
More Decks by nezumisannn
See All by nezumisannn
20250930_Conohaウェビナー_生成AI_Terraform_ConoHa_VPSサーバー_セットアップ入門編
nezumisannn
1
30
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
46
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
360
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを公開するために覚えておきたいこと.pdf
nezumisannn
0
100
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
130
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.4k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
89
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
180
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
110
Other Decks in Technology
See All in Technology
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
280
Network Firewall Proxyで 自前プロキシを消し去ることができるのか
gusandayo
0
160
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
180
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
120
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
200
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.5k
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
iotengineer22
0
120
CREがSLOを握ると 何が変わるのか
nekomaho
0
350
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
310
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
250
MCPで決済に楽にする
mu7889yoon
0
170
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
250
Facilitating Awesome Meetings
lara
57
6.8k
The SEO Collaboration Effect
kristinabergwall1
0
410
Building AI with AI
inesmontani
PRO
1
840
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
210
Leo the Paperboy
mayatellez
5
1.6k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Thoughts on Productivity
jonyablonski
75
5.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Utilizing Notion as your number one productivity tool
mfonobong
4
280
The Pragmatic Product Professional
lauravandoore
37
7.2k
Transcript
Multi Cloud IaC realized by Terraform
Agenda » 自己紹介 » マルチクラウドに求めること » マルチクラウドの課題 » Terraformとは »
Terraformで何が出来るのか » Terraformの実行方法 » まとめ 2
自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname =
“ねずみさん家。” company = “beyond” job = “Site Reliability Engineer” twitter = “@yktr_sre” skills = [“terraform”,”packer”] } 3
“What do you ask for MultiCloud” 4
良いとこ取り 良い所だけを組み合わせたい... 5
Why » コスト/性能の最適化 ⋄ ベンダーごとに当然異なる » DR対策 ⋄ クラウド自体の障害への備え »
クラウドロックインの回避 ⋄ 特定のクラウドに依存しない » 最適なサービスの利用 ⋄ 利用したいものを幅広く選定できる 6
Problem » 構成の複雑化 ⋄ 構成が複数クラウドに跨る » 学習コストの増加 ⋄ 複数のクラウドを理解する必要性 »
標準化が難しい ⋄ クラウドごとの差異の吸収 7
Solution » 構成の複雑化 ⋄ Infrastructure as code » 学習コストの増加 ⋄
気合いでなんとかする » 標準化が難しい ⋄ 統一的に記述できる言語を選定 8
What is Terraform » インフラオーケストレーションツール » HashiCorp社のOSSでGolangで開発 » 豊富なProviderの提供 ⋄
GCP ⋄ Alibaba Cloud ⋄ Oracle Cloud » HCLという独自言語で記述する 9
Terraformで出来ること » マルチプロバイダ ⋄ 種類に関わらず統一言語(HCL)で記述 » コードでのインフラ定義/管理(IaC) » 作成/変更/削除の自動化と人的ミスが減少 »
インフラCI/CDとの親和性が高い 10
HCLの優位性 API Google gcloud compute networks create Alibaba aliyun vpc
CreateVpc OCI oci network vcn create 11
HCLの優位性 Terraform Google HCL Alibaba HCL OCI HCL 12
HCLの種類 » Provider ⋄ クラウドの種類と認証情報を明示する » Resource ⋄ Terraformで管理する対象の基本単位 »
Data Source » Provisioner » State » Backend » Module 13
Provider 14 provider "provider_name" { -> provider setting here }
Provider provider "google" { credentials = "../credentials/multi-cloud-terraform.json" project = "test-project"
region = "asia-northeast2" } 15
Provider provider "alicloud" { access_key = "${var.credential["alicloud_access_key"]}" secret_key = "${var.credential["alicloud_secret_key"]}"
region = "${var.credential["region"]}" } 16
Provider provider "oci" { tenancy_ocid = "${var.tenancy_ocid}" user_ocid = "${var.user_ocid}"
fingerprint = "${var.fingerprint}" private_key_path = "${var.private_key_path}" region = "${var.region}" } 17
Variable variable "access_key" { type = "string" default = "Your
Access Key here" } 18
Variable variable "credential" { type = "map" default = {
access_key = "Your Access Key here" secret_key = "Your Secret Key here" region = "Your Region here" } } 19
Resource resource "resource_type" "resource_name" { -> resource setting here }
20
Resource resource "google_compute_network" "example" { name = "example-vpc" description =
"example-vpc" auto_create_subnetworks = true } 21
Resource resource "alicloud_vpc" "example" { name = "example-vpc" cidr_block =
"10.0.0.0/8" } 22
Resource resource "oci_core_vcn" "example" { cidr_block = "192.168.0.0/16" compartment_id =
"${var.compartment_id}" display_name = "example-vcn" } 23
Terraformの実行 Write Plan Apply 24 Destroy
Terraformの実行 » Write ⋄ 作成したいリソースをHCLで記述する » Plan ⋄ HCLの構文チェックとドライラン »
Apply ⋄ デプロイ » Destroy ⋄ 作成したリソースを全て削除する 25
実行すると... 26
まとめ » マルチクラウドに求めるものは「良いとこ取り」 » 課題を無視すると「良いとこ取れない」 » TerraformでマルチクラウドIaCをやろう » HCLを覚える必要がありますがそこは気合いで! 27
THANKS! Any questions? You can find me at » @yktr_sre
»
[email protected]
28