If you only have one instance:
- There is no need for a Load Balancer, since no traffic needs to be balanced
- There is no need for a Private Subnet, but it needs to be publicly accessible
- Use a Security Group to restrict access to the minimum ports that should be accessible (eg port 80, 443) and also the ability to login (but restrict that to only your IP address)
If you have multiple instances, it would then require a Load Balancer. In this situation:
- Put the Load Balancer in a public subnet
- Put the instances in a private subnet for additional security
However, you could actually keep everything in a public subnet and merely use Security Groups to control access. The normal goal with security is that multiple layers of security make things safer. However, the design choice is up to you.