

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS 上設定高度可用的 PeopleSoft 架構
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws"></a>

*Ramanathan Muralidhar，Amazon Web Services*

## 摘要
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-summary"></a>

當您將 PeopleSoft 工作負載遷移至 AWS 時，彈性是重要的目標。它可確保 PeopleSoft 應用程式始終高度可用，並能夠快速從故障中復原。

此模式為 AWS 上的 PeopleSoft 應用程式提供架構，以確保網路、應用程式和資料庫層的高可用性 (HA)。它針對資料庫層使用 [Amazon Relational Database Service (Amazon RDS)](https://aws.amazon.com/rds/) for Oracle 或 Amazon RDS for SQL Server 資料庫。此架構也包含 AWS 服務，例如 [Amazon Route 53](https://aws.amazon.com/route53/)、[Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) Linux 執行個體、[Amazon Elastic Block Storage (Amazon EBS)](https://aws.amazon.com/ebs/)、[Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) 和 [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer)，而且可擴展。

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) 為人力資源管理和其他業務營運提供一套工具和應用程式。

## 先決條件和限制
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶
+ 具有在 AWS 上設定的必要授權的 PeopleSoft 環境
+ 在您的 AWS 帳戶中設定具有下列資源的虛擬私有雲端 (VPC)：
  + 至少兩個可用區域
  + 每個可用區域中一個公有子網路和三個私有子網路
  + NAT 閘道和網際網路閘道
  + 每個子網路路由表以路由流量
  + 網路存取控制清單 （網路 ACLs) 和定義的安全群組，可協助根據組織標準確保 PeopleSoft 應用程式的安全性

**限制**
+ 此模式提供高可用性 (HA) 解決方案。它不支援災難復原 (DR) 案例。在 HA 實作的整個 AWS 區域極少停止運作的情況下，應用程式將無法使用。

**產品版本**
+ 執行 PeopleTools 8.52 及更新版本的 PeopleSoft PeopleSoft 應用程式

## Architecture
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-architecture"></a>

**目標架構**

PeopleSoft 生產應用程式的停機時間或中斷會影響應用程式的可用性，並對您的業務造成重大中斷。

我們建議您設計 PeopleSoft 生產應用程式，使其始終具有高可用性。您可以透過消除單一故障點、新增可靠的交叉或容錯移轉點，以及偵測故障來達成此目的。下圖說明 AWS 上 PeopleSoft 的 HA 架構。

![\[AWS 上 PeopleSoft 的高可用性架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/0db96376-dadb-4545-b130-ebbe64acd4e9/images/5d585a8e-320a-495d-a049-97171633e90f.png)


此架構部署使用 Amazon RDS for Oracle 做為 PeopleSoft 資料庫，以及在 Red Hat Enterprise Linux (RHEL) 上執行的 EC2 執行個體。您也可以使用 Amazon RDS for SQL Server 做為 Peoplesoft 資料庫。

此架構包含下列元件： 
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) 用作網域名稱伺服器 (DNS)，用於將請求從網際網路路由到 PeopleSoft 應用程式。
+ [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) 可協助您防範可能影響可用性、危及安全性或消耗過多資源的常見 Web 入侵和機器人。[AWS Shield Advanced](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) （未說明） 提供更廣泛的保護。
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 使用以 Web 伺服器為目標的進階請求路由來平衡 HTTP 和 HTTPS 流量。
+ 支援 PeopleSoft 應用程式在多個可用區域中執行並使用 [Amazon EC2 Auto Scaling ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)的 Web 伺服器、應用程式伺服器、程序排程器伺服器和 Elasticsearch 伺服器。
+ PeopleSoft 應用程式使用的資料庫會在多可用區組態的 [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) 上執行。
+ PeopleSoft 應用程式使用的檔案共用是在 [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) 上設定，用於跨執行個體存取檔案。
+ [Amazon EC2 Auto Scaling 會使用 Amazon Machine Image (AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html))，以確保在需要時快速複製 PeopleSoft 元件。 Amazon EC2 Auto Scaling 
+ [NAT 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)會將私有子網路中的執行個體連線至 VPC 外部的服務，並確保外部服務無法啟動與這些執行個體的連線。
+ [網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)是一種水平擴展、備援且高可用性的 VPC 元件，可讓您的 VPC 與網際網路之間進行通訊。
+ 公有子網路中的堡壘主機可讓您從外部網路存取私有子網路中的伺服器，例如網際網路或內部部署網路。堡壘主機提供私有子網路中伺服器的受控制且安全存取。

