I am a newbie to AWS. As I understand, both Amazon MQ and Amazon SQS are message queue tools. The only noted difference is that SQS is fully managed.
When should we use SQS or MQ?
SQS is a simple queuing service. It doesn't support many higher level abstractions like message routing, fan-outs, distribution lists etc. It is a queue - a message is produced, and a message is delivered. It is useful when you need a queue with limited backing logic.
Amazon MQ is a managed broker service (i.e. Apache ActiveMQ "Classic" or RabbitMQ). This provides support for a variety of industry-standard queue and broadcast protocols like AMQP, JMS, etc. It is useful when you have complicated delivery rules or when you're migrating an existing system from outside AWS into AWS and your systems happen to talk to one another with a standard messaging protocol.