Sharding AWS MySQL data
(Not yet an answer, but some more steps toward understanding the task enough to provide an answer.)
2.5 billion rows will fit on a single machine.  (Perhaps 400GB, including ancillary tables.)  Have you determined that the activity will exceed a single server's capabilities?

Which table is the biggest?  (Please list the 3 largest and their projected sizes.  Also, please provide the full SHOW CREATE TABLE for each of them -- We need to consider shrinking their datatypes.)
Which column(s) in that table seem reasonable for sharding?
If you shard on that column, what other tables will also be split up?
Ignoring for the moment, provide the 6 most common SELECTs with JOINs and multi-table Updates/Deletes.
Which tables will be needed for JOINs?  Are they small enough to simply maintain copies of them in each shard?  How complex will that maintenance be?