### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I am running a script to set up a local stack environment. When running the following commands there is an issue with Redis and MySQL fighting for the same port. 
```
echo "Create an Mysql RDS Instance"
awslocal rds create-db-instance \
    --db-instance-identifier devops-toolkit \
    --db-instance-class db.t3.micro \
    --engine mysql \
    --master-user-password 12345678 \
    --master-username admin \
    --allocated-storage 5
sleep 5
echo "Create a Redis Cache Cluster"
awslocal elasticache create-cache-cluster --cache-cluster-id cluster-1
```
This can be seen in the logs
```
2022-09-01T07:49:51.054  INFO --- [  Thread-119] l.s.rds.engine_mysql       : Starting MySQL RDS server on port 4510 (backend port 4510) - database "test", user "admin"
2022-09-01T07:49:53.245  INFO --- [   asgi_gw_0] l.s.elasticache.provider   : Waiting for Redis server on tcp://localhost:4510 to start
2022-09-01T07:49:53.259  INFO --- [  Thread-123] l.s.elasticache.redis      : 1181:C 01 Sep 2022 07:49:53.258 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2022-09-01T07:49:53.259  INFO --- [  Thread-123] l.s.elasticache.redis      : 1181:C 01 Sep 2022 07:49:53.258 # Redis version=5.0.14, bits=64, commit=00000000, modified=0, pid=1181, just started
2022-09-01T07:49:53.259  INFO --- [  Thread-123] l.s.elasticache.redis      : 1181:C 01 Sep 2022 07:49:53.258 # Configuration loaded
2022-09-01T07:49:53.265  INFO --- [  Thread-123] l.s.elasticache.redis      : 1181:M 01 Sep 2022 07:49:53.265 * Running mode=standalone, port=4510.
2022-09-01T07:49:53.265  INFO --- [  Thread-123] l.s.elasticache.redis      : 1181:M 01 Sep 2022 07:49:53.265 # Server initialized
2022-09-01T07:49:53.266  INFO --- [  Thread-123] l.s.elasticache.redis      : 1181:M 01 Sep 2022 07:49:53.265 # WARNING you have Transparent Huge Pages (THP) support en
```
And then results in mysql errors
```
ERROR: 'cat /tmp/tmpfbw8o1x_ | mysql --socket /tmp/mysql-states/09a73ec8/mysqld.sock': exit code 1; output: b"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql-states/09a73ec8/mysqld.sock' (2)\n"
```
Any ideas, thanks in advance ✌️ 

### Expected Behavior

The two services should be run on different ports, is the the possibility to preconfigure the port on which each service is run?

### How are you starting LocalStack?

With the `localstack` script

### Steps To Reproduce

Run this simple script
```
localstack start -d
echo "wait for local stack to start"
sleep 10
echo "Now trying to configure local stack"
echo "Create an Mysql RDS Instance"
awslocal rds create-db-instance \
    --db-instance-identifier devops-toolkit \
    --db-instance-class db.t3.micro \
    --engine mysql \
    --master-user-password 12345678 \
    --master-username admin \
    --allocated-storage 5
sleep 5
echo "Create a Redis Cache Cluster"
awslocal elasticache create-cache-cluster --cache-cluster-id cluster-1
```

### Environment

```markdown
- OS: MacOS 11
- LocalStack: latest
```


### Anything else?

_No response_
"""
        Reserves the given port (if it is still free). If the given port is None, it reserves a free port from the
        configured port range for external services. If a port is given, it has to be within the configured
        range of external services (i.e., in the range [self.start, self.end)).
        :param port: explicit port to check or None if a random port from the configured range should be selected
        :return: reserved, free port number (int)
        :raises: PortNotAvailableException if the given port is outside the configured range, it is already bound or
                    reserved, or if the given port is none and there is no free port in the configured service range.
        """
        ports_range = range(self.start, self.end)
        if port is not None and port not in ports_range:
            raise PortNotAvailableException(
                f"The requested port ({port}) is not in the port range ({ports_range})."
            )
        with self._PORTS_LOCK:
            if port is not None:
                return self._check_port(port)
            else:
                for port_in_range in ports_range:
                    try:
                        return self._check_port(port_in_range)
                    except PortNotAvailableException:
                        
                        pass
        raise PortNotAvailableException(
            "No free network ports available in the port range (currently reserved: %s)",
            list(self._PORTS_CACHE.keys()),
        )
    def _check_port(self, port: int) -> int: