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
620
20190620_Multi_Cloud_Day.pdf
nezumisannn
June 20, 2019
Tweet
Share
More Decks by nezumisannn
See All by nezumisannn
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
900
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
53
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
93
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
54
20211008_ApsaraDB_for_PolarDBとAWS_Auroraの機能比較.pdf
nezumisannn
1
85
20210122_AlibabaCloudパートナーサミット_Terraform_Cloudを活用するマルチクラウドオートメーション.pdf
nezumisannn
0
35
20201203_AlibabaCloudセミナー_ApsaraDB_for_PolarDB_の便利機能と競合DBとの差別化ポイントの紹介.pdf
nezumisannn
0
12
20200617_ビヨンド勉強会_24_Terraformにおけるディレクトリ構造のプラクティスと記述事例.pdf
nezumisannn
0
250
20200522_FGDC_Terraform_CloudでGitOpsを使用したCI_CDパイプラインを構築する.pdf
nezumisannn
0
380
Other Decks in Technology
See All in Technology
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
120
Babylon.js JAPAN活動紹介 (2024/4)
limes2018
1
120
Cracking the KubeCon CfP
inductor
2
270
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
460
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
450
Azureの基本的な権限管理の勉強会
yhana
1
2.1k
JAWS-UG Bedrock Claude Night
yamahiro
3
720
BPStudyの200回を中心にIT業界を振り返る。そしてこれから
haru860
3
410
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
3.9k
Building Dashboards as a Hobby
egmc
0
370
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
160
いいたいことちゃんという
tkengo
0
230
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Building Adaptive Systems
keathley
32
1.9k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
The Cult of Friendly URLs
andyhume
74
5.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Atom: Resistance is Futile
akmur
260
25k
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