Profile Applicability:

  • Level 1

Description:
Selecting the appropriate database engine (e.g., MySQL, PostgreSQL, Aurora, Oracle) ensures compatibility with your application’s requirements, and can significantly affect performance, availability, scalability, and cost-efficiency.

Rationale:
 AWS offers several database engine options. Choosing the wrong engine can lead to inefficiencies, high costs, or even security and compliance gaps. Aligning the engine choice with the application’s needs ensures optimal deployment.

Impact:
 Pros:

  • Aligns database performance with workload characteristics

  • Reduces long-term maintenance and cost

  • Enhances supportability and feature compatibility

Cons:

  • Choosing an engine without understanding workload needs may result in migration delays or rework

  • Vendor lock-in risks if a proprietary engine is selected

Default Value:
 There is no default database engine; selection is user-defined during provisioning.

Pre-requisites:

  • Application requirements analysis

  • Understanding of workload type (OLTP/OLAP, transactions, analytics, etc.)

  • Familiarity with AWS database engine features and limitations

Remediation:

Test Plan

Using AWS Console:

  1. Sign in to the AWS Management Console.

  2. Navigate to Amazon RDS > Databases.

  3. Select the target DB instance.

  4. In the Configuration tab, verify the value under Engine.

  5. Compare this engine with documented application requirements.

Using AWS CLI:

  1. Describe the DB instance and get its engine type:

    aws rds describe-db-instances --db-instance-identifier <your-db-instance-identifier> --query "DBInstances[*].Engine"

Implementation Plan

Using AWS Console:

  1. Sign in to the AWS Management Console.

  2. Navigate to Amazon RDS > Databases.

  3. Click Create Database.

  4. Under Engine options, select the engine (e.g., PostgreSQL, MySQL, Aurora) that aligns with your workload.

  5. Configure additional settings and launch the instance.

Using AWS CLI:

  1. Review available engine versions:

    aws rds describe-db-engine-versions
  2. Create a new DB instance with the appropriate engine:

     aws rds create-db-instance --db-instance-identifier <your-db-instance-identifier> --db-instance-class db.t3.medium --engine <engine-name> --master-username <username> --master-user-password <password> --allocated-storage 20

Backout Plan

Using AWS Console:

  1. Navigate to Amazon RDS > Databases.

  2. Select the DB instance that was created with the wrong engine.

  3. Choose Actions > Delete.

  4. Recreate the database with the correct engine.

Using AWS CLI:

  1. Delete the incorrectly configured DB instance:

     aws rds delete-db-instance --db-instance-identifier <your-db-instance-identifier> --skip-final-snapshot
  2. Recreate the DB instance with the appropriate engine:

     aws rds create-db-instance --db-instance-identifier <your-db-instance-identifier> --db-instance-class db.t3.medium --engine <correct-engine> --master-username <username> --master-user-password <password> --allocated-storage 20

References: