There are a couple different ways you can solve this with AWS, and that all depends upon your budget and what you're trying to do.
TL;DR
You can allocate an Elastic IP which is just like any regular IPv4 for a single EC2 instance, and you can register a domain with AWS (via their Route53 service).
Simple Answer
The simple answer is, yes, you can allocate an EC2 instance with a public IP address. Amazon calls this an Elastic IP address. While provisioning an EC2 instance you should see an option to allocate an Elastic IP address. Make sure that's "Yes" and when your instance starts up, a normal IPv4 address will be allocated to it.
AWS will also allow you to register a domain through them using Route53 (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html). The downside to this is that Amazon will charge you fractions of pennies for each query of your DNS that's made. Most other registrars and DNS providers do not charge for DNS queries.
Complex Answer
AWS Route53 has a feature called "aliasing" which allows you to use a service like Elastic Load Balancing (ELB) to run multiple EC2 instances behind it and giving your site one endpoint. So in your DNS you wouldn't ever see an IP address; instead, you'd be letting Route53 monitor your ELB for its IP addresses and updating the DNS automatically. So your DNS entry would be an "A" entry aliased to the ELB. The "alias" requires an ELB for EC2 instances.
Alternatively, if you're running the Magento instance as a subdomain only (e.g. shop.mydomain.tld) then you can just use the "public endpoint name" of the EC2 instance. That would be a CNAME in the DNS record and shop.mydomain.tld would be CNAMED to something like random-string.ec2.us-east1.amazonaws.com
. You could allocate an elastic IP address for this, but it's unnecessary.
Conclusion
Really what is going to drive your implementation is going to be your budget and your plans for growth. If you're making this a "forever" setup, then using an ELB and fragmenting your services (e.g. RDS for your DB, Elasticache for Redis and Memcache, Cloudfront as CDN) to power your store is the better option. It is possible to do a super-simple typical dedicated server-style setup with IP addresses connected to a single instance.
Expertise
I run an Enterprise Edition Magento 1.14 installation on AWS and have been tweaking it and adjusting it over the last 2 years.