はじめに
- 本記事では UiPath Automation Suite 2.2510.2 をAmazon EKS環境 (東京リージョン) にて、Terraformを利用してリソースをデプロイし、インストールを実行する手順をまとめたものです。
- Automation Suiteのシステム要件は こちらのページ をご参照ください。かなりハイスペックなマシンが必要となりますので、AWSの利用料金にはご注意ください。
v2.2510.2はマイナーバージョンアップですが、 Maestro や Agent Builder などエージェント関連の新機能が追加されていますので、これらの製品の利用手順を中心に説明します。
Automation Suiteとは?
- UiPathの各製品サービスをひとまとめにしてユーザーが所有する環境に展開できる全部入りの製品です。
- v2.2510.2では 次の製品サービス がサポートされています。(太字が新規追加機能)
- Action Center
- Agents
- AI Center
- AI Trust Layer
- LLM Gateway
- LLM Observability
- Context Grounding
- Apps
- Automation Hub
- Automation Ops
- Autopilot for Everyone
- Autopilot for Developers
- Autopilot for Testers
- Data Service
- Document Understanding
-
Healing Agent
- Semantic Proxy
- Insights
- Integration Service
- GenAI アクティビティ
-
Maestro
- Temporal as a Service (TaaS)
- Orchestrator
- Automation Suite ロボット
- コード化されたエージェント
- Process Mining
-
ScreenPlay
- Semantic Proxy
- ソリューション
- Studio Web
- Test Manager
Maestroはワークフローエンジンとしてオープンソース Temporal を利用していますが、TemporalはデータベースとしてPostgreSQLを利用しています。
つまりMaestroを利用するにはPostgreSQLが必要となります。
Automation Cloudとの使い分け
-
SaaS型のAutomation Cloud利用にあたり、次のような課題がある場合にAutomation Suiteを選択肢として検討します。
- 企業のセキュリティポリシーとして個人情報を扱う業務などではSaaS利用に制約があり、Automation Cloudがセンシティブな業務の自動化には適さない場合がある。
- Automation Cloudはインターネット経由でのアクセスのみ許可されており、専用線やVPNのみに接続を限定することはできません。
- ソースIPの制限 を設けることはできますが、インターネット経由でのアクセスという点では変わりはありません。
- Automation CloudはUiPath社が管理するAzure基盤にマルチテナントで展開されております。専有型のオプションも提供されています が、利用条件があるため詳細はUiPath社までお問い合わせください。
-
Automation SuiteとAutomation Cloudの機能比較の詳細は 製品の提供状況 をご覧ください。
Automation Suiteの構成
Amazon EKS環境における構成図
-
構成図は次の通りです。(※ 参照: デプロイのシナリオ)
-
この構成において利用するAWSサービスと用途は次の通りです。
| AWSサービス | 用途 |
|---|---|
| EC2 (Windows) | 踏み台サーバー。管理者がRDPで接続 |
| EC2 (Linux) | 作業用Linuxマシン。管理者が踏み台サーバーからSSHで接続kubectl コマンドなどを実行してEKSクラスターを操作 |
| EKS | Automation SuiteをインストールするKubernetesクラスター 管理プレーンとワーカーノード(EC2)から構成 |
| NLB | クライアントからのHTTPSトラフィックを適切なサービスに振り分け、複数ノードでの負荷分散と高可用性を確保 |
| RDS for SQL Server | Automation Suiteの各製品サービスが使用するデータベース |
| RDS for PostgreSQL | MaestroのワークフローエンジンであるTemporalが使用するデータベース |
| ElastiCache for Redis | ワーカーノードから読み書きされ、キャッシュを保持するためのインメモリデータベース |
| EFS | Automation Suiteのバックアップファイルを格納するためのファイルサーバー |
| S3 | Automation Suiteの各製品サービスのアプリケーションデータを格納するストレージ。オブジェクトストアと呼ばれる |
| SQS | Integration ServiceのイベントやWebhookで利用するキュー |
| Route 53 | Automation Suiteによって使用されるDNSレコードを作成 ※ 今回は検証用に lab.test というローカルドメインを使用 |
- 各マシンとワーカーノードからはアウトバウンドへのインターネットアクセスは可能とします。
- ワーカーノードからRDS for SQL Server、RDS for PostgreSQL、ElastiCache for RedisおよびS3へのアクセスにはそれぞれプライベート接続を使用します。
サイジング
-
EKSワーカーノードは利用するUiPath製品によってインスタンスタイプとノード数を選定します。詳細は 要件算出ツール で試算します。
-
今回は次のサービスを利用する想定で ツールの算出結果 を元に c7a.4xlarge x1台 (AS Robot専用) + c7a.8xlarge x4台 (AS Robot以外) のノード構成で進めてゆきます。
- Orchestrator
- AITL
- LLM Gateway
- Context Grounding
- LLM Observability
- Autopilot for Everyone
- Automation Solutions
- Automation Suite Robots (AS Robot)
- Studio Web
- Agent Hub
- Agents
- Maestro
- Automation Ops
- A4D
- AI Center
- Integration Service
- Insights
- Semantic Proxy
Automation Suite 環境構築手順
AWSリソース作成
- 上の構成図に記載したAWSリソースを手作業で作成するには少々骨が折れるため、本記事ではTerraformにて展開します。Terraformの使い方に慣れていない方は こちらの記事 を参照してTerraformの実行環境をセットアップしてください。
- AWSリソースをTerraformにて作成するためには AWS CLI をインストールします。
- aws configureコマンド でAWS CLIの設定を行います。
- Automation Suite用のTerraformはGitHubに公開しています。
- ローカルにコピーするには作業ディレクトリに移動し、次のコマンドを実行します。(Windows環境ではあらかじめ Git for Windows をインストールします)
git clone https://github.com/hidecha/uipath-automation-suite.git
- 変数定義ファイルを作成しエディターで開きます。
cd uipath-automation-suite/eks
cp terraform.tfvars.template terraform.tfvars # or copy command
- 主な設定項目は次の通りです。
| 変数名 | 用途 |
|---|---|
| res_prefix | 各AWSリソースのプレフィックス名 |
| region | AWSリージョン |
| availability_zones | アベイラビリティゾーン |
| tags | リソースグループに付けるタグ (省略可) |
| vpc_address | VPCアドレス範囲 |
| db_instance_type | RDS for SQL Serverのインスタンスタイプ |
| sql_username | RDS for SQL Serverの管理者ユーザー名 |
| sql_password | RDS for SQL Serverの管理者パスワード |
| redis_password | ElastiCahe for Redisの接続パスワード (16文字以上) |
| eks_fqdn | Automation SuiteのFQDN |
| enable_public_access | Automation Suiteへのパブリックアクセス許可 閉域網では false に設定 |
| cpu_instance_type | EKSワーカーノード(GPU無し)のインスタンスタイプ 要件算出ツール により決定 |
| number_of_cpu_nodes | EKSワーカーノード(GPU無し)のインスタンス数 |
| asrobot_instance_type | EKSワーカーノード(AS Robot用)のインスタンスタイプ 要件算出ツール により決定 |
| number_of_asrobot_nodes | EKSワーカーノード(AS Robot用)のインスタンス数 利用しない場合は 0 に設定 |
| gpu_instance_type | EKSワーカーノード(GPU有り)のインスタンスタイプ Document Understandingなど利用時 |
| number_of_gpu_nodes | EKSワーカーノード(GPU有り)のインスタンス数 利用しない場合は 0 に設定 |
| kubernetes_version | EKSクラスターのKubernetesバージョン 対応バージョンは Kubernetes の相互運用性 を参照 |
| my_ip | 踏み台サーバーにRDPアクセスを許可するIPアドレス 作業マシンが インターネット接続しているグローバルIPアドレスを確認 して指定します |
| s3_bucket_name | EKSワーカーノードからアクセスを許可するS3バケット名 後ほど作成する input.json の Bucket Prefix と合わせます |
| postgres_username | RDS for PostgreSQLの管理者ユーザー名 |
| postgres_password | RDS for PostgreSQLの管理者パスワード |
こちらのTerraformはElastiCacheとRDSをシングルAZでデプロイしています。マルチAZによる冗長化が必要な場合など、ご要件や環境に応じて変更を行ってください。
- 準備が整いましたらmain.tfが配置されたディレクトリに移動し、次のコマンドを一行ずつ実行し、Automation Suiteに必要なAWSリソースを展開します。
terraform init
terraform plan -out main.tfplan
terraform apply main.tfplan
- Terraformによるリソース作成が成功することを確認します。
- AWS管理コンソールにアクセスし、各リソースが作成されていることを確認します。
- Terraformを用いずに手動でAWSリソースを作成することもできます。詳細な手順は 前提条件の一覧 をご参照ください。
前提条件コンポーネントのインストールなど
Automation Suiteインストールに必要な前提条件のコンポーネントのインストールや設定などを行います。
SSH接続
まず踏み台サーバーにRDPログインし、そこから作業用LinuxクライアントマシンにSSHで接続します。
以降Linuxマシンにて順次コマンド実行します。
環境変数定義
-
aws configureコマンド でAWS CLIの設定を行います。
-
変数定義 (環境に応じて変更)
AS_VER=2.2510.2 # インストールするAutomation Suiteバージョン REGION=ap-northeast-1 # 東京リージョン PREFIX=hidecha-eks # Terraformのres_prefix CLUSTER_NAME=${PREFIX}-cluster # EKS
kubectl
- kubectlインストール
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl - kubeconfigファイルを作成
aws eks update-kubeconfig --name ${CLUSTER_NAME} --region ${REGION} - Kubernetesクラスタのすべてのリソース確認
kubectl get all -A
VPC CNI カスタムネットワーキング (ENIConfig)
- VPC CNIのカスタムネットワーキング設定はTerraform側で構成済みです。PodのIPアドレスを専用サブネット (
100.64.x.x/18) から払い出すために、各AZに対応するENIConfigリソースをLinuxマシン上で作成します。 - 次のスクリプトはPodサブネットのNameタグから自動でENIConfigを生成します。
SG_ID=$(aws eks describe-cluster --name ${CLUSTER_NAME} \ --query "cluster.resourcesVpcConfig.clusterSecurityGroupId" --output text) for AZ in $(echo ${CLUSTER_NAME} | xargs -I{} aws eks describe-cluster --name {} \ --query "cluster.resourcesVpcConfig.subnetIds" --output text | tr '\t' '\n' | \ xargs -I{} aws ec2 describe-subnets --subnet-ids {} \ --query "Subnets[0].AvailabilityZone" --output text | sort -u); do POD_SUBNET=$(aws ec2 describe-subnets \ --filters "Name=tag:Name,Values=${PREFIX}-subnet-pod*" "Name=availability-zone,Values=${AZ}" \ --query "Subnets[0].SubnetId" --output text --region ${REGION}) [ "${POD_SUBNET}" = "None" ] && continue cat <<EOF | kubectl apply -f - apiVersion: crd.k8s.amazonaws.com/v1alpha1 kind: ENIConfig metadata: name: ${AZ} spec: securityGroups: - ${SG_ID} subnet: ${POD_SUBNET} EOF done - 確認
kubectl get eniconfigs
NVIDIAアドイン
- GPUノードを利用している場合、NVIDIAアドイン をインストール (CPUノードのみの場合はスキップ)
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.1/deployments/static/nvidia-device-plugin.yml
EBSストレージクラス作成
-
EBSストレージクラス作成
sudo dnf install -y git git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git echo "parameters: type: gp3" >> aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/manifests/storageclass.yaml kubectl apply -f aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/manifests/storageclass.yaml kubectl describe storageclass ebs-sc
EFSストレージクラス作成
- EFS CSIドライバー本体・OIDCプロバイダー・IRSAロール・EKSアドオン連携はTerraform側ですべて構成済みのため、ここではEFSストレージクラスのマニフェスト適用のみを行います。
- EFS IDをAWS CLIで取得し、StorageClassを作成します。
EFS_ID=$(aws efs describe-file-systems \ --query "FileSystems[?Name=='${PREFIX}-efs'].FileSystemId" \ --output text --region ${REGION}) echo "EFS_ID=${EFS_ID}" cat <<EOF | kubectl apply -f - apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: efs-sc provisioner: efs.csi.aws.com parameters: provisioningMode: efs-ap fileSystemId: ${EFS_ID} directoryPerms: "700" EOF - テスト用PVC/Podを作成して動作確認
cat <<'EOF' | kubectl apply -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: efs-claim spec: accessModes: - ReadWriteMany storageClassName: efs-sc resources: requests: storage: 5Gi --- apiVersion: v1 kind: Pod metadata: name: efs-app spec: containers: - name: app image: almalinux command: ["/bin/sh"] args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 5; done"] volumeMounts: - name: persistent-storage mountPath: /data volumes: - name: persistent-storage persistentVolumeClaim: claimName: efs-claim EOF - 動作確認 (PVCが
Boundになり、PodがRunningになることを確認)kubectl get pvc efs-claim kubectl get pod/efs-app
Metrics Server
-
Metrics Serverインストール
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
uipathctl
-
uipathctl インストール
curl https://download.uipath.com/uipathctl/${AS_VER}/uipathctl-${AS_VER}-linux-amd64.tar.gz -o uipathctl.tar.gz tar xzvf uipathctl.tar.gz chmod +x uipathctl sudo mv ./uipathctl /usr/local/bin uipathctl version
versions.json
- versions.jsonダウンロード
curl https://download.uipath.com/automation-suite/${AS_VER}/versions.json -o versions.json
input.json作成
-
Automation Suiteの環境設定およびインストールされるUiPath製品の定義として
input.jsonのファイルを作成します。パラメーター定義 を参照して手動で作成することもできますが、設定項目が非常に多いため ウィザード を利用して主要なパラメーター設定を行い、手作業で詳細設定を行います。 -
ウィザードを起動するには次のコマンドを実行します。(一時的にFWを開放します)
sudo firewall-cmd --add-port=8080/tcp uipathctl config generate --port 8080 -
ブラウザーで
http://<Linux-IP>:8080にアクセスします。

