aws(學習筆記第三十一課) aws cdk深入學習(batch-arm64-instance-type)

aws(學習筆記第三十一課)

  • aws cdk深入學習

學習內容:

  • 深入練習aws cdk下部署batch-arm64-instance-type

1. 深入練習aws cdk下部署batch-arm64-instance-type

  1. 代碼鏈接

    • 代碼鏈接
      代碼鏈接 -> batch-arm64-instance-type
    • 之前代碼學習
      之前學習代碼鏈接 -> aws(學習筆記第十八課) 使用aws cdk(python)進行部署
  2. batch-arm64-instance-type代碼測試

    • setup環境
      • setup virtual environment
        python -m venv .venv
        
      • 激活python virtual environment
        source .venv/Scripts/activate #這里使用的是git bash
        
      • 安裝python的依賴包
         pip install -r requirements.txt
        
      • 代碼中cdk.jsonpython3進行替換
        這里的phthon3沒有配置,所以不能執行python3,講這里改成了python
        在這里插入圖片描述
  3. 代碼執行

    • 預先執行cdk bootstrap
      cdk提供了bootstrap命令來創建cdk執行需要的前提條件。

      CDKToolkit: creating CloudFormation changeset...
      CDKToolkit |  0/12 | 21:22:46 | REVIEW_IN_PROGRESS   | AWS::CloudFormation::Stack | CDKToolkit User Initiated
      CDKToolkit |  0/12 | 21:22:52 | CREATE_IN_PROGRESS   | AWS::CloudFormation::Stack | CDKToolkit User Initiated
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | FilePublishingRole
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | CloudFormationExecutionRole
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::ECR::Repository    | ContainerAssetsRepository
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::S3::Bucket         | StagingBucket
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | ImagePublishingRole
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | LookupRole
      CDKToolkit |  0/12 | 21:22:56 | CREATE_IN_PROGRESS   | AWS::SSM::Parameter     | CdkBootstrapVersion
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::SSM::Parameter     | CdkBootstrapVersion Resource creation Initiated
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | FilePublishingRole Resource creation Initiated
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::ECR::Repository    | ContainerAssetsRepository Resource creation Initiated
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | CloudFormationExecutionRole Resource creation Initiated
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | ImagePublishingRole Resource creation Initiated
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::S3::Bucket         | StagingBucket Resource creation Initiated
      CDKToolkit |  0/12 | 21:22:57 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | LookupRole Resource creation Initiated
      CDKToolkit |  1/12 | 21:22:57 | CREATE_COMPLETE      | AWS::SSM::Parameter     | CdkBootstrapVersion
      CDKToolkit |  2/12 | 21:22:58 | CREATE_COMPLETE      | AWS::ECR::Repository    | ContainerAssetsRepository
      CDKToolkit |  3/12 | 21:23:12 | CREATE_COMPLETE      | AWS::S3::Bucket         | StagingBucket
      CDKToolkit |  3/12 | 21:23:14 | CREATE_IN_PROGRESS   | AWS::S3::BucketPolicy   | StagingBucketPolicy
      CDKToolkit |  3/12 | 21:23:15 | CREATE_IN_PROGRESS   | AWS::S3::BucketPolicy   | StagingBucketPolicy Resource creation Initiated
      CDKToolkit |  4/12 | 21:23:15 | CREATE_COMPLETE      | AWS::S3::BucketPolicy   | StagingBucketPolicy
      CDKToolkit |  5/12 | 21:23:16 | CREATE_COMPLETE      | AWS::IAM::Role          | ImagePublishingRole
      CDKToolkit |  6/12 | 21:23:16 | CREATE_COMPLETE      | AWS::IAM::Role          | FilePublishingRole
      CDKToolkit |  7/12 | 21:23:16 | CREATE_COMPLETE      | AWS::IAM::Role          | CloudFormationExecutionRole
      CDKToolkit |  7/12 | 21:23:16 | CREATE_IN_PROGRESS   | AWS::IAM::Policy        | FilePublishingRoleDefaultPolicy
      CDKToolkit |  8/12 | 21:23:16 | CREATE_COMPLETE      | AWS::IAM::Role          | LookupRole
      CDKToolkit |  8/12 | 21:23:17 | CREATE_IN_PROGRESS   | AWS::IAM::Policy        | ImagePublishingRoleDefaultPolicy
      CDKToolkit |  8/12 | 21:23:17 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | DeploymentActionRole
      CDKToolkit |  8/12 | 21:23:18 | CREATE_IN_PROGRESS   | AWS::IAM::Policy        | FilePublishingRoleDefaultPolicy Resource creation Initiated
      CDKToolkit |  8/12 | 21:23:18 | CREATE_IN_PROGRESS   | AWS::IAM::Policy        | ImagePublishingRoleDefaultPolicy Resource creation Initiated
      CDKToolkit |  8/12 | 21:23:19 | CREATE_IN_PROGRESS   | AWS::IAM::Role          | DeploymentActionRole Resource creation Initiated
      CDKToolkit |  9/12 | 21:23:34 | CREATE_COMPLETE      | AWS::IAM::Policy        | FilePublishingRoleDefaultPolicy
      CDKToolkit | 10/12 | 21:23:34 | CREATE_COMPLETE      | AWS::IAM::Policy        | ImagePublishingRoleDefaultPolicy
      CDKToolkit | 11/12 | 21:23:38 | CREATE_COMPLETE      | AWS::IAM::Role          | DeploymentActionRole
      CDKToolkit | 12/12 | 21:23:39 | CREATE_COMPLETE      | AWS::CloudFormation::Stack | CDKToolkit?  Environment aws://081353481087/ap-northeast-1 bootstrapped.
      

      這里,cdk bootstrap命令執行完之后,會生成一個CDKToolkit名字的cloudformation
      在這里插入圖片描述
      如果由于平時的誤刪除之類的操作,會使CDKToolkit的創建的cdk deploy需要的前提條件遭到破壞。這時如果重新執行cdk bootstrap會導致沒有差分執行出來。這時候需要將CDKToolkit這個cloudformation刪除掉,之后執行cdk bootstrap命令,這樣就會重新生成cdk deploy執行的所有條件。

    • 執行cdk --require-approval never deploy
      如果執行不加上--require-approval never,會導致錯誤,所以這里加上該選項。

    • Trouble Shouting
      如果存在默認的vpc,這里會出現如下錯誤。在這里插入圖片描述
      原因在于:
      Fn:GetAZs這個函數調用的話,會只返回default VPCAvailable Zone的數量,從而影響cdk的執行。
      對策:
      所以要刪除default VPC,不過不用擔心,default VPC可以重新創建,大可放心。

  4. 代碼解析

    • 全體架構
      在這里插入圖片描述

    • 作成VPC

       # This resource alone will create a private/public subnet in each AZ as well as nat/internet gateway(s)
      vpc = ec2.Vpc(self, "VPC")
      

      創建一下service組件:

      • 一個VPC
      • 一個public subnet
      • 一個private subnet
      • 一個Internet Gateway
      • 一個NAT Gateway Compute Environment通過這個NAT Gateway訪問internet
        在這里插入圖片描述
    • 創建Job Queue

      # Create AWS Batch Job Queue
      self.batch_queue = batch.JobQueue(self, "JobQueueArm64")
      

      在這里插入圖片描述

    • 創建Compute Environment,并將每個Compute Environment分配給JobQueue

              # For loop to create Batch Compute Environmentsfor i in range(count):name = "MyBatchARM64Env" + str(i)batch_environment = batch.ManagedEc2EcsComputeEnvironment(self, name,spot=True,spot_bid_percentage=75,instance_types=[ec2.InstanceType("c7g.medium"),ec2.InstanceType("c7g.large")],use_optimal_instance_classes=False,vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_NAT),vpc=vpc)self.batch_queue.add_compute_environment(batch_environment, i)
      

      在這里插入圖片描述

    • 創建Job Defintion

             # Create ECS Job Definition to submit job in batch job queue.batch_jobDef = batch.EcsJobDefinition(self, "MyJobDefArm64",container=batch.EcsEc2ContainerDefinition(self, "CDKJobDefArm64",image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),command=["sleep", "60"],memory=Size.mebibytes(512),cpu=1))
      

      在這里插入圖片描述

  5. 執行job

    • 投入新的Job
      在這里插入圖片描述
    • Job執行成功
      在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71740.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71740.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71740.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