**架構詳細資訊**

PeopleSoft 資料庫存放在多可用區組態中的 Amazon RDS for Oracle （或 Amazon RDS for SQL Server) 資料庫中。[Amazon RDS 多可用區域功能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html)會跨兩個可用區域複寫資料庫更新，以提高耐用性和可用性。Amazon RDS 會自動容錯移轉至待命資料庫，以進行計劃維護和計劃外中斷。

PeopleSoft Web 和中間層安裝在 EC2 執行個體上。這些執行個體分散在多個可用區域，並由 [Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)繫結。這可確保這些元件始終具有高可用性。維護最低數量的必要執行個體，以確保應用程式隨時可用，並可在需要時進行擴展。

建議您針對 OEM EC2 執行個體使用最新一代的 EC2 執行個體類型。目前世代的執行個體類型，例如[建置在 AWS Nitro 系統的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)，支援硬體虛擬機器 HVMs)。HVM AMIs 需要利用[增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html)，而且也提供更高的安全性。屬於每個 Auto Scaling 群組的 EC2 執行個體會在取代或擴展執行個體時使用自己的 AMI。我們建議您根據希望 PeopleSoft 應用程式處理的負載，以及 Oracle 針對 PeopleSoft 應用程式和 PeopleTools 版本建議的最小值，選取 EC2 執行個體類型。如需硬體和軟體需求的詳細資訊，請參閱 [Oracle 支援網站](https://support.oracle.com)。

PeopleSoft Web 和中層共用 Amazon EFS 掛載，以共用報告、資料檔案和 （如有需要） `PS_HOME`目錄。基於效能和成本考量，Amazon EFS 會在每個可用區域中設定掛載目標。

Application Load Balancer 會佈建為支援存取 PeopleSoft 應用程式和負載平衡不同可用區域中 Web 伺服器之間流量的流量。Application Load Balancer 是一種網路裝置，可在至少兩個可用區域中提供 HA。Web 伺服器會使用負載平衡組態，將流量分配到不同的應用程式伺服器。Web 伺服器和應用程式伺服器之間的負載平衡可確保負載平均分散到執行個體，並協助避免因執行個體過載而造成瓶頸和服務中斷。

Amazon Route 53 用作 DNS 服務，將流量從網際網路路由到 Application Load Balancer。Route 53 是一種可用性高、可擴展性強的 DNS Web 服務。

**HA 詳細資訊**
+ 資料庫：Amazon RDS 的異地同步複寫功能會在多個可用區域中操作兩個資料庫。這會建立具有自動容錯移轉的高可用性環境。Amazon RDS 具有容錯移轉事件偵測，並在發生這些事件時啟動自動容錯移轉。您也可以透過 Amazon RDS API 啟動手動容錯移轉。如需詳細說明，請參閱部落格文章 [Amazon RDS under the Hood： Multi-AZ](https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/)。容錯移轉是無縫的，應用程式會在發生時自動重新連線至資料庫。不過，容錯移轉期間的任何程序排程器任務都會產生錯誤，且必須重新提交。
+ PeopleSoft 應用程式伺服器：應用程式伺服器分散在多個可用區域，並為其定義 Auto Scaling 群組。如果執行個體失敗，Auto Scaling 群組會立即將其取代為從應用程式伺服器範本的 AMI 複製的運作狀態良好的執行個體。具體而言，*啟用震動集區*，因此當應用程式伺服器執行個體關閉時，工作階段會自動容錯移轉至另一個應用程式伺服器，Auto Scaling 群組會自動啟動另一個執行個體、啟動應用程式伺服器，並在 Amazon EFS 掛載中註冊。新建立的應用程式伺服器會使用 Web 伺服器中的`PSSTRSETUP.SH`指令碼，自動新增至 Web 伺服器。這可確保應用程式伺服器始終高度可用，並快速從故障中復原。
+ 程序排程器：程序排程器伺服器分散在多個可用區域，並為其定義 Auto Scaling 群組。如果執行個體失敗，Auto Scaling 群組會立即將其取代為從程序排程器伺服器範本的 AMI 複製的運作狀態良好的執行個體。具體而言，當程序排程器執行個體關閉時，Auto Scaling 群組會自動啟動另一個執行個體並啟動程序排程器。執行個體失敗時正在執行的任何任務都必須重新提交。這可確保程序排程器始終高度可用，並快速從故障中復原。
+ Elasticsearch 伺服器：Elasticsearch 伺服器具有為其定義的 Auto Scaling 群組。如果執行個體失敗，Auto Scaling 群組會立即將其取代為從 Elasticsearch 伺服器範本的 AMI 複製的運作狀態良好的執行個體。具體而言，當 Elasticsearch 執行個體故障時，向 提供請求的 Application Load Balancer 會偵測故障並停止傳送流量給該執行個體。Auto Scaling 群組會自動啟動另一個執行個體，並啟動 Elasticsearch 執行個體。當 Elasticsearch 執行個體備份時，Application Load Balancer 會偵測到運作狀態良好，並再次開始向其傳送請求。這可確保 Elasticsearch 伺服器始終高度可用，並快速從故障中復原。
+ Web 伺服器：Web 伺服器具有為其定義的 Auto Scaling 群組。如果執行個體失敗，Auto Scaling 群組會立即將其取代為從 Web 伺服器範本的 AMI 複製的運作狀態良好的執行個體。具體而言，當 Web 伺服器執行個體故障時，提供請求給它的 Application Load Balancer 會偵測故障並停止傳送流量給它。Auto Scaling 群組會自動啟動另一個執行個體，並啟動 Web 伺服器執行個體。當 Web 伺服器執行個體備份時，Application Load Balancer 會偵測到運作狀態良好，並再次開始傳送請求。這可確保 Web 伺服器始終高度可用，並快速從故障中復原。

## 工具
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-tools"></a>

**AWS 服務**
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/) 會將傳入的應用程式流量分散到多個可用區域中的多個目標，例如 EC2 執行個體。
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) 提供區塊層級儲存磁碟區，可與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體搭配使用。
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 在 AWS 雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器，，並快速進行擴展或縮減。
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) 可協助您在 AWS 雲端中建立和設定共用檔案系統。
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) 可協助您在 AWS 雲端中設定、操作和擴展關聯式資料庫。
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) 是一種可用性高、可擴展性強的 DNS Web 服務。

