将弹性文件系统挂载到 AWS Batch Compute Environment

Posted

技术标签:

【中文标题】将弹性文件系统挂载到 AWS Batch Compute Environment【英文标题】:Mounting an elastic file system to AWS Batch Computer Enviroment 【发布时间】:2019-03-24 02:44:07 【问题描述】:

我正在尝试将我的弹性文件系统 (EFS) 挂载到我的 docker 容器中,以便与 AWS 批处理一起使用。这是我所做的:

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

    用我的新 AMI 测试了一个 EC2 实例,并验证我可以拉取 docker 容器并通过

    将我的挂载点传递给它

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

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

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

    创建一个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": []
    
    

    运行作业,查看日志

无论如何,虽然它没有说“找不到文件 /home/efs”,但它没有列出我的 EFS 中已填充的任何内容,我将其解释为安装空 efs 的容器。我究竟做错了什么?我的 AMI 是否没有在计算环境中挂载 EFS?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

欢迎您,肖恩,感谢您决定做出贡献。是否有可能将这个答案充实一点,以便如果第三方链接失效,剩下的就是它自己的答案?

以上是关于将弹性文件系统挂载到 AWS Batch Compute Environment的主要内容,如果未能解决你的问题,请参考以下文章

无法将数据库迁移到 AWS 弹性 Beanstalk

将 Docker 映像部署到 AWS 弹性 beantalk

在 AWS ECS 容器上挂载 S3 存储桶作为文件系统

在弹性 beantalk 上构建战争文件时从 AWS S3 复制文件

AWS ECS 中的批处理系统与 AWS Batch 有何不同?

将 SSH 隧道反向到 AWS Batch 阵列作业