讀書報告」網絡安全防御實戰--藍軍武器庫

一眨眼,20天過去了,刷完了這本書「網絡安全防御實戰--藍軍武器庫」,回味無窮,整理概覽如下,可共同交流讀書心得。在閱讀本書的過程中,我深刻感受到網絡安全防御是一個綜合性、復雜性極高的領域。藍軍需要掌…

生成任務,大模型

一個生成項目 輸入:文字描述(但是給的數據集是一串數字,id,ct描述,醫生描述) 輸出:診斷報告 一、數據處理 import pandas as pd #處理表格數據pre_train_file "data/train.csv"tr…

Spring Boot API 項目中 HAProxy 與 Nginx 的選擇與實踐

在開發 Spring Boot 構建的 RESTful API 項目時,負載均衡和反向代理是提升性能與可用性的關鍵環節。HAProxy 和 Nginx 作為兩種流行的工具,經常被用于流量分發,但它們各有側重。究竟哪一個更適合你的 Spring Boot API 項目?本文將…

Java常用集合與映射的線程安全問題深度解析

Java常用集合與映射的線程安全問題深度解析 一、線程安全基礎認知 在并發編程環境下,當多個線程同時操作同一集合對象時,若未采取同步措施,可能導致以下典型問題: 數據競爭:多個線程同時修改數據導致結果不可預測狀…

