Endpoint - The endpoint can be a phone, email address or whatever, it's what AWS SNS can hit back with a notification
Topic - Essentially a group that contains all of your endpoints
Subscribe - You sign up your phone/client to receive notifcations
APNS - Apple Push Notification Service. Apple is the only one who can send push notifications. This is why we provision our app with the proper certificate. We provide AWS SNS the certificate that Apple provides us to authorize SNS to send a notification to APNS on our behalf.
GCM - Google Cloud Messaging is very similar to APNS. Google is the only one who can directly send push notifications. So we first register our App in GCM and hand over our token to AWS SNS. SNS handles all the complex stuff dealing with GCM and sending over the data.