概要
このホワイトペーパーでは、Amazon Elastic Kubernetesサービス(EKS)を使用したビジネスプロセス自動化(BPA)アプリケーションのデプロイと管理に関する包括的なガイドを紹介します。前提条件の概要を説明し、EKSを利用する利点を示し、EKSクラスター、Amazon RDSデータベース、およびMongoDB Atlasをセットアップする手順を説明します。さらに、導入アーキテクチャを詳しく調べ、環境要件を特定し、コンテナ化されたBPAアプリケーションにEKSを活用することを目指す組織のための徹底したリソースを提供します。
キーワード
Amazon EKS、Kubernetes、AWS、RDS、MongoDB Atlas、DevOps、クラウドコンピューティング、ビジネスプロセス自動化。
はじめに
BPA
今日のデジタル時代において、企業は多様なIT環境にわたって複雑なビジネスプロセスを合理化および自動化することを求めています。業務プロセスの自動化(BPA)は、業務効率の向上、エラーの削減、サービス提供の改善を可能にする重要なテクノロジーとして登場しました。BPAは、ワークフロー自動化、サービスプロビジョニング、および市販の自動化アプリケーションの向上を目的とした、いくつかの重要な技術革新と機能拡張を導入しています。
BPAプラットフォームは、OSのアップグレード、サービスプロビジョニング、オーケストレーションエンジンへの統合など、ビジネスおよびIT/運用のユースケースとアプリケーションをホストします。お客様は、サービスのライフサイクルとBPA機能(アドバイザリ、実装、ビジネスクリティカルなサービス、ソリューションサポートなど)にアクセスできます。これらのサービスや機能は、シスコのエキスパート、ベストプラクティス、実証済みの手法によって提供され、ビジネスプロセスの自動化やシステムのリスク軽減に役立ちます。
これらのライフサイクル機能は、サブスクリプションベースにすることも、個々のニーズに合わせてカスタマイズすることもできます。実装サービスは、自動化を促進するツールとプロセスの定義、統合、導入を支援します。シスコのエキスパートは、要件を収集するための正式なプロセスを実施し、俊敏なプロセスとContinuous Integration and Continuous Delivery(CICD)ツールに基づいてユーザストーリーを設計および開発し、新規または既存のワークフロー、デバイス、およびサービスの自動テストによって柔軟なサービスを実装します。ソリューションサポートを利用すると、お客様はソフトウェア中心の問題に重点を置いた24時間365日の一元的なサポートを受けることができます。また、シスコの階層型ソフトウェアモデルを通じて提供されるマルチベンダーおよびオープンソースのサポートも利用できます。シスコのソリューションサポートのエキスパートは、最初の問い合わせから最終的な解決までサポートを提供し、複数のベンダーと同時に作業する主要な窓口として機能します。ソリューションレベルのエキスパートとの連携により、最大44 %の問題削減が可能となり、ビジネスの継続性を維持し、BPAへの投資を短期間で回収できます。
BPAは、FMCおよびAnsible管理対象デバイスのサポート、Advanced Queuing Framework(AQF)を使用した並行実行、NDFCおよびFMCデバイスの拡張された設定コンプライアンスなどの主要な技術的機能により、大規模なエンタープライズ自動化の包括的なソリューションとして位置付けられます。このリリースでは、SD-WAN管理、デバイスオンボーディング、およびファイアウォールポリシーガバナンスの機能が追加され、ネットワークセキュリティと自動化の重要な側面に対応し、大規模なマルチベンダー環境の要求に対応します。
EKS(必須)
Amazon Elastic Kubernetes Service (EKS)は、アマゾンウェブサービス(AWS)が提供する完全マネージド型のKubernetesサービスです。2018年に開始されたEKSは、オープンソースコンテナオーケストレーションプラットフォームであるKubernetesを使用して、コンテナ化アプリケーションの導入、管理、拡張のプロセスを簡素化します。EKSはKubernetesの複雑なクラスタ管理を抽象化し、開発者は基盤となるインフラストラクチャを処理する必要なく、アプリケーションの構築と実行に集中できます。
アプリケーションのデプロイにAmazon EKSを使用する利点
Amazon EKSはアプリケーションのデプロイに複数のメリットを提供するため、コンテナ化されたアプリケーションやマイクロサービスを利用する組織にとって一般的な選択肢となっています。
主な利点は次のとおりです。
-
マネージドKubernetesコントロールプレーン:EKSは、Kubernetesコントロールプレーンの導入、スケーリング、およびメンテナンスを処理し、運用負担を軽減します。
-
簡素化されたクラスタ管理:EKSは、Kubernetesクラスタの設定と管理の複雑さを抽象化します。
-
拡張性:EKSを使用すると、クラスタを簡単に拡張して、増大するワークロードに対応できます。
-
ハイアベイラビリティ:EKSはマルチアベイラビリティゾーンの導入をサポートし、アベイラビリティと耐障害性を強化します。
-
AWSサービスとの統合: EKSは、さまざまなAWSサービスとシームレスに統合されます。
- DevOpsの自動化:EKSは、コンテナ化されたアプリケーションの継続的な統合と継続的な導入(CI/CD)をサポートします。
BPA導入アーキテクチャ
この図は、いくつかの主要コンポーネントを使用してAWS にデプロイされたクラウドベースのインフラストラクチャの高レベルアーキテクチャを表しています。図の内訳を次に示します。
- Amazon EKS(Elastic Kubernetes Service):図のコアでは、Amazon EKSは3つのアベイラビリティーゾーン(AZ1、AZ2、AZ3)にデプロイされ、各ゾーン内にKubernetesワーカーノードがあります。これは、ワークロードが複数の可用性ゾーンに分散しているため、可用性が高く、フォールトトレラントな設定であることを示しています。
-
ALB(Application Load Balancer):先頭に位置し、ユーザからトラフィックを受信し、アプリケーションワークロードを処理するためにEKSクラスタ全体にトラフィックを分散します。ロードバランサによって、要求が均等に分散され、トラフィックの需要に基づいた拡張を処理できるようになります。
-
Amazon RDS (Relational Database Service) - PostgreSQL:図の右側には、PostgreSQLを実行するAmazon RDSインスタンスが存在します。このデータベースには、EKSクラスタ内で実行されているアプリケーションからアクセスできます。
-
ECR(Elastic Container Registry):これはDockerコンテナイメージが格納および管理される場所で、ワークロードを実行するためにAmazon EKSにデプロイされます。
-
MongoDB Atlas:左側のMongoDB Atlasは、プライベートエンドポイントを通じてアーキテクチャに統合されています。MongoDB Atlasは、クラウドホスト型のNoSQLデータベースサービスで、ここではドキュメントベースのデータベース要件を処理するために使用されます。プライベートエンドポイントは、MongoDB Atlasインスタンスと他のAWSコンポーネント間の安全なプライベート通信を保証します。
-
Bastion Host:VPC(Virtual Private Cloud)内に配置されたBastion Hostは、管理者がインターネットに直接公開されることなくVPC内のリソースにアクセスするための安全なエントリポイントを提供します。
全体として、このアーキテクチャは、リレーショナル(PostgreSQL)データベースとNoSQL(MongoDB)データベースの両方をサポートし、Amazon EKSを使用してコンテナー化されたアプリケーションをデプロイおよび管理するための、可用性、拡張性、および安全性に優れたソリューションを提供します。
イメージレジストリとしてのECR
Amazon ECRリポジトリを作成し、Dockerイメージをそのリポジトリにプッシュするには、いくつかの手順を実行します。以下に、ECRリポジトリを作成し、Dockerイメージにタグを付け、AWS CLIを使用してリポジトリにプッシュする手順を示します。
aws ecr create-repository --repository-name your-image-name --region your-region
置換:
EKSノードのIAMロールの構成
EKSワーカーノード(EC2インスタンス)に、ECRからイメージをプルするためのアクセス許可が関連付けられた必要なIAMロールがあることを確認します。必要なIAMポリシーは次のとおりです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability"
],
"Resource": "*"
}
]
}
このポリシーをEKSワーカーノードに関連付けられたIAMロールに関連付けます。
BPAの導入
BPAの展開には、EKSワーカーノードへのラベル付け、ノード上でのディレクトリの準備、BPAパッケージのコピー、Helmを使用したBPAの展開など、いくつかの手順があります。
お客様への導入には、次のバージョンのソフトウェアとクラウドサービスを使用しました。
- BPA:4.0.3-6
- RDS (リレーショナルデータベースサービス): 16.3-R2
- MongoDBアトラス:v5.0.29
- EKS(Elastic Kubernetesサービス):v1.27
これらのコンポーネントにより、堅牢でスケーラブルな導入が可能になり、必要なワークロードを効率的に処理できるようになります。
- EKSワーカーノードのラベル付け
kubectl label node
name=node-1 kubectl label node
name=node-2 kubectl label node
name=node-3 kubectl label node
name=node-4
- ノード上のディレクトリの準備
ノード1:
rm -rf /opt/bpa/data/
mkdir -p /opt/bpa/data/zookeeper1
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/zookeeper1
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
mkdir -p /opt/bpa/data/kafka1
chmod 777 /opt/bpa/data/kafka1
sysctl -w vm.max_map_count=262144
ノード2:
rm -rf /opt/bpa/data
sysctl -w vm.max_map_count=262144
mkdir -p /opt/bpa/data/kafka2
mkdir -p /opt/bpa/data/zookeeper2
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/kafka2
chmod 777 /opt/bpa/data/zookeeper2
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
ノード3:
rm -rf /opt/bpa/data
sysctl -w vm.max_map_count=262144
mkdir -p /opt/bpa/data/kafka3
mkdir -p /opt/bpa/data/zookeeper3
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/kafka3
chmod 777 /opt/bpa/data/zookeeper3
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
ノード4:
mkdir -p /opt/bpa/data/elk
mkdir -p /opt/bpa/data/metrices/prometheus
mkdir -p /opt/bpa/data/metrices/grafana
chmod 777 /opt/bpa/data/metrices
chmod 777 /opt/bpa/data/metrices/prometheus
chmod 777 /opt/bpa/data/metrices/grafana
sysctl -w vm.max_map_count=262144
- BPAパッケージのコピー
scp -r packages to node1:/opt/bpa/
scp -r packages to node2:/opt/bpa/
scp -r packages to node3:/opt/bpa/
scp -r packages to node4:/opt/bpa/
- Helmを使用したBPAの展開
helm install bpa-rel --create-namespace --namespace bpa-ns /opt/EKS/bpa-helm-chart
入力セットアップ
- 入力の有効化
values.
yamltoを更新して入力を有効にします。
ingress_controller: {create: true}
- BPA証明書を使用したシークレットの作成
証明書ディレクトリに移動し、シークレットを作成します。
cd /opt/bpa/
/bpa/conf/common/certs/ kubectl create secret tls bpa-certificate-ingress --cert=bap-cert.pem --key=bap-key.pem -n bpa-ns
- 入力コントローラの更新
新しく作成したシークレットを 入力コントローラ.yaml
DSN エントリの例:
cd /opt/bpa/
/templates/ vi ingress-controller.yaml "- --default-ssl-certificate=$(POD_NAMESPACE)/bpa-certificate-ingress"
- 入力証明書の更新
Helmの削除とインストールを実行して、入力証明書を更新します。
環境仕様
環境仕様には、EC2インスタンス、ロードバランサ、VPCエンドポイント、およびRDSインスタンスの要件が含まれます。主な仕様は次のとおりです。
EC2要件:
ストレージ要件:ノードあたり2 TBの容量EBSボリュームを/optにマウントし、すべてのノードのエントリを/etc/fstabに追加します。
セキュリティグループインバウンド:30101、443、0 ~ 65535 TCP、22(ssh用)
アウトバウンドセキュリティグループ:すべてのトラフィックを有効にする必要があります。
DNSリゾルバ:EC2には、/etc/resolve.confにオンプレミスのリゾルバが必要です。
ロードバランサの要件:
- リスナーポートは443、30101である必要があります。
- VPCエンドポイント要件(Atlas MongoDB)
- Atlas接続用に作成されたVPCエンドポイントは、親アカウント(aws-5g-ndc-prod)で使用できます。VPCエンドポイントには、すべての着信アクセスを許可するセキュリティグループが必要です(0 ~ 65535)。
RDS要件:
RDSタイプ: db.r5b.2xlarge
Postgres Engineバージョン:13.7
セキュリティグループ:Inboudは、POD CIDRソースからのトラフィックを許可する必要があります。
主要な概念とコンポーネント
Amazon EKSを使用してアプリケーションを効果的にデプロイおよび管理するには、Kubernetesの基礎を理解することが不可欠です。
結論
このホワイトペーパーでは、Amazon EKSを使用してビジネスプロセス自動化(BPA)アプリケーションをデプロイおよび管理するための詳細なガイドを提供します。概説された手順に従い、主要な概念を理解することで、組織はコンテナ化BPAアプリケーションに対してEKSの利点を活用できます。
参考資料