DeepLabv3+改進6:在主干網絡中添加SegNext_Attention|助力漲點

??【DeepLabv3+改進專欄!探索語義分割新高度】 ?? 你是否在為圖像分割的精度與效率發愁? ?? 本專欄重磅推出: ? 獨家改進策略:融合注意力機制、輕量化設計與多尺度優化 ? 即插即用模塊:ASPP+升級、解碼器 PS:訂閱專欄提供完整代碼 目錄 論文簡介 步驟一 步驟二…

使用 Elastic-Agent 或 Beats 將 Journald 中的 syslog 和 auth 日志導入 Elastic Stack

作者:來自 Elastic TiagoQueiroz 我們在 Elastic 一直努力將更多 Linux 發行版添加到我們的支持矩陣中,現在 Elastic-Agent 和 Beats 已正式支持 Debian 12! 本文演示了我們正在開發的功能,以支持使用 Journald 存儲系統和身份驗…

3.9[A]csd

在傳統CPU中心架構中,中央處理器通過內存訪問外部存儲器,而數據必須經過網絡接口卡才能到達外部存儲器。這種架構存在集中式計算、DRAM帶寬和容量挑戰、大量數據移動(服務器內和網絡)以及固定計算導致工作負載容量增長等問題。 而…

ESP32S3讀取數字麥克風INMP441的音頻數據