- I accept the license agreement をオンにして Nextをクリックします。
-
Platform:
-
Basic Configuration
-
Deployment mode: Online を選択
-
Deployment type: Highly Available を選択
-
Automation Suite FQDN: terraform.tfvars の eks_fqdn と同じ値を指定
-
Admin Username:
adminを指定 -
Admin Password: Automation Suite管理画面ログイン時のパスワードを指定
-
Storage Class:
ebs-scを指定 -
Select Services: 利用するUiPath製品を選択します。今回は
Orchestrator,Insights,Automation Ops,AS Robots,Integration Services,Studio Web,AI Trust Layer,Autopilot for Everyone,Maestro,AgentHub,Agentsを選択し、Nextをクリックします。

-
-
Database Configurations
-
SQL Database
-
Redis Cache
-
Object Store
- Storage Type: S3 Bucket Store を選択
- Create Buckets: オン
- Disable Presigned URL: オフ
- Region:
ap-northeast-1を指定 - FQDN:
s3.ap-northeast-1.amazonaws.com - Port:
443 - Instance Profile: オン
- Bucket Prefix: 任意の文字列を指定
- Bucket Suffix: 任意の文字列を指定して、Nextをクリックします。
- ※
{Prefix}-uipath-as-{製品名}-{Suffix}という命名規則でUiPath製品ごとにS3バケットが作成されます。
-
-
Registry & Certificate
-
Networking
- NLBの設定を行います。接続方式によって設定内容が異なりますが、ここではプライベートサブネットで動的にNLBを作成・利用する場合を想定した設定を行います。
- "service.beta.kubernetes.io/aws-load-balancer-eip-allocations": 削除
- "service.beta.kubernetes.io/aws-load-balancer-scheme":
"internal"に変更 - "service.beta.kubernetes.io/aws-load-balancer-subnets": 3つのアベイラビリティゾーンのプライベートサブネットのIDをカンマ区切りで追加 (Terraform
private_subnet_ip_ids出力値) - "service.beta.kubernetes.io/aws-load-balancer-internal":
"true"を追加 - "service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags": 必要に応じてNLBに付加するタグを追加し、Nextをクリックします。
- NLBの設定を行います。接続方式によって設定内容が異なりますが、ここではプライベートサブネットで動的にNLBを作成・利用する場合を想定した設定を行います。
-
Advanced Configurations
-
Product Specific Configuration
-
ダウンロードしたinput.jsonをエディターで開き、3点修正します。
-
"storage_class_single_replica": "efs-sc",の後に次の行を追加:"storage_class_name_with_rwx_support": "efs-sc",

-
integrationservicesセクションを次のように設定:"integrationservices": { "queue_prefix": "{Terraformのres_prefix}", "account_id": "{AWSマネジメントコンソール右上のアカウントID}", "use_instance_profile": true, "enabled": true } -
taasセクションを次のように設定:"taas": { "enabled": true, "temporal": { "postgresql_connection_str": "postgresql+psycopg2://postgres_admin:{PostgreSQL管理者パスワード}@{RDS for PostgreSQLホスト}:5432/AutomationSuite_Taas" } }※ PostgreSQL管理者パスワードの記号文字を含む場合にはパーセントエンコードします。(例
!→%21)
-
-
LinuxマシンにてCtrl+Cでウィザードを終了します。
-
vi input.jsonを実行し、内容をコピー&ペーストして保存します。
Automation Suiteインストール
input.json が作成できましたら、いよいよAutomation Suiteインストールを実行します。
データベース / S3バケット作成
- 次のコマンドでSQL ServerデータベースとS3バケットを作成します。
uipathctl prereq create input.json --versions versions.json
- ただしPostgreSQLのデータベースは手動で作成する必要があるため、次のコマンドを実行します。
sudo dnf install -y postgresql-server
PGPASSWORD='{postgres_adminパスワード}' psql -h {PostgreSQLホスト} -p 5432 -U postgres_admin -d postgres -c 'CREATE DATABASE "AutomationSuite_Taas";'
ロードバランサー作成
uipathctl manifest apply input.json --versions versions.json --override=gateway
- AWSマネージメントコンソール > EC2 > ロードバランサーにて新しいNLBが作成されていることを確認します。
DNSレコード作成
-
AWSマネージメントコンソール > Route 53にてAutomation Suite FQDN(例:
as.lab.test)のAレコードをNLBエイリアスに紐づけします。

