0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Deployable Architectureを使って環境構築

Last updated at Posted at 2025-04-28

はじめに:Deployable Architectureとは

Deployable Architectureとは、お客様が安心してIBMのソフトウェアを利用することができるよう、ベストプラクティスに基づいた環境を自動構築するものです。技術的にはTerraformが使われています。
スクリーンショット_2025-04-03_14_14_21.png

検証内容

こちらの記事では、実際にVSI on VPC landing zoneというDeployable Architectureを使って、環境をデプロイする手順、デプロイされるリソースの一覧とアーキテクチャ、払い出される環境の各種設定について書きます。

手順

VSI on VPC landing zoneを新規Projectに追加

カタログから構築したい環境を選択し、既存または新規のProjectに追加します。今回はVSI on VPC landing zoneを構築します。
カタログから構築したい環境をクリックするとこちらの画面が出てきます。
スクリーンショット_2025-04-03_14_24_29.png
今回は、以下を選択しました。

  • Architecture
    • Product version: v7.2.2
    • 環境を新規作成
  • Variation
    • QuickStart

Variationは、構築される環境の非機能要件が異なるようです。
今回はQuickStartを選択しましたが、StandardというVariationを選ぶと、例えば可用性を高めるためにMZR構成にする、Activity TrackerとFlow LogsでIPトラフィック情報を収集する、セキュアにアクセス出来るようsite-to-site VPNを張るなどの非機能要件を満たすようにリソースが払い出されます。

VSI on VPC landing zone(QuickStart)のアーキテクチャ

こちらの図のようなアーキテクチャで払い出されます。ユーザーが1つ1つのコンポーネントを選んで組み合わせるのではなく、自動でベストプラクティスに基づいたアーキテクチャが組まれています。
スクリーンショット_2025-04-02_11_19_32.png

画面右側に載っているリソースが払い出されるようです。
スクリーンショット_2025-04-03_14_48_17.png

権限設定

上記のように環境を選んでいくと、この環境を構築する為に必要となる権限が"Platform roles"、"Service roles"のように分類されて表示されます。これら全ての権限を満たすように、IAMで設定変更を行う必要があります。

スクリーンショット 2025-04-03 14.32.32.png

(ご参考:今回の検証では、権限を充足する為にAccess Groupを作成し、権限設定を行いました。Access Groupで設定しておくと後で削除しやすい、権限設定が残らないというメリットがあります。)

ここまで完了したら、Add to projectをクリックします。

Projectとは、コードベースのデプロイメントやアカウントのメンバー間でのコラボレーションを容易にする為の単位です。デプロイする前に、コンプライアンスやセキュリティーといった観点で問題がないかスキャンしたり、構成のバージョン管理およびガバナンスを追跡したりするためのツールが含まれています。

Projectを作成します。
スクリーンショット_2025-04-03_16_41_24-2.png
以下の必須項目を入力します。

  • project名:egawa-kensyo
  • region:Dallas(us-south)
  • resource group:egawa-test

"Create"をクリックしてProjectを作成します。

Configurationを編集

作成したProject内のdeploy-arch-ibm-slz-vsi-cac5
Configure > SecurityRequiredの項目を入力する必要があります。
スクリーンショット_2025-04-03_17_17_48.png

APIキーを作成・登録

スクリーンショット_2025-04-03_17_25_06.png
Securityの項目に、APIキーを登録する必要があります。
まずはAPIキーを作成し、Secrets ManagerにAPIキーを登録します。
Manage>Access(IAM)>API keysと進むとこちらの画面が出てきます。自分のユーザーIDに関連づけられた自分のAPIキーを作成するため、"My IBM Cloud API keys"と表示されている状態でCreateします。
スクリーンショット_2025-04-04_10_44_15.png

スクリーンショット 2025-04-04 11.03.24.png

  • APIキーの名前
  • 説明(任意)
  • 鍵情報が漏れた時のアクション
  • APIキーがCLIでセッションを作成するかどうか

項目を入力して、"Create"をクリック

スクリーンショット 2025-04-04 11.34.51.png
作成されたAPIキーをコピーしておきます。

続いて、Secrets Managerに作成したAPIキーを登録します。
Secrets Managerとはシークレットと呼ばれる「秘密にしておきたい情報」を管理・保管するIBM Cloudのサービスです。既存のSecrets ManagerにSecretとしてAPIキーを登録します。
スクリーンショット_2025-04-04_11_36_17.png

スクリーンショット 2025-04-04 11.48.35.png
APIキーはOther secret type
スクリーンショット 2025-04-04 11.51.56.png
以下の項目を入力

  • Secretの名前
  • 説明(任意)
  • Secret Group
  • ラベル(任意)

スクリーンショット 2025-04-04 11.54.25.png
コピーしておいたAPIキーを入力します。

スクリーンショット 2025-04-04 11.55.53.png
ここまで入力した項目を確認し、Addをクリックします。
これで、Secrets ManagerにAPIキーの登録が出来ました。

Project> deploy-arch-ibm-slz-vsi-cac5に戻ります。
"API key using Secrets Manager"を選択し、APIキーを入力します。
スクリーンショット 2025-04-04 11.57.20.png

この時、IAMでの権限設定が足りない状態でAPIキーを作成・登録してしまうと、Projectの"Needs attention"の項目や"Draft status"にこのような表示が出てきます。これが表示されている場合はどこか足りない部分があるので注意してみてください。
スクリーンショット_2025-04-03_17_36_36.png

SSHキーを登録

スクリーンショット_2025-04-03_17_34_38.png
Requiredの項目に、SSHキーを登録します。

Configurationの編集が完了したら、Validate

必要な項目を埋めたら、ConfigurationをValidateします。
スクリーンショット_2025-04-04_12_03_53.png
Validate開始。コードエラーやコンプライアンスなどを検証しています。
スクリーンショット 2025-04-04 12.06.28.png

Validationが終わると、承認を求められるので承認します。
デプロイが始まります。13分ほどかかると書いてあります。
スクリーンショット 2025-04-04 12.07.29.png
私の場合は、IAMの権限設定でいくつか不足があったため2度ほど失敗しました。View logsからどの段階でデプロイが失敗しているのか確認できるため、そちらを参照するといいです。

スクリーンショット 2025-04-04 17.52.06.png
デプロイが完了しました。

デプロイ結果

自動的に作成されたリソース一覧はこちらです。
IBM Cloudのサービスリソースというより、Schematicsから見たデプロイ単位のコンポーネントが一覧になっているようです。VPC、VSI、security group、address prefixなどが含まれていることがわかります。
スクリーンショット 2025-04-04 18.01.41.png
スクリーンショット 2025-04-04 18.02.10.png

IBM Cloudのリソースとして払い出された名前でまとめてみました。
https___qiita-image-store_s3_ap-northeast-1_amazonaws_com_0_3523945_6b90fbe5-8cb8-471e-bb0d-b304727f4d46.png

  • VPC①: land-zone-vsi-qs-management-vpc 10.10.10.0/24

    • Resource Group: land-zone-vsi-qs-management-rg
    • Security Group: management
    • Subnet: land-zone-vsi-qs-management-vsi-zone-1
    • VSI: land-zone-vsi-qs-jump-box-6612-001 Reserved IP:10.10.10.4 FIP: 52.116.143.94
    • VNI: land-zone-vsi-qs-jump-box-6612-001-vni
  • VPC②land-zone-vsi-qs-workload-vpc 10.40.10.0/24

    • Resource group: land-zone-vsi-qs-workload-rg
    • Security Group: workload
    • Subnet: land-zone-vsi-qs-workload-vsi-zone-1
    • VSI: land-zone-vsi-qs-workload-server-580a-001 Reserved IP: 10.40.10.4
    • VNI: land-zone-vsi-qs-workload-server-580a-001-vni
  • Transit Gateway: land-zone-vsi-qs-transit-gateway

  • Key Protect: slz-kms

    • Key: slz-vsi-volume-key

各種設定

  • "management"、"workload"と2つVPCがあり、"management"側にはFloating IPがついています。"management"を踏み台サーバとしてアクセスする想定で"workload"はPrivate IPのみついています。
  • セキュリティグループ:Floating IPのついているVSIのある"management"には、デフォルトで22番ポートが開いていました。どのIPアドレスからもアクセスできるようになっているので、こちらは最低限の必要なアクセス元PC等のIPアドレスに絞っておくことをお勧めします。
  • セキュリティグループは、10.0.0.0/8と161.26.0.0/16からの通信がデフォルトで許可されています。前者はプライベートのネットワークからの通信を通すもので、後者はIBM CloudのIaaSサービスからの通信ができるIPレンジとなっています。
  • 今回は実施しませんでしたが、Projectのデプロイ前、Configurationを編集するところでTerraformのjsonをオーバーライドすることが出来るようです。Security Groupやサブネット、OSのイメージなどをあらかじめ変更、追加したい場合はこちらもご確認ください。

ミニ検証

Client PCからVSI①にSSH接続

VSI① land-zone-vsi-qs-jump-box-6612-001 にmacからSSH接続してみます。登録しておいたSSHキーの秘密鍵を使って、FIP: 52.116.143.94に接続します。
スクリーンショット 2025-04-21 18.51.10.png
接続できました。

VSI①からVSI②にPingで疎通確認

VSI①からVSI② land-zone-vsi-qs-workload-server-580a-001にPingを打ってみます。
スクリーンショット 2025-04-21 18.53.39.png
疎通できていることがわかりました。

Client PCからVSI①にSSHキーをコピーし、VSI②にSSH接続

Client PCから、scpコマンドで秘密鍵をVSI①にコピーします。

scp -i /Users/haruna452201/.ssh/id_rsa /Users/haruna452201/.ssh/id_rsa root@52.116.143.94:~/.ssh/id_rsa

続いてVSI①にログインし、.sshのディレクトリに配置した秘密鍵を使ってVSI②にSSH接続します。

ssh -i ~/.ssh/id_rsa root@10.40.10.4

スクリーンショット 2025-04-24 10.28.38.png
スクリーンショット 2025-04-24 10.34.56.png
VSI②land-zone-vsi-qs-workload-server-580a-001にSSH接続できました。

削除手順

削除したいProject ("egawa-kensyo")の名前をクリック
スクリーンショット_2025-04-25_12_27_29.png
"Configuration"> 削除したいデプロイメントの"Undeploy"をクリック
スクリーンショット_2025-04-25_12_28_28.png
Undeployが始まります。
Undeployが無事実行されると、こちらのProjectから、Deployable Architectureで払い出されたリソースの表示が無くなります。

私の場合は、Resource Groupの削除権限が足りず、一度Undeployに失敗しました。このような場合、

  1. IAMで権限変更
  2. APIキーを作成し直す
  3. Secrets Managerの既存Secret(APIキー)を "Rotate" する

ことをお勧めします。2のあと、3で"Rotate"ではなく新たにSecretを作ってしまうと、その新Secretを適用して再度Deployable ArchitectureのValidationとデプロイメントをしなくてはいけなくなってしまいます。

その他後片付け

  • Deployable Architectureのデプロイ用に作成したAccess Groupを削除
  • Deployable Architectureのデプロイ用に登録したSecretを削除
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?