将弹性文件系统挂载到AWS Batch Computer Enviroment

jwi*_*720 6 amazon-web-services amazon-ecs docker aws-batch

我正在尝试将我的弹性文件系统(EFS)安装在我的docker容器中,以便它可以与AWS批处理一起使用.这是我做的:

  1. 创建针对弹性容器服务(ECS)进行了优化的新AMI.我在这里遵循了这个指南,以确保它有ECS.我还将mount挂载到/etc/fstab文件中,并在重启后验证我的EFS是否正在挂载(/ mnt/efs).

  2. 用我的新AMI测试了EC2实例并验证我可以拉出docker容器并通过它传递我的挂载点

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

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

  1. 使用我的新AMI 设置新的计算环境,该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": []
    }
    
    Run Code Online (Sandbox Code Playgroud)

    }

  3. 运行作业,查看日志

无论如何,虽然它没有说"没有找到文件/ home/efs",但它没有列出我填充的EFS中的任何内容,我将其作为装载空efs的容器.我究竟做错了什么?我的AMI没有在计算环境中安装EFS吗?

小智 -2

我在最近的一篇博客文章中对此进行了介绍

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

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

  • 欢迎肖恩,并感谢您决定做出贡献。是否有可能稍微充实这个答案,以便如果第三方链接消失,剩下的就是它自己的答案? (2认同)