【Day 21】夭寿赞的 ECS on Outposts 实作

tags: 铁人赛 AWS Outposts ECS Task

建立丛集 Cluster

  • 从介面上建立丛集时

    • 取名字
    • 选定 Instance 机型(指定和 Outpost 上一样)
    • 选定网段,选 Outpost 上的即可
  • 设置 Container instance IAM Role (ecsInstanceRole)

    • 用来授权那些被加进丛集的 EC2 可操作的资源
    • 如果没有建立过,如下图一样让他自动产生
    • arn:aws:iam::000000000000:role/ecsInstanceRole
      • 内含有 AmazonEC2ContainerServiceforEC2Role
      • 凡是被套用了这个角色的资源(如 EC2),逐项来看,能够⋯⋯
        • 写入 CloudWatch Logs

        • 读取 EC2 (读取 Tag,主要是要去抓 Instance Name)

        • 读取 ECR (允许从 ECR 拉 Container Image)

        • 操作 ECS 的部分功能 (针对虚拟机的工作范畴制定)

    建立 Cluster 的关键步骤就只要选对网段而已!!

  • 等等创造出来的 Cluster 所使用的 EC2 有这样的角色

设置 Task 之前的前置作业

  • 容器映像档容器 之间的关系是
    • 映像档就是一层一层、Read-onlyimage layer 所堆砌而成(千毅葛格最爱的汉堡)
    • 而容器则是那些个汉堡上面多加上一层 Read-writecontainer layer
  • 而在 ECS 的场景中,任务容器映像档 的关系是
    • 描述如何运行容器
      • 要当成常驻的服务来运行(Service)、或是短暂的派工运作(Task)
      • 会定义容器的规格

    Fargate

    • 咖喱饭调理包、如何被装在 免洗餐具里的咖喱饭
      • Fargate 的运算是由 Region 上的运算池所提供
      • 价格以使用的 资源单价(vCPU 和 记忆体) 秒数 计费
        • 低消 60 秒
        • 从开始 pull image 的时候就会开始收钱
      • 更多关於 Fargate 的细节可以看 AWS 文件

    EC2

    • 咖喱饭调理包、如何被装在 食堂盘子里的咖喱饭
      • 开一台或一台以上的虚拟主机来做
      • Outposts 上的 EC2 可以选这个模式比较省钱

    External

上述的 Task 主要是用来设定要
「根据什麽容器映像档」、「跑在什麽模式」、「挂什麽参数」、
要不要将这个运作中的容器「赋予 IAM Role」、「网路模式」等的配置

论 Task Role

  • 接下来看好了世界!! 只示范一次!
    • ~~砸瓦鲁多!!!!~~
    • 要赋予运作的容器「news-grabber」,取得我先前放在「AWS Systems Manager 里的 Parameter Store」的资料... 那是必要给这个容器权限。

设定 IAM Policies

  • 如果你有帐号,就点这个连结: https://console.aws.amazon.com/iamv2/home#/policies
  • 找到按钮
  • 贴上这串 ... 根据你本人的设定做修改
    • 我把帐号改成 999999999999,如果你要拿去用,记得改成自己的帐号
    • 也要注意 region,因为我变数放在大阪所以是 ap-northeast-3
    • 从 SSM 和 Secret Manager 分别领取指定变数的能力如下所示
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter*",
                "kms:Decrypt",
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:ssm:ap-northeast-3:999999999999:parameter/gmail_sender_addr",
                "arn:aws:ssm:ap-northeast-3:999999999999:parameter/gmail_sender_secret"
                "arn:aws:secretsmanager:ap-northeast-3:999999999999:secret:prod/key/xxx"
            ]
        }
    ]
}

我不当人类啦~99!!

新增政策

  • 帮政策取名字
    • 小字写 Use alphanumeric and '+=,.@-_' characters. Maximum 128 characters. ,应该是可以做一个叫做 「3+11Policy@AWeSome」
    • 数字开头和奇怪的标点就是赞啦,不知道众多工程师们会不会牙起来 XD

    牙~牙~牙~!牙牙!牙牙!喔窝喔喔欧窝~我欧~喔欧~

  • 里面要填什麽呢?先来看看我之前存的变数
  • 知道放在大阪、还有对应的变数名称後,政策的内容如下:

新增角色

  • 如果你有帐号,就点这个连结:https://console.aws.amazon.com/iam/home#/roles$new?step=type
    • 要被允许的服务选 Elastic Container Service
    • 底下要选择 Elastic Container Service Task
      • Allows ECS tasks to call AWS services on your behalf.
  • 把刚刚做好的 3+11 政策加进去
  • 还有 AmazonECSTaskExecutionRolePolicy
    • 搜寻 AmazonECSTaskExecutionRolePolicy 并打勾!
  • 再来帮这个角色取名字
  • 恭喜你完成 ECS Task Role 的建置,接下来继续往下看

设置 Task

1. 取任务名字,设置任务角色,设置网路模式

  • 名字请自由发挥
  • 角色的部分上半部有说明罗
  • 网路模式的选择
    • 主要是判断容器要和什麽其他服务互动
    • 有没有对外公开服务的必要
    • 不知道的话,先选预设值

2. 配置资源给任务

  • CPU 和 记忆体
    • 请斟酌使用

3. 配置容器映像档

  • 上图的蓝色按钮,叫你加入容器呢!!
  • 我的容器还没好啊~~~
  • 再给我一分钟!!!!!
  • 再给我一分钟还是做不完啦,今天做不完了 QQ

下集待续!!!

  • 我们先前写的那个发信程序
    • 干了一些肮脏事

    看看那第三行,之前我的作法是,把 AWS KEY 和 SECRET 直接当作是给容器的环境变数

    • 我们上半部说明如何让任务有权限去摸其他服务
    • 明天再来把容器包好

<<:  Day 26 - 新鲜人带新鲜人篇

>>:  #14-撒花~Button庆祝动态自己来!~ (JS)

Day 21 利用transformer自己实作一个翻译程序(三) 文字标签化和去标签化

前言 昨天讲到要怎麽建立环境和下载资料集,今天要来讲文字的处理 文字标签化和去标签化 由於模型没有办...

【Day 2_ 高传真手游的未来到底是?】

延续昨天提到Arm对於手游趋势的分享,今天来聊聊Arm在手游市场的耕耘。 根据Arm与游戏市场调查机...

Day02:咦?啊产品已经上线了,真的要翻新吗

软件开发有个情境或许大家都不陌生: 团队可能接手外包所开发的程序,或是接手团队其他成员所写的程序继续...

帮忙填写「资讯相关」问卷

#来抽Airpods Pro, Marshall喇叭, 空气清净机, 全联/7-11/Starbuc...

Day 10 - SELECT INTO !

今天来认识一下SELECT INTO吧!SELECT INTO用来从某资料表查询所得之资料集结果新增...