To migrate Bold BI from the AWS ECS instance to the AWS EKS instance, we need to move the ECS Bold BI application
app_data folder into EFS storage. Follow the below steps to move ECS
app_data folders into EFS storage.
Connect the ECS instance through SSH and install docker in the ECS instance(CentOS/RedHat Environment). You can use the below commands for installing docker in the ECS instance:
sudo yum update -y
sudo amazon-linux-extras install docker
Now, you need to copy the
app_data(#application/app_data) folder from the Bold BI container and paste it to any location(outside of the container) in the EC2 Linux instance. Use the following command to bash a container and copy the app_data from the container to the instance.
Note: Don’t stop ECS container while copying
Docker bash and copy app_data command:
docker exec -it <Bold BI container id/container name> bash
docker cp <Bold BI container id/container name>:/application/app_data <Save location in EC2 instance>
Create a new S3 bucket or use the existing s3 bucket for copying
app_data from ECS. Follow this URL to create a new s3 bucket.
Now, run the command below in EC2 instance CLI to copy
app_data to the s3 bucket.
aws s3 cp --recursive <Source folder location> s3://<S3 bucket name>
Example for copying
app_data to s3 bucket,
aws s3 cp --recursive /var/BoldBi/app_data s3://migrate-testing
We need the EKS cluster and EFS (Elastic File System) for deploying Bold BI in the EKS cluster. Follow this document to create EKS cluster.
Then create an EFS (Elastic File System) and migrate all data from the s3 bucket to the EFS (Elastic File System). Follow this document to create the EFS.
Note: Please use same security group for EKS cluster and EFS file system
After creating the EFS, use
DataSync to migrate all data into the EFS. We need to create a task in data sync and set the source file as an s3 bucket and the destination file as DataSync. Follow this document create task in
Now, we need to deploy Bold BI in the EKS cluster. Follow this document to deploy Bold BI in EKS.
Note:Please make sure we are using same file share name(where we backup the app_data from ECS) to deploy Bold BI in EKS.
After deploying Bold BI in EKS, it will directly redirect to the
login page. After entering into the dashboard page, the page is running in the ECS instance DNS or IP address.
Now, we need to map the EKS instance DNS or IP address in ums administration. Follow the steps below to map the EKS DNS for the application URL.
[DNS or IP address]/ums/administration.
From the image above, you need to enter the DNS or IP address that is used for EKS. Use the command below to get the DNS for the EKS.
kubectl get ingress -n <namespace>
Save the changes, and now the application is mapped to the EKS DNS.
Also, replace the DNS in the
product.json files. You need to bash into the data service pod to replace the EKS DNS in the config.json and product.json files.
Note: From version 6.19.14, use the config.json and the config.xml for versions prior to this.
Follow the command below to bash a pod to replace an EKS ingress DNS:
kubectl exec -it <dataservice pod name> -n <namespace> -- bash
Follow the below command to edit the
config.json file inside the pod, replace the EKS ingress DNS, and save the changes.
apt install nano
Then follow the command below to edit the
product.json file inside the pod and replace the EKS ingress DNS, and save the changes.
apt install nano
Now restart the pod using the command below:
kubectl rollout restart deploy -n <namespace>
Now, the ECS instance Bold BI application is migrated to the EKS cluster.
Note: We assume your ECS instance startup and IMDB database are available online.