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
1
710
20190620_Multi_Cloud_Day.pdf
nezumisannn
June 20, 2019
Tweet
Share
More Decks by nezumisannn
See All by nezumisannn
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
24
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
270
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを公開するために覚えておきたいこと.pdf
nezumisannn
0
86
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
110
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.2k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
66
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
140
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
81
20211008_ApsaraDB_for_PolarDBとAWS_Auroraの機能比較.pdf
nezumisannn
1
140
Other Decks in Technology
See All in Technology
2025年になってもまだMySQLが好き
yoku0825
8
4.6k
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
230
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
170
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3.2k
AI開発ツールCreateがAnythingになったよ
tendasato
0
120
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
710
なぜSaaSがMCPサーバーをサービス提供するのか?
sansantech
PRO
8
2.7k
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
400
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
6
740
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
150
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
370
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Fireside Chat
paigeccino
39
3.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Why Our Code Smells
bkeepers
PRO
339
57k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
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