Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【雲勉】Terraform 上手にかけるかな?~シンプルでスマートな書き方~

mfukuta
December 22, 2021

【雲勉】Terraform 上手にかけるかな?~シンプルでスマートな書き方~

mfukuta

December 22, 2021
Tweet

More Decks by mfukuta

Other Decks in Technology

Transcript

  1. アイレットご紹介 – 会社概要 3 ◼ 社名 アイレット株式会社 ◼ 所在地 〒105-6307

    東京都港区⻁ノ⾨1-23-1 ⻁ノ⾨ヒルズ森タワー7F 設⽴2003年10⽉15⽇ ◼ 資本⾦ 7,000万円 ◼ 代表者名 岩永充正 ◼ 従業員数 682名(2021年4⽉末時点) ◼ 事業内容 ITコンサルティング、システム開発、 システム保守・運⽤、 サーバハウジング・ホスティング ◼ 主要株主 KDDI株式会社
  2. アイレットご紹介 – AWS APNパートナー 4 cloudpackは、Amazon Elastic Compute Cloud (Amazon

    EC2)やAmazon Simple Storage Service (Amazon S3)をはじめ とするAWSの各種プロダクトを利⽤する際の導⼊・設計から運⽤保守を含んだフルマネージドのサービスを提供し、バックアップ や24時間365⽇の監視/障害対応、技術的な問い合わせに対するサポートなどを⾏っております。 2013年6⽉4⽇には、AWSパートナーネットワーク(APN)において、⽇本初のAPNプレミアティアコンサルティングパートナーの ⼀社として認定されたのをはじめ、その後9年連続で認定されています。 『APNプレミアティアコンサルティングパートナー』はAPNプログラムの中で最上位のパートナーであり、厳しいクライテリアを満 たしたパートナーのみが選出され、世界で128社のみが認定されています。9年連続で認定された⽇本企業としては、cloudpack (アイレット)と株式会社野村総合研究所の2社のみとなります。
  3. アイレットご紹介 – APN Consulting Partner of the Year 2017 –

    Japan 5 AWSのパートナーネットワークに登録している企業が参加した「AWS Partner Summit Tokyo」の中で、数あるアワー ドの中で最も実績をあげたパートナーであることを⽰す『APN Consulting Partner of the Year 2019 – Japan』を受賞 しました。cloudpackは、同賞を5度⽬の受賞となります。 『APN Consulting Partner of the Year 2019 – Japan』は、AWSが年間を通じて営業・技術・マーケティング分野にお いてパートナーとしての総合⼒を判断し、AWSのビジネスに最も貢献したパートナーに贈られるものです。cloudpack は、2013年から継続的にプレミアコンサルティングパートナーとして認定されているほか、業界に影響を与える多数のお 客様事例のリリースや、数千台規模のマイグレーション案件、基幹システムの移⾏を⼿掛けるなど、さらなるAWSビジネ スの拡⼤に貢献しました。 また、サーバーレスやマシンラーニングなどの新サービスも積極的に採⽤して成功させる⼀⽅で、エンタープライズ案件 も推進してきた結果、著しい売り上げ伸び率を達成 したことが評価されました。
  4. 1.Terraformとは 16 Cloudformationとの比較 Terraform Cloudformation プラットフォーム マルチに対応 AWSのみ 構成 シンプル

    やや複雑 柔軟性 高い 低い バージョン管理 必要 不必要 ファイル管理 自分 AWS 言語 HCL yaml
  5. 3.EC2を1個作ってみよう インスタンス タイプ AMI EBS VPC/ サブネット セキュリティ グループ t2.micro

    Linux2 gp2-8G ozaki-kumo- vpc/ ozaki-kumo- public-a ozaki-kumo- sg 構成要件 tags:Name キーペア ozaki-test ozaki-kumo- key
  6. 5. インポートしてみよう 1.検証環境で実現したいものを手動構築 2.terraform import 3.terraform state show → 丸コピ

    私流コードの書き方 4.公式ページなどをみてパラメータを微調整 丸コピ
  7. 6.参照してみよう インスタンス タイプ AMI EBS VPC/ サブネット セキュリティ グループ t2.micro

    Linux2 gp2-8G ozaki-kumo- vpc/ ozaki-kumo- public-a ozaki-kumo- sg ozaki-kumo- sg2 構成要件 tags:Name キーペア ozaki-test ozaki-kumo- key 新規で作成 tcp:80 0.0.0.0/0
  8. 6. 参照してみよう resource "aws_security_group" ”kumo_sg" { 別で作成する 参照する resource "aws_instance"

    ”kumo_ozaki" { vpc_security_group_ids = [ aws_security_group.kumo_sg.id ] SG.tf EC2.tf
  9. 7. 変数化してみよう resource “aws_instance” “kumo_ozaki” { instance_type = “t2.micro” }

    resource “aws_instance” “kumo_ozaki” { instance_type = X } X = t2.micro
  10. 7. 変数化してみよう resource “aws_instance” “kumo_ozaki” { instance_type = X }

    X = t2.micro resource “aws_instance” “kumo_ozaki” { instance_type = var.hogehoge } variable “hogehoge” {“t2.micro”}
  11. 8.モジュール化してみよう インスタンス タイプ AMI EBS VPC/ サブネット セキュリティ グループ t2.micro

    Linux2 gp2-8G ozaki-kumo- vpc/ ozaki-kumo- public-a ozaki-kumo- sg-test r5.large gp2-10G ozaki-kumo- sg-stg m5.large gp2-50G ozaki-kumo- sg-prod 構成要件 tags:Name キーペア ozaki-test ozaki-kumo- key ozaki-stg ozaki-prod
  12. 8.モジュール化してみよう Module化 EC2.tf SG.tf providers.tf 変数化 variable test.module 変数定義 stg.module

    変数定義 prod.module 変数定義 tfファイル init plan apply init plan apply init plan apply