## 最佳實務
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-best-practices"></a>

**操作最佳實務**
+ 當您在 AWS 上執行 PeopleSoft 時，請使用 Route 53 從網際網路和本機路由流量。如果主要資料庫執行個體無法使用，請使用[容錯移轉選項](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring.html)將流量重新路由至災難復原 (DR) 網站。
+ 一律在 PeopleSoft 環境前使用 Application Load Balancer。這可確保流量以安全的方式負載平衡至 Web 伺服器。
+ 在 Application Load Balancer 目標群組設定中，請確定已使用負載平衡器產生的 Cookie [開啟黏性](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html)。
**注意**  
如果您使用外部單一登入 (SSO)，您可能需要使用應用程式型 Cookie。這可確保跨 Web 伺服器和應用程式伺服器的連線一致。
+ 對於 PeopleSoft 生產應用程式，Application Load Balancer 閒置逾時必須符合您使用的 Web 設定檔中設定的內容。這可防止使用者工作階段在負載平衡器層過期。
+ 對於 PeopleSoft 生產應用程式，將應用程式伺服器[資源回收計數](https://docs.oracle.com/cd/F28299_01/pt857pbr3/eng/pt/tsvt/concept_PSAPPSRVOptions-c07f06.html?pli=ul_d96e90_tsvt)設定為可將記憶體流失降至最低的值。
+ 如果您針對 PeopleSoft 生產應用程式使用 Amazon RDS 資料庫，如此模式所述，請以[多可用區域格式執行資料庫，以獲得高可用性](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html)。
+ 如果您的資料庫在 PeopleSoft 生產應用程式的 EC2 執行個體上執行，請確保[待命資料庫在另一個可用區域上執行](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html#ec2-oracle-ha)，以實現高可用性。
+ 對於 DR，請確定您的 Amazon RDS 資料庫或 EC2 執行個體已在生產資料庫不同的 AWS 區域中設定待命。這可確保在 區域中發生災難時，您可以將應用程式切換到另一個區域。
+ 對於 DR，使用 [Amazon Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) 在與生產元件不同的區域中設定應用程式層級元件。這可確保在 區域中發生災難時，您可以將應用程式切換到另一個區域。
+ 使用 Amazon EFS （適用於中等 I/O 需求） 或 [Amazon FSx](https://aws.amazon.com/fsx/) （適用於高 I/O 需求） 來存放 PeopleSoft 報告、附件和資料檔案。這可確保內容存放在一個中央位置，並且可以從基礎設施中的任何位置存取。
+ 使用 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) （基本和詳細） 近乎即時地監控 PeopleSoft 應用程式正在使用的 AWS 雲端資源。這可確保您立即收到問題提醒，並在問題影響環境可用性之前快速解決這些問題。
+ 如果您使用 Amazon RDS 資料庫做為 PeopleSoft 資料庫，請使用[增強型監控](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html)。此功能可讓您存取超過 50 個指標，包括 CPU、記憶體、檔案系統 I/O 和磁碟 I/O。
+ 使用 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 來監控 PeopleSoft 應用程式正在使用的 AWS 資源上的 API 呼叫。這可協助您執行安全分析、資源變更追蹤和合規稽核。

**安全最佳實務**
+ 若要保護您的 PeopleSoft 應用程式免於 SQL Injection 或跨網站指令碼 (XSS) 等常見漏洞，請使用 [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)。請考慮使用 [AWS Shield Advanced](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) 進行量身打造的偵測和緩解服務。
+ 將規則新增至 Application Load Balancer，以自動將流量從 HTTP 重新導向至 HTTPS，以協助保護 PeopleSoft 應用程式。
+ 為 Application Load Balancer 設定個別的安全群組。此安全群組應僅允許 HTTPS/HTTP 傳入流量，且不允許傳出流量。這可確保只允許預期的流量，並有助於保護您的應用程式。
+ 將私有子網路用於應用程式伺服器、Web 伺服器和資料庫，並將 [NAT 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)用於傳出網際網路流量。這可確保支援應用程式的伺服器無法公開連線，同時僅向需要它的伺服器提供公開存取。
+ 使用不同的 VPCs來執行 PeopleSoft 生產和非生產環境。使用 [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)、[VPC 對等](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)互連、[網路 ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) 和[安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)來控制 [VPC](https://aws.amazon.com/vpc/) 和內部部署資料中心之間的流量。
+ 遵循最低權限原則。僅將 PeopleSoft 應用程式使用的 AWS 資源存取權授予絕對需要它的使用者。僅授予執行任務所需的最低權限。如需詳細資訊，請參閱 AWS Well-Architected Framework [的安全支柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html)。
+ 盡可能使用 [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 來存取 PeopleSoft 應用程式使用的 EC2 執行個體。

**可靠性最佳實務**
+ 當您使用 Application Load Balancer 時，請為每個啟用的可用區域註冊單一目標。這可讓負載平衡器更有效率。
+ 我們建議您為每個 PeopleSoft 生產環境提供三個不同的 URLs：一個用於存取應用程式的 URL、一個用於服務整合代理程式，另一個用於檢視報告。如果可能，每個 URL 都應有自己的專用 Web 伺服器和應用程式伺服器。此設計有助於讓您的 PeopleSoft 應用程式更安全，因為每個 URL 都有不同的功能和受控制的存取。如果基礎服務失敗，也會將影響範圍降至最低。
+ 建議您為 PeopleSoft 應用程式設定[負載平衡器目標群組的運作狀態檢查](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)。運作狀態檢查應該在 Web 伺服器上執行，而不是執行這些伺服器的 EC2 執行個體。這可確保如果 Web 伺服器當機或託管 Web 伺服器的 EC2 執行個體當機，Application Load Balancer 會準確反映該資訊。
+ 對於 PeopleSoft 生產應用程式，我們建議您將 Web 伺服器分散到至少三個可用區域。這可確保即使其中一個可用區域故障，PeopleSoft 應用程式始終處於高可用性狀態。
+ 對於 PeopleSoft 生產應用程式，啟用 jolt 集區 (`joltPooling=true`)。這可確保如果伺服器因修補或 VM 故障而停機，您的應用程式會容錯移轉至另一個應用程式伺服器。
+ 對於 PeopleSoft 生產應用程式，將 `DynamicConfigReload `設定為 1。PeopleTools 8.52 版及更新版本支援此設定。它會動態地將新的應用程式伺服器新增至 Web 伺服器，而不會重新啟動伺服器。
+ 若要在套用 PeopleTools 修補程式時將停機時間降至最低，請針對 Web 和應用程式伺服器的 Auto Scaling 群組啟動組態使用藍/綠部署方法。如需詳細資訊，請參閱 [AWS 上的部署選項概觀](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/bluegreen-deployments.html)白皮書。
+ 使用 [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) 在 AWS 上備份 PeopleSoft 應用程式。AWS Backup 是符合成本效益、全受管、以政策為基礎的服務，能夠大規模簡化資料保護程序。

**效能最佳實務**
+ 終止 Application Load Balancer 的 SSL 以獲得最佳的 PeopleSoft 環境效能，除非您的業務需要整個環境的加密流量。
+ 為 [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 和 [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 等 AWS 服務建立[介面 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)，讓流量一律位於內部。這符合成本效益，有助於保護您的應用程式安全。

**成本最佳化最佳實務**
+ 標記 PeopleSoft 環境使用的所有資源，並啟用[成本分配標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。這些標籤可協助您檢視和管理資源成本。
+ 對於 PeopleSoft 生產應用程式，請為 Web 伺服器和應用程式伺服器設定 Auto Scaling 群組。這可維持最少數量的 Web 和應用程式伺服器，以支援您的應用程式。您可以使用 [Auto Scaling 群組政策](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html)，視需要向上和向下擴展伺服器。
+ 使用[帳單警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html)，在成本超過您指定的預算閾值時收到提醒。

**永續性最佳實務**
+ 使用[基礎設施做為程式碼](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html) (IaC) 來維護 PeopleSoft 環境。這可協助您建立一致的環境並維持變更控制。

## 史詩
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-epics"></a>

### 將您的 PeopleSoft 資料庫遷移至 Amazon RDS
<a name="migrate-your-peoplesoft-database-to-amazon-rds"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立資料庫子網路群組。 | 在 [Amazon RDS 主控台](https://console.aws.amazon.com/rds/)的導覽窗格中，選擇**子網路群組**，然後在多個可用區域中建立子網路為 的 Amazon RDS 資料庫子網路群組。這是 Amazon RDS 資料庫在多可用區組態中執行的必要項目。 | 雲端管理員 | 
| 建立 Amazon RDS 資料庫。 | 在您為 PeopleSoft HA 環境選取的 AWS 區域的可用區域中建立 Amazon RDS 資料庫。當您建立 Amazon RDS 資料庫時，請務必選取異地同步備份選項 (**建立待命執行個體**) 和您在上一個步驟中建立的資料庫子網路群組。如需詳細資訊，請參閱 [Amazon RDS 文件](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html)。 | 雲端管理員、Oracle 資料庫管理員 | 
| 將您的 PeopleSoft 資料庫遷移至 Amazon RDS。 | 使用 AWS Database Migration Service (AWS DMS) 將現有的 PeopleSoft 資料庫遷移至 Amazon RDS 資料庫。如需詳細資訊，請參閱 [AWS DMS 文件](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)和 AWS 部落格文章[使用 AWS DMS 在接近零停機時間的情況下遷移 Oracle 資料庫](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/)。 | 雲端管理員，PeopleSoft DBA | 

### 設定您的 Amazon EFS 檔案系統
<a name="set-up-your-amazon-efs-file-system"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立檔案系統。 | 在 [Amazon EFS 主控台](https://console.aws.amazon.com/efs/)上，為每個可用區域建立檔案系統和掛載目標。如需說明，請參閱 [Amazon EFS 文件](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#creating-using-fs-part1-console)。建立檔案系統後，請記下其 DNS 名稱。當您掛載檔案系統時，將使用此資訊。 | 雲端管理員 | 

### 設定您的 PeopleSoft 應用程式和檔案系統
<a name="set-up-your-peoplesoft-application-and-file-system"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 啟動 EC2 執行個體。 | 為您的 PeopleSoft 應用程式啟動 EC2 執行個體。如需說明，請參閱 [Amazon EC2 文件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html#liw-quickly-launch-instance)。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員、PeopleSoft 管理員 | 
| 在執行個體上安裝 PeopleSoft。 | 在您建立的 EC2 執行個體上安裝 PeopleSoft 應用程式和 PeopleTools。如需說明，請參閱 [Oracle 文件](https://docs.oracle.com)。 | 雲端管理員、PeopleSoft 管理員 | 
| 建立應用程式伺服器。 | 為 AMI 範本建立應用程式伺服器，並確保其成功連線至 Amazon RDS 資料庫。 | 雲端管理員、PeopleSoft 管理員 | 
| 掛載 Amazon EFS 檔案系統。 | 以根使用者身分登入 EC2 執行個體，並執行下列命令，將 Amazon EFS 檔案系統掛載到伺服器上名為 `PSFTMNT`的資料夾。<pre>sudo su –<br />mkdir /psftmnt<br />cat /etc/fstab</pre>將以下行附加至 `/etc/fstab` 檔案。使用您在建立檔案系統時記下的 DNS 名稱。<pre>fs-09e064308f1145388.efs.us-east-1.amazonaws.com:/ /psftmnt nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0<br />mount -a</pre> | 雲端管理員、PeopleSoft 管理員 | 
| 檢查許可。 | 請確定`PSFTMNT`資料夾具有適當的許可，以便 PeopleSoft 使用者可以正確存取。 | 雲端管理員、PeopleSoft 管理員 | 
| 建立其他執行個體。 | 重複上述步驟，為程序排程器、Web 伺服器和 Elasticsearch 伺服器建立範本執行個體。為這些執行個體命名 `PRCS_TEMPLATE`、 `WEB_TEMPLATE`和 `SRCH_TEMPLATE`。針對 Web 伺服器，設定`joltPooling=true`** **和 `DynamicConfigReload=1`。 | 雲端管理員、PeopleSoft 管理員 | 

### 建立指令碼以設定伺服器
<a name="create-scripts-to-set-up-servers"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立指令碼以安裝應用程式伺服器。 | 在 Amazon EC2 `APP_TEMPLATE`執行個體中，以 PeopleSoft 使用者身分建立下列指令碼。將其命名`appstart.sh`並放在 `PS_HOME`目錄中。您將使用此指令碼來啟動應用程式伺服器，並在 Amazon EFS 掛載上記錄伺服器名稱。<pre>#!/bin/ksh<br />. /usr/homes/hcmdemo/.profile.<br />psadmin -c configure -d HCMDEMO<br />psadmin -c parallelboot -d HCMDEMO<br />touch /psftmnt/`echo $HOSTNAME`</pre> | PeopleSoft 管理員 | 
| 建立指令碼以安裝程序排程器伺服器。 | 在 Amazon EC2 `PRCS_TEMPLATE`執行個體中，以 PeopleSoft 使用者身分建立下列指令碼。將其命名`prcsstart.sh`並放在 `PS_HOME`目錄中。您將使用此指令碼來叫用程序排程器伺服器。<pre>#!/bin/ksh<br />. /usr/homes/hcmdemo/. profile<br />/* The following line ensures that the process scheduler always has a unique name during replacement or scaling activity. */ <br />sed -i "s/.*PrcsServerName.*/`hostname -I | awk -F. '{print "PrcsServerName=PSUNX"$3$4}'`/" $HOME/appserv/prcs/*/psprcs.cfg<br />psadmin -p configure -d HCMDEMO<br />psadmin -p start -d HCMDEMO</pre> | PeopleSoft 管理員 | 
| 建立指令碼以安裝 Elasticsearch 伺服器。 | 在 Amazon EC2 `SRCH_TEMPLATE`執行個體中，以 Elasticsearch 使用者身分建立下列指令碼。將其命名`srchstart.sh`並放在 `HOME`目錄中。<pre>#!/bin/ksh<br />/* The following line ensures that the correct IP is indicated in the elasticsearch.yaml file. */<br />sed -i "s/.*network.host.*/`hostname  -I | awk '{print "host:"$0}'`/" $ES_HOME_DIR/config/elasticsearch.yaml<br />nohup $ES_HOME_DIR/bin/elasticsearch &</pre> | PeopleSoft 管理員 | 
| 建立指令碼以安裝 Web 伺服器。 | 在 Amazon EC2 `WEB_TEMPLATE`執行個體中，以 Web 伺服器使用者身分，在 `HOME`目錄中建立下列指令碼。`renip.sh`：此指令碼可確保 Web 伺服器在從 AMI 複製時擁有正確的 IP。<pre>#!/bin/ksh<br />hn=`hostname`<br />/* On the following line, change the IP with the hostname with the hostname of the web template. */<br />for text_file in `find  *  -type f -exec grep -l '<hostname-of-the-web-template>' {} \;`<br />do<br />sed -e 's/<hostname-of-the-web-template>/'$hn'/g' $text_file > temp<br />mv -f temp $text_file<br />done</pre>`psstrsetup.sh`：此指令碼可確保 Web 伺服器使用目前正在執行的正確應用程式伺服器 IPs。它會嘗試連線到 jolt 連接埠上的每個應用程式伺服器，並將其新增至組態檔案。<pre>#!/bin/ksh<br />c2=""<br />for ctr in `ls -1 /psftmnt/*.internal`<br />do<br />c1=`echo $ctr | awk -F "/" '{print $3}'`<br />/* In the following lines, 9000 is the jolt port. Change it if necessary. */<br />if nc -z $c1 9000 2> /dev/null; then<br />if [[ $c2 = "" ]]; then<br />c2="psserver="`echo $c1`":9000"<br />else<br />c2=`echo $c2`","`echo $c1`":9000"<br />fi<br />fi<br />done</pre>`webstart.sh`：此指令碼會執行先前的兩個指令碼，並啟動 Web 伺服器。<pre>#!/bin/ksh<br />/* Change the path in the following if necessary. */<br />cd  /usr/homes/hcmdemo <br />./renip.sh<br />./psstrsetup.sh<br />webserv/peoplesoft/bin/startPIA.sh</pre> | PeopleSoft 管理員 | 
| 新增 crontab 項目。 | 在 Amazon EC2 `WEB_TEMPLATE`執行個體中，作為 Web 伺服器使用者，將以下行新增至 **crontab**。變更時間和路徑，以反映您需要的值。此項目可確保 Web 伺服器在 `configuration.properties` 檔案中一律具有正確的應用程式伺服器項目。<pre>* * * * * /usr/homes/hcmdemo/psstrsetup.sh</pre> | PeopleSoft 管理員 | 

### 建立 AMIs和 Auto Scaling 群組範本
<a name="create-amis-and-auto-scaling-group-templates"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 為應用程式伺服器範本建立 AMI。 | 在 Amazon EC2 主控台上，建立 Amazon EC2 `APP_TEMPLATE`執行個體的 AMI 映像。將 AMI 命名為 `PSAPPSRV-SCG-VER1`。如需說明，請參閱 [Amazon EC2 文件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)。 | 雲端管理員、PeopleSoft 管理員 | 
| 為其他伺服器建立 AMIs。 | 重複上一個步驟，為程序排程器、Elasticsearch 伺服器和 Web 伺服器建立 AMIs。 | 雲端管理員、PeopleSoft 管理員 | 
| 為應用程式伺服器 Auto Scaling 群組建立啟動範本。 | 為應用程式伺服器 Auto Scaling 群組建立啟動範本。為範本命名 `PSAPPSRV_TEMPLATE.` 在範本中，選擇您為`APP_TEMPLATE`執行個體建立的 AMI。如需說明，請參閱 [Amazon EC2 文件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-from-instance)。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員、PeopleSoft 管理員 | 
| 為程序排程器伺服器 Auto Scaling 群組建立啟動範本。 | 重複上一個步驟，為程序排程器伺服器 Auto Scaling 群組建立啟動範本。為範本命名 `PSPRCS_TEMPLATE`。在範本中，選擇您為程序排程器建立的 AMI。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員、PeopleSoft 管理員 | 
| 為 Elasticsearch 伺服器 Auto Scaling 群組建立啟動範本。 | 重複上述步驟，為 Elasticsearch 伺服器 Auto Scaling 群組建立啟動範本。為範本命名 `SRCH_TEMPLATE`。在範本中，選擇您為搜尋伺服器建立的 AMI。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員、PeopleSoft 管理員 | 
| 為 Web 伺服器 Auto Scaling 群組建立啟動範本。 | 重複上述步驟，為 Web 伺服器 Auto Scaling 群組建立啟動範本。為範本命名 `WEB_TEMPLATE`。在範本中，選擇您為 Web 伺服器建立的 AMI。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員、PeopleSoft 管理員 | 

### 建立 Auto Scaling 群組
<a name="create-auto-scaling-groups"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 為應用程式伺服器建立 Auto Scaling 群組。 | 在 Amazon EC2 主控台上，使用 `PSAPPSRV_TEMPLATE` 範本建立`PSAPPSRV_ASG`名為 應用程式伺服器的 Auto Scaling 群組。如需說明，請參閱 [Amazon EC2 文件](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template.html)。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員、PeopleSoft 管理員 | 
| 為其他伺服器建立 Auto Scaling 群組。 | 重複上述步驟，為程序排程器、Elasticsearch 伺服器和 Web 伺服器建立 Auto Scaling 群組。 | 雲端管理員、PeopleSoft 管理員 | 

### 建立和設定目標群組
<a name="create-and-configure-target-groups"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 為 Web 伺服器建立目標群組。 | 在 Amazon EC2 主控台上，為 Web 伺服器建立目標群組。如需說明，請參閱 [Elastic Load Balancing 文件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html)。將連接埠設定為 Web 伺服器接聽的連接埠。 | 雲端管理員 | 
| 設定運作狀態檢查。 | 確認運作狀態檢查具有正確的值，以反映您的業務需求。如需詳細資訊，請參閱 [Elastic Load Balancing 說明文件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)。 | 雲端管理員 | 
| 為 Elasticsearch 伺服器建立目標群組。 | 重複上述步驟，為 Elasticsearch 伺服器建立名為 `PSFTSRCH` 的目標群組，並設定正確的 Elasticsearch 連接埠。 | 雲端管理員 | 
| 將目標群組新增至 Auto Scaling 群組。 | 開啟您先前建立`PSPIA_ASG`的 Web 伺服器 Auto Scaling 群組。在**負載平衡**索引標籤上，選擇**編輯**，然後將`PSFTWEB`目標群組新增至 Auto Scaling 群組。針對 Elasticsearch Auto Scaling 群組重複此步驟`PSSRCH_ASG`，以新增`PSFTSRCH`您先前建立的目標群組。 | 雲端管理員 | 
| 設定工作階段黏性。 | 在目標群組 中`PSFTWEB`，選擇**屬性**索引標籤，選擇**編輯**，然後設定工作階段黏性。針對黏性類型，選擇**負載平衡器產生的 Cookie**，並將持續時間設定為 1。如需詳細資訊，請參閱 [Elastic Load Balancing 說明文件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html)。針對目標群組 重複此步驟`PSFTSRCH`。 | 雲端管理員 | 

### 建立和設定應用程式負載平衡器
<a name="create-and-configure-application-load-balancers"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 為 Web 伺服器建立負載平衡器。 | 建立名為 的 Application Load Balancer，`PSFTLB`以將流量負載平衡至 Web 伺服器。如需說明，請參閱 [Elastic Load Balancing 文件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html#configure-load-balancer)。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員 | 
| 為 Elasticsearch 伺服器建立負載平衡器。 | 建立名為 的 Application Load Balancer`PSFTSCH`，以負載平衡傳送至 Elasticsearch 伺服器的流量。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | 雲端管理員 | 
| 設定 Route 53。 | 在 [Amazon Route 53 主控台](https://console.aws.amazon.com/route53/)上，在託管區域中建立記錄，以服務 PeopleSoft 應用程式。如需說明，請參閱 [Amazon Route 53 文件](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html)。這可確保所有流量通過`PSFTLB`負載平衡器。 | 雲端管理員 | 

## 相關資源
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-resources"></a>
+ [Oracle PeopleSoft 網站](https://www.oracle.com/applications/peoplesoft/)
+ [AWS 文件](https://docs.aws.amazon.com/)