This section describes the standard upgrade procedure for upgrading Usage EngineĀ on Amazon Web Services. This procedure should be used to ensure that configurations, persisted data (in the file system or database), and system properties are properly migrated. Workflows will be interrupted shortly at the restart of the ECDs. These instructions will also describe how the timing of the restart of ECDs running non-scalable real-time workflows can be controlled by enabling manual upgrade.
Insert excerpt |
---|
| UEPE4D:Preparations for UpgradeUEPE4D: |
---|
| Preparations for Upgrade |
---|
nopanel | true |
---|
|
Preparing ECDs
Insert excerpt |
---|
| UEPE4D:Upgrade Excerpts for Cloud (4.23)UEPE4D: |
---|
| Upgrade Excerpts for Cloud (4.23) |
---|
name | PreparingECDsForUpgrade |
---|
nopanel | true |
---|
|
Insert excerpt |
---|
| UEPE4D:Preparations for UpgradeUEPE4D: |
---|
| Preparations for Upgrade |
---|
name | backup-db |
---|
nopanel | true |
---|
|
...
Code Block |
---|
export EFS_NAME=uepe-eks-efs-disk
export EFS_FILE_SYSTEM_ID=$(aws efs describe-file-systems --query "FileSystems[?Name==\`$EFS_NAME\`].FileSystemId" --output text)
export EFS_ARN=$(aws efs describe-file-systems --query "FileSystems[?Name==\`$EFS_NAME\`].FileSystemArn" --output text)
export VAULT_NAME=Default
export BACKUP_ROLE_ARN=$(aws iam get-role --role-name AWSBackupDefaultServiceRole --query "Role.Arn" --output text)
# Run on demand backup job
aws backup start-backup-job \
--backup-vault-name $VAULT_NAME \
--resource-arn $EFS_ARN \
--iam-role-arn $BACKUP_ROLE_ARN
# View backup job status
aws backup list-backup-jobs --by-resource-type EFS |
Insert excerpt |
---|
| UEPE4D:Upgrade Excerpts for Cloud (4.23)UEPE4D: |
---|
| Upgrade Excerpts for Cloud (4.23) |
---|
name | ActualUpgrade |
---|
nopanel | true |
---|
|
Insert excerpt |
---|
| UEPE4D:Upgrade Excerpts for Cloud (4.23)UEPE4D: |
---|
| Upgrade Excerpts for Cloud (4.23) |
---|
name | AfterUpgrade |
---|
nopanel | true |
---|
|
Insert excerpt |
---|
| UEPE4D:Upgrade Excerpts for Cloud (4.23)UEPE4D: |
---|
| Upgrade Excerpts for Cloud (4.23) |
---|
name | ECDsAfterUpgrade |
---|
nopanel | true |
---|
|
Insert excerpt |
---|
| UEPE4D:Preparations for UpgradeUEPE4D: |
---|
| Preparations for Upgrade |
---|
name | Rollback |
---|
nopanel | true |
---|
|
...
Code Block |
---|
export EFS_NAME=uepe-eks-efs-disk
export EFS_FILE_SYSTEM_ID=$(aws efs describe-file-systems --query "FileSystems[?Name==\`$EFS_NAME\`].FileSystemId" --output text)
export EFS_ARN=$(aws efs describe-file-systems --query "FileSystems[?Name==\`$EFS_NAME\`].FileSystemArn" --output text)
export VAULT_NAME=Default
export BACKUP_ROLE_ARN=$(aws iam get-role --role-name AWSBackupDefaultServiceRole --query "Role.Arn" --output text)
#################### Retrieve backup ARN id ####################
aws backup list-recovery-points-by-backup-vault --backup-vault-name $VAULT_NAME
# NOTE: Record the RecoveryPointArn that you wish to recover from
# e.g. arn:aws:backup:ap-southeast-1:027763730008:recovery-point:0a82d94c-3d56-481d-98e3-b810d3df363b
# To view the recovery point restore metadata
aws backup get-recovery-point-restore-metadata \
--backup-vault-name $VAULT_NAME \
--recovery-point-arn <RECOVERY_POINT_ARN>
#################### Restore from the backup ####################
# Prerequisites:
# 1) Generate an UUID, "uuidgen" (Mac) or "uuid -r" (Linux)
# 2) Create a metadata json file, properties details are mentioned in
# https://docs.aws.amazon.com/aws-backup/latest/devguide/restoring-efs.html#efs-restore-cli
# NOTE: If newFileSystem=true, file-system-id parameter will be ignored.
# 3) Substitute "CreationToken" value with the generated UUID.
# 4) If existing file system is encrypted, you may use the existing KMS key.
#
# Example metadata json:
cat <<-EOF > /path/to/metadata_json_file
{
"file-system-id": "$EFS_FILE_SYSTEM_ID",
"Encrypted": "true",
"KmsKeyId": "arn:aws:kms:ap-southeast-1:027763730008:key/4859a845-3ef2-464d-80d2-16c1b2c58ff4",
"PerformanceMode": "generalPurpose",
"CreationToken": "FEC83B16-F43A-4D5A-A678-2D27FC6C7DBD",
"newFileSystem": "false"
}
EOF
aws backup start-restore-job --recovery-point-arn <RECOVERY_POINT_ARN> --iam-role-arn "$BACKUP_ROLE_ARN" --metadata file:///path/to/metadata_json_file
watch aws backup list-restore-jobs --by-resource-type EFS
#################### Run a pod with command prompt ####################
kubectl run nfscli --rm --tty -i --restart='Never' --namespace uepe --image oraclelinux:8 --privileged=true --command -- bash
#################### Install NFS client ####################
[root@nfscli /]# yum -y install nfs-utils
#################### Make a folder for mounting purpose ####################
[root@nfscli /]# mkdir -p /mnt/efs
#################### Mount EFS volume root path ####################
# EFS DNS name in format <file-system-id>.efs.<aws-region>.amazonaws.com
[root@nfscli /]# mount -o nolock fs-0a3a60103ae00a5a1.efs.ap-southeast-1.amazonaws.com:/ /mnt/efs
#################### Locate the restored directory ####################
# Go to the mounted directory
[root@nfscli /]# cd /mnt/efs/
# List folders
# NOTE: Existing platform volume mount folder is 'uepe' folder
[root@nfscli efs]# ls -al
total 16
drwxr-xr-x 5 root root 6144 Aug 13 06:35 .
drwxr-xr-x 1 root root 18 Aug 14 10:37 ..
drwxr-xr-x 5 root root 6144 Aug 13 06:35 aws-backup-restore_2024-08-13T17-58-42-978741167Z
drwxr-xr-x 9 6000 6000 6144 Aug 13 18:47 uepe
# The restored data folder which is also called 'uepe', it is located under aws-backup-restore_<timestamp> folder.
[root@nfscli efs]# ls -al aws-backup-restore_2024-08-13T17-58-42-978741167Z/
total 20
drwxr-xr-x 5 root root 6144 Aug 13 06:35 .
drwxr-xr-x 5 root root 6144 Aug 13 06:35 ..
drw--w---- 2 root root 6144 Aug 13 17:58 aws-backup-lost+found_2024-08-13T17-58-13-086602146Z
drwxr-xr-x 2 6000 6000 6144 Aug 13 18:57 uepe
#################### Cleanup existing platform volume mount folder ####################
[root@nfscli efs]# rm -rf uepe/*
#################### Copy restored data to platform volume mount folder ####################
# NOTE: Specify '-p' flag in the cp commmand to preserve file permissions and timestamp.
[root@nfscli efs]# cp -rfp aws-backup-restore_2024-08-13T17-58-42-978741167Z/uepe/* uepe/
# Check if all datas are copied
[root@nfscli efs]# ls -al uepe/
total 48
drwxr-xr-x 9 6000 6000 6144 Aug 13 18:47 .
drwxr-xr-x 5 root root 6144 Aug 13 06:35 ..
drwxr-xr-x 2 6000 6000 6144 Aug 13 06:37 3pp
drwxr-xr-x 2 6000 6000 6144 Aug 13 06:37 backup
drwxr-xr-x 2 6000 6000 6144 Aug 13 06:37 jni
drwxr-xr-x 2 6000 6000 6144 Aug 13 06:37 keys
drwxr-xr-x 5 6000 6000 6144 Aug 13 17:13 log
drwxr-xr-x 3 6000 6000 6144 Aug 13 06:37 pico-cache
drwxr-xr-x 2 6000 6000 6144 Aug 13 06:37 storage
#################### Clean up the redundant restored data ####################
[root@nfscli efs]# rm -rf aws-backup-restore_2024-08-13T17-58-42-978741167Z/uepe/*
#################### Unmount volume and exit pod ####################
[root@nfscli efs]# umount /mnt/efs/
[root@nfscli efs]# exit
#################### Restore completed ####################
# Backup data has been restored, proceed to the next section to rollback UEPE. |
Insert excerpt |
---|
| UEPE4D:Preparations for UpgradeUEPE4D: |
---|
| Preparations for Upgrade |
---|
name | Rollback command |
---|
nopanel | true |
---|
|
...