I'm confused about High Availability/Always On
AGs are a lot more like a mix of mirroring and clustering than log shipping. 

Clustering would let you have multiple instances that fail over from one node to another node, but the nodes and disks are all absolutely distinct and only one instance runs at a time (though you can then load up other instances on the same set of nodes and make it more complicated if you wanted to).

Mirroring copies over the logs in real time (not quite log shipping but that's where the similarity comes from; it's "shipping" logs) and lets you automatically fail over if you have a witness. However, you have to specify the primary and secondary names in the connection string in order for it to work, and you can't go past those initial two nodes.

AGs have the best of all worlds. It's mirroring under the covers so it's live, but it lets you read from the secondaries (and the tech behind that is far superior than any home-grown stuff). 

AGs also skip the shortcomings of mirroring because you can have multiple nodes, and you don't specify any of them in the connection string! You get a listener name and use THAT in the connection string, clustering fails over that listener name between nodes as required (while sending off those read only connections to the secondaries). Later on you can add/remove/replace nodes without modifying your connection strings at all.