Azure に C# コンテナ インスタンスをデプロイする

This article was translated from English: Does it need improvement?
Translated
View the article in English

Azure 上の Terraform を使用して IronSecureDoc Docker コンテナーをデプロイし、パブリック IP アドレスと FQDN で使用できるようにします。

前提条件

ステップ1: GitHubリポジトリテンプレートをクローンする

GitHub リポジトリ テンプレートは、クローンしてすぐに開始できる状態でここに用意されています:

https://github.com/iron-software/IronSecureDoc-Terraform/

ステップ2: すべてのリソース名を変更する

variables.tf内のすべてのリソース名を変更する

  • resource_group_name : リソース グループの名前。
  • resource_group_location : リソースグループの場所。REGIONS.md からリージョンを確認し、2番目の列にこの変数を入力してください。
  • container_group_name : コンテナ グループの名前。
  • container_name : コンテナの名前。
  • image_tag : デプロイするイメージのタグ。 latestまたは任意の特定のバージョン番号を指定できます。
  • その他の変数は変更する必要はありません。

すべての機密データを格納するsecret.tfvarsを作成する

secret.tfvarsに次の変数を入力します。

Azure コンテナー レジストリ

main.tf dns_name_label = var.dns_name_labelの後に追加します。

image_registry_credential {
  server   = var.registry_server
  username = var.registry_username
  password = var.registry_password
}

variables.tfに追加:

variable "registry_server" {
  type        = string
  sensitive   = false
  description = "The server for the container registry. Required if the image is stored in a private registry."
}

variable "registry_username" {
  type        = string
  sensitive   = true
  description = "Username for the container registry. Required if the image is stored in a private registry."
}

variable "registry_password" {
  type        = string
  sensitive   = true
  description = "Password for the container registry. Required if the image is stored in a private registry."
}

secret.tfvarsに追加:

registry_server   = "<registry-name>.azurecr.io"
registry_username = "YOUR-REGISTRY-USERNAME"
registry_password = "YOUR-REGISTRY-PASSWORD"
license_key       = "YOUR-LICENSE-KEY"

Dockerハブ

secret.tfvarsに追加:

license_key = "YOUR-LICENSE-KEY"

ステップ3: Terraformを初期化する

terraform initを実行して、Terraform デプロイメントを初期化します。 このコマンドは、Azure リソースを管理するために必要な Azure プロバイダーをダウンロードします。

terraform init -upgrade
terraform init -upgrade
SHELL

ステップ4: Terraform実行プランを作成する

terraform planを実行して実行プランを作成します。

terraform plan -var-file="secret.tfvars" -out main.tfplan
terraform plan -var-file="secret.tfvars" -out main.tfplan
SHELL

ステップ5: Terraform実行プランを適用する

terraform applyを実行して、実行計画をクラウドインフラストラクチャに適用します。

terraform apply main.tfplan
terraform apply main.tfplan
SHELL

ステップ6: 結果を確認する

  1. 実行プランを適用すると、Terraform はパブリック IP アドレスを出力します。 IP アドレスを再度表示するには、 terraform outputを実行します。

    terraform output -raw container_ipv4_address
    terraform output -raw container_ipv4_address
    SHELL

    または、FQDN を表示します。

    terraform output -raw container_fqdn
    terraform output -raw container_fqdn
    SHELL
  2. Postman または curl を使用して検証します。 期待される結果はpongを返すはずです。

    curl http://<container_ipv4_address>:8080/v1/document-services/ping
    curl http://<container_ipv4_address>:8080/v1/document-services/ping
    SHELL

    または、FQDN を使用します。

    curl http://<container_fqdn>:8080/v1/document-services/ping
    curl http://<container_fqdn>:8080/v1/document-services/ping
    SHELL

ステップ7: リソースを破壊する

  • リソースを破棄するための実行プランを作成します。

    terraform plan -destroy -var-file="secret.tfvars" -out main.tfplan
    terraform plan -destroy -var-file="secret.tfvars" -out main.tfplan
    SHELL
  • 実行破棄プランを適用します。

    terraform apply main.tfplan
    terraform apply main.tfplan
    SHELL

よくある質問

Terraformを使用してAzureにDockerコンテナをデプロイする方法は?

Terraformを使用してAzureにDockerコンテナをデプロイするためには、IronSecureDoc用のGitHubリポジトリテンプレートをクローンし、`variables.tf`内のリソース名を変更して、機密データを含む`secret.tfvars`ファイルを作成する必要があります。その後、terraform initを使用してデプロイを初期化し、terraform planterraform applyを使用して実行プランを作成および適用します。

AzureデプロイのためのTerraform設定に必要な手順は何ですか?

まずTerraformをインストールして設定し、その後Azureに認証します。IronSecureDocの特定のGitHubリポジトリをクローンし、`variables.tf`ファイル内のリソース名を修正し、`secret.tfvars`で機密データを管理します。最後に、Terraformを初期化し、デプロイのための実行プランを作成します。

このデプロイメントにおけるAzure Container Registryの役割は何ですか?

Azure Container RegistryはDockerイメージを保存するために使用されます。必要なDockerイメージをアクセスおよびデプロイするために、レジストリの認証情報を`main.tf`ファイルに追加し、`variables.tf`および`secret.tfvars`でレジストリ情報を指定する必要があります。

AzureでのTerraformデプロイが成功したかどうかを確認する方法は?

Terraform実行プランを適用した後、terraform outputを実行してパブリックIPアドレスまたはFQDNを取得します。Postmanやcurlのようなツールを使用してサービスにpingリクエストを送信します。成功したデプロイメントは「pong」を返します。

AzureデプロイメントのためにTerraformを初期化するコマンドは何ですか?

AzureデプロイメントのためにTerraformを初期化するには、terraform init -upgradeコマンドを使用します。これはAzureリソースを管理するために必要なプロバイダープラグインをダウンロードします。

Terraform構成で機密データをどのように扱いますか?

レジストリ認証情報やライセンスキーなどの機密データは、`secret.tfvars`ファイルに保存する必要があります。このファイルは、Terraformプランおよび適用プロセス中に参照され、機密情報を安全に管理します。

Terraformを使用してAzureでデプロイされたリソースを破棄するプロセスは何ですか?

Terraformを使用してAzureでデプロイされたリソースを破棄するには、terraform plan -destroy -var-file='secret.tfvars' -out main.tfplanで破棄実行プランを作成し、terraform apply main.tfplanを使用して適用します。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Version: 2024.10 リリース