## Problem
Currently, even if `LAMBDA_REMOTE_DOCKER=1`, we unzip the zip files in the directory they are in, which is usually /var/lib/localstack, which usually has a bind mount to the host.
On docker desktop, due to the use of grpc-FUSE (on macos), this can be very slow, about 200 times slower than on volumes / directly on the host. With experimental virtio filesystem enabled (also on macos), this can be reduced to about 30 times as slow, but still problematic.
This means a lambda may take a lot of time processing, for each additional layer some more. This especially affects nodejs lambdas with huge node_modules folders.

## Probable solution
At least if `LAMBDA_REMOTE_DOCKER=1`, we should leave the initial zip files on the bind mount (for persistence etc), but the working directories after unzipping should be located on non-bind mounts, to speed up the IO for unzipping.
import json
import logging
import time
from datetime import datetime
from localstack.utils.time import timestamp_millis
LOG = logging.getLogger(__name__)
class Component:
    def __init__(self, id, env=None):
        self.id = id
        self.env = env
        self.created_at = None
    def name(self):
        return self.id
    def __repr__(self):
        return self.__str__()
    def __str__(self):
        return "<%s:%s>" % (self.__class__.__name__, self.id)
class KinesisStream(Component):