Mostly, you don’t log in to CI servers - they tend to start on a Git push or a schedule.
Yes, you can do everything you want here - do one step at a time, it will seem less overwhelming. Get a bare-bones
.circleci/config.yml running first, then add to it, small blobs of config at a time.
There are a variety of techniques in my config here, but this uses a standard Docker registry. AWS unfortunately does things in a non-standard way with their own binary, so you may want to do things the easy way first, then convert when it is working.
I would recommend Dockerising your app first, and running it locally. That is worth practising with for a bit - if you are new to Docker I would recommend doing some learning with it rather than moving to production immediately.
For production I would suggest standard Docker to start with, and if you are keen to have zero downtime during upgrades, look at Docker Swarm. Both are much simpler than alternatives like Kubernetes.
Good luck giving it a go, and of course do ask questions if you get stuck on something specific.