Default Route Table vs. Custom Route Table
Default Route Table: When you create a VPC, AWS automatically creates a default route table for that VPC. The main or default route table can have both implicit and explicit subnet associations. Subnets are automatically associated with the default table. It controls the routing for all subnets. It is pre-configured with a local route for VPC communication.
A default route table will be automatically used by any subnet that has not been specifically assigned to a Route Table. Though it is always recommended subnet should be explicitly assigned to a route table in order to avoid any problems the choice depends entirely on the user.
Use case: The default route tables allow resources to interact with the Internet within the VPC.
Custom Route Table: As the name suggests, it is a customized route table created by the user in addition to the default ones. A custom route table is empty until routes are added by you. It offers great flexibility compared to the default route table as you can configure it as per your need. You can also create multiple custom route tables. Here the sole responsibility is of the user to manually associate subnets and update roots as per the requirements.
Custom route tables have only explicit associations. It is ideal for complex networking. For example, when you need different routes for subsets of subnets you prefer a custom route table as your networking will be more complex.
What Is AWS VPC Route Table?
An AWS VPC Route Table is a set of rules that determine where the network traffic from your subnet or gateway is directed. Each subnet (range of IP addresses in your VPC) is associated with a route table that controls the traffic flow between subnets. A route table has a destination address which determines where the network is directed. Route tables are essential when dealing with IPv4/IPv6 CIDR blocks, private or public subnets, network gateways, VPC endpoints, etc.