将弹性文件系统挂载到AWS Batch计算机环境

时间:2018-10-19 08:19:44

标签: amazon-web-services docker amazon-ecs aws-batch

我正在尝试将弹性文件系统(EFS)安装在Docker容器中,以便可以与AWS Batch配合使用。这是我所做的:

  1. 创建针对弹性容器服务(ECS)优化的新AMI。我遵循this guide here以确保上面有ECS。我还将挂载放入/etc/fstab文件中,并验证了重启后是否正在挂载我的EFS(/ mnt / efs)。

  2. 使用新的AMI测试了EC2实例,并验证了我可以拉docker容器并通过

  3. 将其传递给我的挂载点

docker run --volume /mnt/efs:/home/efs -it mycontainer:latest

交互式运行docker映像会显示我在efs中的数据

  1. Set up a new compute enviorment和我的新AMI在启动时安装了EFS。

  2. 创建一个JOB定义文件:

    {
    "jobDefinitionName": "MyJobDEF",
    "jobDefinitionArn": "arn:aws:batch:us-west-2:#######:job-definition/Submit:8",
    "revision": 8,
    "status": "ACTIVE",
    "type": "container",
    "parameters": {},
    "retryStrategy": {
        "attempts": 1
    },
    "containerProperties": {
        "image": "########.ecr.us-west-2.amazonaws.com/mycontainer",
        "vcpus": 1,
        "memory": 100,
        "command": [
            "ls",
            "/home/efs",
        ],
        "volumes": [
            {
                "host": {
                    "sourcePath": "/mnt/efs"
                },
                "name": "EFS"
            }
        ],
        "environment": [],
        "mountPoints": [
            {
                "containerPath": "/home/efs",
                "readOnly": false,
                "sourceVolume": "EFS"
            }
        ],
        "ulimits": []
    }
    

    }

  3. 运行作业,查看日志

无论如何,尽管它没有说“未找到文件/ home / efs”,但它并没有在我的EFS中列出任何已填充的内容,这对于安装空efs的容器来说是我的意思。我究竟做错了什么?我的AMI是否没有在计算环境中安装EFS?

1 个答案:

答案 0 :(得分:-1)

我在最近的博客文章中对此进行了报道

https://medium.com/arupcitymodelling/lab-note-002-efs-as-a-persistence-layer-for-aws-batch-fcc3d3aabe90

您需要为批处理实例设置启动模板,并且需要确保正确配置了子网/安全组。