-
DNSレコード更新が伝播するまでTTL(300秒)の間、待機します。
前提条件チェック
uipathctl prereq run input.json --versions versions.json
- 次のエラーはひとまず無視してOKです。原因は調査中ですが、このままでもAutomation Suiteのインストールが成功することを確認しています。
[ECHO_SERVER_ACCESS] Echo server is not expected to be accessible from curl pod
Automation Suiteインストール実行
uipathctl manifest apply input.json --versions versions.json
- インストール完了までに約30分程度かかります。インストール時のPodの状態はArgoCDで監視することができます。
ArgoCDアクセス
- インストールの進捗状況はArgoCDで確認できます。
-
SSHクライアントにて別ターミナルを開き、次のコマンドにてArgoCDパスワードを取得します。
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d -
ブラウザーにて
https://alm.{AS-FQDN}(例:https://alm.as.lab.test) を開き、adminユーザー/先ほど取得したパスワードにてログインします。

-
各アプリケーションのインストール状況が色分けして表示されます。
- 緑(Synced): インストール済み
- 青(Progressing): インストール中
- 赤(Degraded): インストール失敗
-
サポートバンドル取得方法
- インストール完了時にはすべて緑で表示されますが、2~3時間経過しても青や赤が残る場合にはインストールが失敗している可能性があります。次のコマンドにて サポートバンドル を取得し、UiPath カスタマーサポートへのお問い合わせの際に添付します。
uipathctl health bundle input.json --versions versions.json
インストール後の作業など
管理画面へのログイン
-
ブラウザーにて https://{AS-FQDN} (例:
https://as.lab.test) を開き、Automation Suiteのログイン画面が表示されることを確認します。- host組織にログインするには
organization: host, Username: admin, Password: {ウィザードで指定したパスワード}にてログインします。 - default組織にログインするには
organization: default, Username: orgadmin, Password: {ウィザードで指定したパスワード}にてログインします。初回ログイン時にパスワードを変更します。
- host組織にログインするには
サーバー証明書の入れ替え
- Automation Suiteのインストール時に自動作成される自己署名証明書の有効期限は 90日間 です。有効期限が切れる前に別のサーバー証明書を準備し、入れ替えを行う必要があります。詳細な手順は 証明書を管理する をご参照ください。
製品の追加
インストール後に製品を追加するには input.json を編集して変更インストールを実行します。ここではAutopilot for DevelopersとSemantic Proxyおよび依存関係のあるAI Centerを追加する手順を示します。
-
vi input.jsonを実行し、次の箇所を修正して保存します。"aicenter": { "enabled": true }"a4d": { "enabled": true, "sqlalchemy_asyncpg_postgresql_connection_str": "postgresql+asyncpg://postgres_admin:{PostgreSQL管理者パスワード}@{RDS for PostgreSQLホスト}:5432/AutomationSuite_A4D" }"semanticproxy": { "enabled": true } -
A4D用のPostgreSQLデータベースを作成します。
PGPASSWORD='{postgres_adminパスワード}' psql -h {PostgreSQLホスト} -p 5432 -U postgres_admin -d postgres -c 'CREATE DATABASE "AutomationSuite_A4D";' -
Automation Suiteの変更インストールのために次のコマンドを実行します。
uipathctl prereq create input.json --versions versions.jsonuipathctl manifest apply --dry-run input.json --versions versions.jsonuipathctl manifest apply input.json --versions versions.json --skip-helm
エージェント関連サービスの設定
- 本記事が長くなりましたので、Agent BuilderやMaestroなどエージェント関連サービスの設定手順は別記事にて投稿しましたので合わせてご覧ください。
おわりに
- 今回はAutomation Suite 2.2510.2のインストールをAmazon EKS環境にて実行する手順を説明しました。
- エージェント関連のサービスを含めUiPathの主要な製品を自前の環境で展開できるのがAutomation Suiteの大きなメリットです。ご関心のある方はぜひAutomation Suiteのインストールにチャレンジしていただけると幸いです!













