What is Bastion Host ? Why we use it ? How to implement it?

What is Bastion Host ?

Why we use it ?

How to implement it ?

Connect to a instance on private subnet through Bastion Host
Instance with public ip
Instance without public ip

AWS Architect and DevOps Engineer