このページは Azure AKS へのデプロイにのみ適用されます。仮想マシンへのデプロイの場合は、インストール ガイドを参照してください。
このガイドでは、Azure CLI と ARM テンプレートを使用して、ABBYY Vantage に必要な Azure インフラストラクチャを作成する手順を説明します。このインフラストラクチャは、Vantage インストーラー コンテナー内から作成します。
開始する前に、次のものが用意されていることを確認してください。
- リソースの作成および管理が可能な権限を持つ Azure サブスクリプション
- ローカル マシンにインストールされた Docker
- コンテナー イメージをダウンロードするためのインターネット アクセス
- 高可用性構成の場合: VM 上にデプロイされた Redis クラスター(システム要件を参照)
インフラストラクチャの作成には時間がかかるため、作成中にコンテナー イメージのダウンロードを開始できます。
以下の Azure リソースが作成されます。
Azure Subscription
└── Resource Group
├── AKS Cluster
│ ├── Services Node Pool (Standard_D8as_v5)
│ └── Workers Node Pool (Standard_D16as_v5)
├── Storage Accounts (5)
│ ├── Skills (Premium/Hot)
│ ├── Processing (Standard/Hot)
│ ├── Temporary (Standard/Hot)
│ ├── Shared Folders (Premium FileStorage)
│ └── Archive (Standard/Cool)
├── Azure SQL Server
│ └── Elastic Pool Database
└── Public IP Address
ステップ 1:インストーラー イメージをダウンロードする
まず、Vantage のインストーラー イメージをダウンロードし、コンテナー レジストリにプッシュします。
# Vantage Docker レジストリにログイン
docker login abyvtgonprm27.azurecr.io -u <username> -p <password>
# Pull the installer image
docker pull abyvtgonprm27.azurecr.io/vantage-azure:2.7.1
# Tag for your registry
docker tag abyvtgonprm27.azurecr.io/vantage-azure:2.7.1 \
registry.yourdomain.tld/vantage/vantage-azure:2.7.1
# Push to your registry
docker push registry.yourdomain.tld/vantage/vantage-azure:2.7.1
購入時に提供された認証情報で <username> と <password> を置き換えてください。
インストーラーコンテナを起動します。このガイドで以降に実行するすべてのコマンドは、このコンテナ内で実行します。
docker run -it registry.yourdomain.tld/vantage/vantage-azure:2.7.1
コンテナー内で Azure アカウントにサインインします。
# Azure にログイン(認証用のブラウザが開きます)
az login
# Set the subscription
az account set --subscription <subscription_id>
<subscription_id> をご利用の Azure サブスクリプション ID に置き換えてください。
希望する Azure リージョンにリソース グループを作成します。
az group create --location <location> --resource-group <resource_group_name>
例:
az group create --location eastus --resource-group vantage-prod-rg
代表的な Azure リージョン: eastus, eastus2, westus2, westeurope, northeurope
まず、作成されるリソースを確認します。
az deployment group what-if --name aks-cluster \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Cluster.Manual.json \
--parameters kubernetesClusterName=<cluster_name>
az deployment group create --name aks-cluster \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Cluster.Manual.json \
--parameters kubernetesClusterName=<cluster_name> \
--parameters enableFIPS=false
このコマンドは、高可用性なし 構成で、8時間あたり 50,000 ページを処理可能なクラスターを作成します。その他の構成が必要な場合は、クラスター作成後に Performance Guide を参照し、ノードプール設定を変更してください。
FIPS に準拠したデプロイの場合は、enableFIPS=true を設定します。追加の設定については、FIPS Compliance を参照してください。
デプロイのプレビュー
az deployment group what-if --name storage \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/StorageAccounts.Template.json
az deployment group create --name storage \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/StorageAccounts.Template.json \
--parameters kubernetesClusterName=<cluster_name> \
--parameters enableFIPS=false
env_specific.yml 内の s3storage セクションを設定するためのアクセス キーとシークレット キーを取得します。
az deployment group show --name storage \
--resource-group <resource_group_name> \
--query properties.outputs -o yaml
出力内容を保存しておいてください。これらの値は env_specific.yml 設定ファイルで使用します。
手順 7: Azure SQL Server の作成
デプロイ内容を確認する
az deployment group what-if --name dbservers \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Databases/DB.Server.Template.json \
--parameters serverBaseName=<cluster_name> \
--parameters dbAdminLogin=<db_username> \
--parameters dbAdminPassword=<db_password>
az deployment group create --name dbservers \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Databases/DB.Server.Template.json \
--parameters serverBaseName=<cluster_name> \
--parameters dbAdminLogin=<db_username> \
--parameters dbAdminPassword=<db_password>
dbAdminLogin および dbAdminPassword Parameter は、データベースにアクセスするための認証情報です。これらは env_specific.yml 設定用に保存しておいてください。
ステップ 8: Azure SQL Database を作成
デプロイのプレビュー
az deployment group what-if --name databases \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Databases/SQL.Databases.Template.json \
--parameters serverBaseName=<cluster_name>
az deployment group create --name databases \
--resource-group <resource_group_name> \
--template-file files/infrastructure/azure/arms/Databases/SQL.Databases.Template.json \
--parameters serverBaseName=<cluster_name>
AKS クラスターのノード リソース グループ名を取得します。
az aks show --name <cluster_name> -g <resource_group_name> \
--query nodeResourceGroup -o tsv
この値を保存しておいてください。このパブリック IP アドレスを、このリソース グループに割り当てます。
-
ステップ 9 で作成したノード リソース グループ内に Azure パブリック IP アドレス(Standard Static IPv4)を作成するか、既存のパブリック IP アドレスをそのリソース グループに移動します。
-
env_specific.yml の設定で使用するために IP アドレスを控えておきます:
loadbalancer:
external_ip: <your_public_ip_address>
-
この IP アドレスを指すように、ドメインの DNS A レコードを作成 します。
ステップ 11: GPU ドライバーのインストール(オプション)
Deep Learning を使用する Skill をトレーニングするために GPU ワーカーをデプロイする予定がある場合:
ansible-playbook -i inventories/azure -v \
playbooks/infrastructure/azure/02_install_gpu_driver.yml
GPU デプロイの要件については、システム要件 を参照してください。
これらの手順を完了すると、次のリソースが作成されます。
| Resource | Purpose |
|---|
| Resource Group | すべての Vantage リソースを格納するコンテナー |
| AKS Cluster | Vantage を実行するための Kubernetes クラスター |
| Services Node Pool | Vantage プラットフォーム サービスを実行するノード プール |
| Workers Node Pool | 文書処理ワーカーを実行するノード プール |
| Skills Storage Account | Skill の定義と構成を格納 |
| Processing Storage Account | 処理中の文書を格納 |
| Temporary Storage Account | トランザクションの一時保管 |
| Shared Folders Storage Account | インポート/エクスポート用共有フォルダーへのアクセスを提供 |
| Archive Storage Account | 文書を長期保管 |
| Azure SQL Server | データベース サーバー |
| Azure SQL Database | Vantage の運用データベース |
| Public IP Address | Vantage への外部アクセス |
インフラストラクチャを作成したら、次を実行します。
-
env_specific.yml を設定する - このガイドで示した値で設定します。完全な設定形式については、インストール を参照してください。
-
コンテナイメージをダウンロードする - Vantage のイメージをコンテナレジストリに同期します。
-
インストールを実行する - プレイブックを使用してインストールを完了します。
完全なインストール手順については、インストール に進んでください。
お使いの Azure アカウントに、次の権限が付与されていることを確認してください。
- 対象のサブスクリプションまたはリソース グループに対する Contributor ロール
- AKS クラスター、ストレージ アカウント、SQL データベースを作成する権限
クラスター名は15文字以内で指定してください。短い名前を使用してください。
Azure Storage アカウント名はグローバルで一意である必要があります。ARM テンプレートは、クラスター名に基づいてアカウント名を生成します。名前の競合が発生した場合は、別のクラスター名を使用してください。
Azure SQL Database のファイアウォール規則で、AKS クラスターの送信元 IP アドレスからの接続が許可されていることを確認してください。仮想ネットワーク規則を追加するか、Azure サービスからのアクセスを許可する必要がある場合があります。