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

OpenShift.Run2023_create-aro-with-terraform

Taiki Ishii
January 27, 2023

 OpenShift.Run2023_create-aro-with-terraform

OpenShift.Run2023

Session [Azure Red Hat OpenShift を Terraform でコード化!]

Taiki Ishii

January 27, 2023
Tweet

Other Decks in Technology

Transcript

  1. © COPYRIGHT 2023 FIXER Inc. Azure Red Hat OpenShift を

    Terraform でコード化! 株式会社FIXER 石井汰樹
  2. © COPYRIGHT 2023 FIXER Inc. 2 ⚫ 自己紹介 ⚫ Infrastructure

    as Codeとは? ⚫ Azure Red Hat OpenShiftをTerraformでコード化! ⚫ AROをTerraformでコード化するときに大変だったこと 目次
  3. © COPYRIGHT 2023 FIXER Inc. 3 ⚫ 石井 汰樹(いしい たいき)と申します

    ⚫ 2000年生まれの滋賀出身のクラウドインフラエンジニアです (西暦の下2桁と自分の年齢が同じなので、年齢を忘れてもすぐ思い出せます) ⚫ インフラ(クラウド)に触り始めて2年くらいです ⚫ クラウドは9.9割Azure0.1割AWSの割合で触ってます ⚫ コンテナやKubernetes周りの部分をよく触ってます ⚫ OpenShiftに触り始めて1年くらいです 自己紹介
  4. © COPYRIGHT 2023 FIXER Inc. 4 Infrastructure as Code とは?

    IaC (Infrastructure as Code) は、手動のプロセスではなく、コードを使 用してインフラストラクチャの管理とプロビジョニングを行うこと を言います。 出典: IaC (Infrastructure as Code) とは | Red Hat https://www.redhat.com/ja/topics/automation/what-is-infrastructure-as-code-iac IaC Not IaC コードを調整して流すだ けで完了😄 手順書に従って、 人間が手で作っていく
  5. © COPYRIGHT 2023 FIXER Inc. 5 IaC にあるメリットとデメリットを個人の主観で書いてみました。 ▪メリット ➢

    同じインフラ構成を容易に複製できる ➢ 似たようなインフラ構成も少しの修正で作成できる ➢ 作業時のダブルチェックが不要 ➢ 作業時の待ち時間に別のことができる ➢ 作業時にミスが減る ▪デメリット ➢ コーディングスキルや専門知識が必要になる ➢ コードを介さずにインフラを変更することができない ➢ 手で構築するときには見えなかった詰まるポイントがある Infrastructure as Code とは?
  6. © COPYRIGHT 2023 FIXER Inc. 6 Infrastructure as Code とは?

    コ ス ト 進行度 ② ① ③ Not IaCの場合とIaCの場合のコストと進行度のイメージを グラフ化してみました。 進行度がどの段階なのかを下記に記述しています。 Not IaC IaC ①まで 手順書の作成期間 コードの作成期間 ①から②まで レビュー期間 レビュー期間 ②から③まで 開発環境構築 開発環境構築 ③以降 本番環境構築 本番環境構築 ポイント① IaCだと設定行為を実装 するのにコストがかかる ポイント② 手順書だと作業ミスによ る手戻りコストがかかる
  7. © COPYRIGHT 2023 FIXER Inc. 7 簡単な用語解説 Azure ・・・ Microsoft

    が提供するクラウドプラットフォーム Azure Red Hat OpenShift (ARO) ・・・ Azure 上で提供される OpenShift Terraform ・・・ オープンソースのIaCソフトウェアツール 本セッションではコードの詳細は割愛しているので、「Terraformのコードを見たい」という人は Terraformのコードの全文と解説が弊社ブログにあります。 https://tech-blog.cloud-config.jp/2022-12-15-create-aro-with-terraform Azure Red Hat OpenShiftをTerraformでコード化!
  8. © COPYRIGHT 2023 FIXER Inc. 8 今回構築するAROはMicrosoft公式のチュートリアルで作成されるものと ほぼ同じものを作成します。 https://learn.microsoft.com/ja-jp/azure/openshift/tutorial-create-cluster 上記のリンク内のクラスターを作成するという部分が

    今回コード化がされている部分です。 右記の画像はチュートリアル全体をキャプチャしたもので、 今回コード化したのは赤枠で囲った部分になります。 (次スライドで拡大した画像を表示します) Azure Red Hat OpenShiftをTerraformでコード化! チュートリアルやってみた 記事も書いてます https://tech-blog.cloud- config.jp/2021-12-28- tutorial-aro-cluster
  9. © COPYRIGHT 2023 FIXER Inc. 9 先ほどのスライドの赤枠で囲った部分を 拡大したものが右の画像になります。 Azure CLIというコマンドラインツールであれば、

    右記のコマンドを実行して待つだけで簡単なんですが 該当の部分を作成するのに数時間程度かかりました。 Azure Red Hat OpenShiftをTerraformでコード化!
  10. © COPYRIGHT 2023 FIXER Inc. 10 大変だったポイント 1. 自動的にされている処理を明示的にコード化する必要がある 今回沼にはまっていた部分です。(該当コードへのリンク)

    原因はARO用に用意されているリソースプロバイダーサービスプリンシパルに ネットワーク共同作成者権限がなかったことでした。 仮想ネットワークのIAMを確認してたら見慣れない名前のアプリがあったので、ようやく気付けました。 2. デバッグに時間がかかる コードを実行してエラーが出るまでに5分くらい待つ必要があるので、 何度も試しているとあっという間に時間が溶けます。 3. 単純に書く分量が多い AROは多くのパラメータを持つリソースなので、コード内の変数が多く処理も長くなってしまいます。 コードを再利用しやすいように実装を頑張って工夫していくと、こちらも時間が溶けていきます。 AROをTerraformでコード化するときに大変だったこと