ESP32S3 與 INMP441 麥克風模塊的集成通常涉及使用 I2S 接口進行數字音頻數據的傳輸。INMP441 是一款高性能的數字麥克風,它通過 I2S 接口輸出音頻數據。在 Arduino 環境中,ESP32S3 的開發通常使用 ESP-IDF(Espressif IoT Development Framew…

DeepSeek大模型 —— 全維度技術解析

DeepSeek大模型 —— 全維度技術解析 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,可以分享一下給大家。點擊跳轉到網站。 https://www.captainbed.cn/ccc 文章目錄 DeepSeek大模型 —— 全維度技術解析一、模型架構全景解析1…

[Kubernetes] 7控制平面組件

1. 調度 kube- scheduler what 負責分配調度pod到集群節點監聽kube-apiserver,查詢未分配node的pod根據調度策略分配這些pod(更新pod的nodename)需要考慮的因素: 公平調度,資源有效利用,QoS,affinity, an…

PyTorch系列教程:編寫高效模型訓練流程

當使用PyTorch開發機器學習模型時,建立一個有效的訓練循環是至關重要的。這個過程包括組織和執行對數據、參數和計算資源的操作序列。讓我們深入了解關鍵組件,并演示如何構建一個精細的訓練循環流程,有效地處理數據處理,向前和向后…

LeetCode Hot100刷題——反轉鏈表(迭代+遞歸)

206.反轉鏈表 給你單鏈表的頭節點 head ,請你反轉鏈表,并返回反轉后的鏈表。 示例 1: 輸入:head [1,2,3,4,5] 輸出:[5,4,3,2,1]示例 2: 輸入:head [1,2] 輸出:[2,1]示例 3&#…

機器學習的發展史

機器學習(Machine Learning, ML)作為人工智能(AI)的一個分支,其發展經歷了多個階段。以下是機器學習的發展史概述: 1. 早期探索(20世紀50年代 - 70年代) 1950年:艾倫圖…

Springboot redis bitMap實現用戶簽到以及統計,保姆級教程

項目架構,這是作為demo展示使用: Redis config: package com.zy.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.Ob…

Ardupilot開源無人機之Geek SDK進展2025Q1

Ardupilot開源無人機之Geek SDK進展2025Q1 1. 源由2. 內容匯總2.1 【jetson-fpv】YOLO INT8 coco8 dataset 精度降級2.2 【OpenIPC-Configurator】OpenIPC Configurator 固件升級失敗2.3 【OpenIPC-Adaptive-link】OpenIPC RF信號質量相關顯示2.4 【OpenIPC-msposd】.srt/.osd…

《云原生監控體系構建實錄:從Prometheus到Grafana的觀測革命》

PrometheusGrafana部署配置 Prometheus安裝 下載Prometheus服務端 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.https://prometheus.io/…

SpringMvc與Struts2

一、Spring MVC 1.1 概述 Spring MVC 是 Spring 框架的一部分,是一個基于 MVC 設計模式的輕量級 Web 框架。它提供了靈活的配置和強大的擴展能力,適合構建復雜的 Web 應用程序。 1.2 特點 輕量級:與 Spring 框架無縫集成,依賴…

數據類設計_圖片類設計之1_矩陣類設計(前端架構基礎)

前言 學的東西多了,要想辦法用出來.C和C是偏向底層的語言,直接與數據打交道.嘗試做一些和數據方面相關的內容 引入 圖形在底層是怎么表示的,用C來表示 認識圖片 圖片是個風景,動物,還是其他內容,人是可以看出來的.那么計算機是怎么看懂的呢?在有自主意識的人工智能被設計出來…

開發者社區測試報告(功能測試+性能測試)

功能測試 測試相關用例 開發者社區功能背景 在當今數字化時代,編程已經成為一項核心技能,越來越多的人開始學習編程,以適應快速變化的科技 環境。基于這一需求,我設計開發了一個類似博客的論壇系統,專注于方便程序員…

EasyRTC嵌入式音視頻通話SDK:基于ICE與STUN/TURN的實時音視頻通信解決方案

在當今數字化時代,實時音視頻通信技術已成為人們生活和工作中不可或缺的一部分。無論是家庭中的遠程看護、辦公場景中的遠程協作,還是工業領域的遠程巡檢和智能設備的互聯互通,高效、穩定的通信技術都是實現這些功能的核心。 EasyRTC嵌入式音…