Slide 1

Slide 1 text

IaCでクラウドインフラの運⽤を効率化しよう 丸川祐考 日本オラクル株式会社 Solution Engineer 2021/12/17 1 Copyright © 2021, Oracle and/or its affiliates

Slide 2

Slide 2 text

丸川 祐考 Masataka Marukawa 日本オラクル株式会社 ソリューション・エンジニア 2 Copyright © 2021, Oracle and/or its affiliates @mmarukaw Twitter/GitHub/Qiita

Slide 3

Slide 3 text

3 Copyright © 2021, Oracle and/or its affiliates Agenda 1. Infrastructure as Code と OCIでの活用 2. OCIでのTerraformの利用 3. OCI Resource Manager

Slide 4

Slide 4 text

Infrastructure as Code と OCIでの活用 4 Copyright © 2021, Oracle and/or its affiliates

Slide 5

Slide 5 text

IT Copyright © 2021, Oracle and/or its affiliates 5 • • • • IT • • • • • DevOps • Infrastructure-as-Code

Slide 6

Slide 6 text

Infrastructure as Code IT ( ) Kief Morris - Infrastrucrue as Code 2nd Edition – O'reilly 2020 Infrastructure as Code (IaC) Copyright © 2021, Oracle and/or its affiliates 6 DEPLOY DELIVER TEST BUILD CODE Infrastructure

Slide 7

Slide 7 text

• IT • IT (装 ) • IT 装 • • • • DevOps Infrastructure as Code (IaC) Copyright © 2021, Oracle and/or its affiliates 7 GUI

Slide 8

Slide 8 text

8 IaC - Virtual Machine Virtual Cloud Network Internet Gateway Route Table Security Lists Block Storage Subnet • ) • “ ” ” ” Copyright © 2021, Oracle and/or its affiliates

Slide 9

Slide 9 text

9 Copyright © 2021, Oracle and/or its affiliates 1. (Bash, Perl, PowerShell, Ruby, Python… +SDK) • (Procedural) 2. (DSL) (CFEngine, Puppet, Chef, Ansible) • ( ) (=Declarative) 3. (Terraform, CloudFormation) • (=Idenpotency) (= ) 4. (Pulumi, AWS CDK ) • TypeScript, Python, Java • ( ) 2000 2010 2020

Slide 10

Slide 10 text

• (Declarativity) • ( ) ( ) (Idempotency) • ( ) • ( ) • – 10 yum install nginx yum: name: nginx state: installed (= ) Copyright © 2021, Oracle and/or its affiliates

Slide 11

Slide 11 text

Copyright © 2021, Oracle and/or its affiliates 11 SDKs Java, Python, TypeScript/JavaScript, .NET, Ruby, Go, PL/SQL, CLI Terraform OCI Provider Ansible Collections OCI API REST Endpoints Resource Manager OCI

Slide 12

Slide 12 text

OCI での Terraform の利用 12 Copyright © 2021, Oracle and/or its affiliates

Slide 13

Slide 13 text

Terraform HashiCorp • • (300+) • HCL (HashiCorp Configuration Language) (DSL) • (State) ( OK) • Terraform – 13 Copyright © 2021, Oracle and/or its affiliates

Slide 14

Slide 14 text

14 Terraform – Terraform (GRUD ) • • Provider $ terraform apply • ( ) • $ terraform apply • • $ terraform destroy • $ terraform show • $ terraform graph Copyright © 2021, Oracle and/or its affiliates

Slide 15

Slide 15 text

15 Terraform – Terraform Core Provider Terraform Plugins Provisioners Client Library GO HTTP(S) Cloud *.tf JSON OR State .tfstate State (terraform.tfstate) Terraform state REST API Provider State Copyright © 2021, Oracle and/or its affiliates

Slide 16

Slide 16 text

https://github.com/terraform-providers/terraform-provider-oci/blob/master/examples/networking/vcn/vcn.tf resource "oci_core_virtual_network" "vcn1" { cidr_block = "10.0.0.0/16" dns_label = "vcn1" compartment_id = "var.compartment_ocid" display_name = "vcn1" } resource "oci_core_instance" "instance1" { availability_domain = data.oci_identity_availability_domain.ad1.name compartment_id = var.compartment_ocid display_name = "be-instance1" shape = var.instance_shape metadata = { user_data = base64encode(var.user-data) } } Terraform Copyright © 2021, Oracle and/or its affiliates 16

Slide 17

Slide 17 text

デモ Copyright © 2021, Oracle and/or its affiliates 17 Terraformサンプルを利用したOCIリソースの作成、変更 • https://github.com/terraform-providers/terraform-provider-oci/tree/master/examples

Slide 18

Slide 18 text

OCI Resource Manager 18 Copyright © 2021, Oracle and/or its affiliates

Slide 19

Slide 19 text

Infrastructure-as-Code OCI ( ) OCI Resource Manager 19 = Terraform-as-a-Service • Terraform OCI • HCL(HashiCorp Configuration Language) Terraform • (State) OCI OCI • OCI CRUD • OCI API IAM Audit OCI • OCI (Discovery / ) Copyright © 2021, Oracle and/or its affiliates Resource Manager

Slide 20

Slide 20 text

Terraform • Terraform • OCI Resource Manager • • Resource Manager • WebUI/CLI/API Terraform OCI Resource Manager Copyright © 2021, Oracle and/or its affiliates 20

Slide 21

Slide 21 text

21 Terraform vs. OCI Resource Manager Terraform OCI Resource Manager State terraform OCI RM • RM • state • OCI IAM • Stack. Terraform Copyright © 2021, Oracle and/or its affiliates

Slide 22

Slide 22 text

• OCI • Terraform (.tf) • : Plan, Apply, Destroy State • (.tfstate) • Resource Manager • • OCI Resource Manager Copyright © 2021, Oracle and/or its affiliates 22 1 2 3 State Destroy Apply Plan 1 2 … .tf Resource Manager

Slide 23

Slide 23 text

23 OCI Resource Manager – Terraform Terraform https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Concepts/resourcemanager.htm#workflow Plan ' Terraform Apply State Destroy Copyright © 2021, Oracle and/or its affiliates

Slide 24

Slide 24 text

デモ Copyright © 2021, Oracle and/or its affiliates 24 OCI Resource Managerを利用したOCIリソースの作成 • テンプレートを利用したネットワークリソースの作成 • zipしたTerraform構成ファイルをアップロードしてロードバランサとWebサーバーを構成 • ソースコードリポジトリ (GitHub) と連携した構成の実行

Slide 25

Slide 25 text

… Copyright © 2021, Oracle and/or its affiliates 25

Slide 26

Slide 26 text

Terraform • Resource Manager • HCL Oracle Cloud Infrastructure • Copyright © 2021, Oracle and/or its affiliates 26

Slide 27

Slide 27 text

Resource Manager (=state ) OCI = Copyright © 2021, Oracle and/or its affiliates 27

Slide 28

Slide 28 text

Ansible ← AVAILABLE OCI DevOps Resource Manager Copyright © 2021, Oracle and/or its affiliates 28

Slide 29

Slide 29 text

Infrastructure-as-code Oracle Cloud Infrastructure OCI Resource Manager / Terraform OCI IaC Copyright © 2021, Oracle and/or its affiliates 29

Slide 30

Slide 30 text

Thank you Copyright © 2021, Oracle and/or its affiliates 30