A website is many files, and each deploy changes a few of them. Copying them one by one with cp is slow and easy to get wrong. sync copies a whole directory and sends only the difference.
Sync a directory
aws s3 sync ~/blog s3://monster-blog-6cz0yisync compares each file in ~/blog with the object of the same key. Files that are new or different are uploaded; the rest are skipped. The keys come from the paths: ~/blog/posts/hello.html becomes posts/hello.html.
Run it again straight away and it prints nothing: everything matches. Edit one file and run it again: one upload.
Mirror it
aws s3 sync ~/blog s3://monster-blog-6cz0yi --deleteBy default, sync only adds and updates. A file you deleted from ~/blog stays in the bucket, still served to anyone who asks for it. --delete removes objects that have no file in the directory, so the bucket ends up holding exactly what the directory holds.