Yes it's retroactive (i.e. all the things that are already there and match will get the rule).
There may be a slight delay (i.e. rules will have day granularity and run on daily basis), but the rules will take effect immediately. Depending on how much data you have to remove/move it may take a while if you have a lot of pre-existing data.
Source: S3 FAQ here: http://aws.amazon.com/s3/faqs/
Lifecycle policies apply to both existing and new S3 objects, ensuring
that you can optimize storage and maximize cost savings for all
current data and any new data placed in S3 without time-consuming
manual data review and migration.
After an Object Expiration rule is added, the rule is applied to
objects that already exist in the bucket as well as new objects added
to the bucket. Once objects are past their expiration date, they are
identified and queued for removal. You will not be billed for storage
for objects on or after their expiration date, though you may still be
able to access those objects while they are in queue before they are
removed. As with standard delete requests, Amazon S3 doesn’t charge
you for removing objects using Object Expiration. You can set
Expiration rules for your versioning-enabled or versioning-suspended
buckets as well.