Always On/SQL Server Replication for Dummies
First on AGs.  To have a readable AG replica, both the primary and secondary SQL instance must be Enterprise Edition.  For SQL 2016 and before you also must have a Windows Server Failover Cluster (although it doesn't need any shared storage).  So there's no extra hardware required; the Windows Servers just need to be able to talk to each other, and be in the same Domain.

For SQL 2017 and after you can create an AG replica without a Failover Cluster (and therefore without automatic failover).  See Read-scale Availability Groups.

If your secondary SQL instance is not Enterprise Edition, you can use Backup and Restore (eg Log Shipping), or Transactional Replication to maintain a second, readable copy of your database.  With any backup-based solution the replica will not be near-real-time, and you will have to briefly disconnect the readers to restore the latest backup.

With SQL 2016 and later, there are additional features to enable you to run reporting workloads directly on your production database.  This uses features including, READ COMMITTED SNAPSHOT isolation, Resource Governor, Updatable Columnstore Indexes with Compression Delay, and optionally In-Memory OLTP, called collectively Real-Time Operational Analytics.