Reboot

Here’s the AWS documentation about rebooting your instance
An instance reboot is equivalent to an operating system reboot. In most cases, it takes only a few minutes to reboot your instance. When you reboot an instance, it keeps its public DNS name (IPv4), private IPv4 address, IPv6 address (if applicable), and any data on its instance store volumes.
Rebooting an instance doesn’t start a new instance billing period (with a minimum one-minute charge), unlike stopping and starting your instance.

Stop/Start

Here’s the AWS documentation about stopping/starting your instance

What happens to IP addresses of the instance?

Stop/Start

When an EC2 instance is stopped, AWS will take back both its private and public IP addresses.
When we start it again, AWS will re-assign private and public IP addresses to the instance.
This is when Elastic IP address becomes necessary if you want to be consistently available.

Reboot

You keep your IP addresses.

What happens to the hardware hosting the instance?

Stop/Start

AWS will take back the hardware hosting your instance, and AWS might start another EC2 instance on it.
Your instance is now just an “ID”.

Reboot

The instance stays on the hardware.

What happens to instance storage (ephemeral)?

The data in an instance store persists only during the lifetime of its associated instance.

Stop/Start

Any contents on the instance’s former ephemeral storage were wiped when you stop it. You are given fresh ephemeral storage when you start your instance.

Therefore, You can only stop an Amazon EBS-backed instance. Instances with instance storage as its root volume can only be terminated.

Reboot

If an instance reboots (intentionally or unintentionally), data in the instance store persists.

Other behaviours for stopped instances

Billing

You can leave an instance stopped for as long as you like and not get charged for run time.
You do get charged at a much lower rate for the EBS volume storage.
A fresh billing hour is started for the instance when you start it again.

Change EC2 instance type

You can change EC2 instance type only after you’ve stopped it.

Enlarge EBS root volume

You can do this either when the instance is stopped, or while it is running.
(Shrinking your EBS root volume is much more trouble though, you have to move your data manually into a smaller one, and configure the new volume to be your instance’s root volume.)