{"id":50445,"date":"2023-05-29T17:48:02","date_gmt":"2023-06-06T20:31:26","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/"},"modified":"2024-04-30T06:31:00","modified_gmt":"2024-04-29T22:31:00","slug":"2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/","title":{"rendered":"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0"},"content":{"rendered":"<p>\u53c2\u52a0\u4e862019\u5e74\u7684AWS re:Invent\u6d3b\u52a8\u7684\u603b\u7ed3\u3002<\/p>\n<h3>\u5370\u8c61<\/h3>\n<p>\u56e0\u4e3a\u5728\u8bbe\u8ba1\u4e2d\uff0c\u6211\u6ce8\u610f\u5230\u4e86\u4e00\u4e2a\u5173\u952e\u8bcd&#8221;blast radius&#8221;\uff0c\u56e0\u6b64\u4e2a\u4eba\u89c9\u5f97\u6709\u5fc5\u8981\u8bb0\u4f4f\u5b83\u3002<\/p>\n<p>\u5728 AWS \u4e2d\uff0c\u6709 &#8220;train your builders&#8221; \u8fd9\u6837\u7684\u5173\u952e\u70b9\uff0c\u4f8b\u5982\u4e2a\u5b66\u4e60\u578b\u4f1a\u8bae re:invent \u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u4f8b\u5b50\uff0c\u8fd8\u6709 builders&#8217; library \u63d0\u4f9b\u7684\u6700\u4f73\u5b9e\u8df5\uff0c\u4ee5\u53ca\u9488\u5bf9\u673a\u5668\u5b66\u4e60\u7684\u5f00\u53d1\u8005\u5b66\u4e60\u670d\u52a1\u63d0\u4f9b\uff08\u5982 DeepRacer\uff09\u3002\u53ef\u4ee5\u5728\u5404\u4e2a\u65b9\u9762\u611f\u53d7\u5230 AWS \u63d0\u4f9b\u8fd9\u79cd\u673a\u4f1a\u3002<\/p>\n<p>\u4ece\u52a8\u5411\u4e0a\u770b\uff0c\u4f5c\u4e3a\u65b0\u7684\u670d\u52a1\uff0c\u4f3c\u4e4e\u4e3b\u8981\u662f\u4e3a\u4e86\u6d88\u9664\u4e0eai\/ml\u548con-prem\u7684\u969c\u788d\u800c\u6dfb\u52a0\u4e86\u9ad8\u6027\u80fd\u5904\u7406\u548c\u4f4e\u5ef6\u8fdf\u7f51\u7edc\u3002<\/p>\n<h3>\u5173\u4e8e\u6d3b\u52a8\u7684\u5907\u5fd8\u5f55<\/h3>\n<p>\u611f\u89c9\u5c31\u50cf\u662f\u5728\u62c9\u65af\u7ef4\u52a0\u65af\u7684\u9152\u5e97\u548c\u8d4c\u573a\u7fa4\u4e2d\u4e3e\u884c\u4e00\u573a\u5927\u89c4\u6a21\u7684\u6d3b\u52a8\uff0c\u7531\u4e8e\u6211\u4f4f\u7684\u9152\u5e97\uff08\u540d\u4e3aBally&#8217;s\uff09\u7684\u4ea4\u901a\u4e0d\u662f\u5f88\u65b9\u4fbf\uff0c\u6240\u4ee5\u9700\u8981\u6b65\u884c\u5927\u7ea620\u5206\u949f\u5230\u8fbe\u9694\u58c1\u7684\u4f1a\u573a\uff0c\u5bfc\u81f4\u6211\u611f\u5230\u5f88\u7d2f\uff08\u5982\u679c\u53ef\u80fd\u7684\u8bdd\uff0c\u4f4f\u5728\u6d3b\u52a8\u4f1a\u573a\u7684\u9152\u5e97\u4e4b\u4e00\u4f1a\u66f4\u8f7b\u677e\uff0c\u56e0\u4e3a\u53ef\u4ee5\u4e58\u5750\u7a7f\u68ad\u5df4\u58eb\uff09\u3002<\/p>\n<p>\u5728\u65e9\u665a\u9910\u6642\uff0c\u98df\u7269\u9078\u64c7\u4e3b\u8981\u6709\u81ea\u52a9\u9910\u548c\u5916\u5e36\uff0c\u9910\u5ef3\u7a7a\u9593\u901a\u5e38\u90fd\u5f88\u5bec\u655e\uff0c\u6240\u4ee5\u6211\u53ea\u5728\u7b2c\u4e00\u5929\u7684\u5348\u9910\u6642\u9078\u64c7\u4e86\u5916\u5e36\uff0c\u5176\u4ed6\u6642\u9593\u90fd\u662f\u5728\u81ea\u52a9\u9910\u5ef3\u7528\u9910\u3002\u83dc\u80b4\u7684\u7a2e\u985e\u6839\u64da\u4e0d\u540c\u7684\u65e5\u5b50\u800c\u6709\u6240\u8b8a\u5316\uff0c\u6709\u4e9e\u6d32\u6599\u7406\u3001\u58a8\u897f\u54e5\u6599\u7406\u7b49\u7b49\uff0c\u4f46\u5c0d\u6211\u7684\u98f2\u98df\u6c92\u6709\u7522\u751f\u7279\u5225\u7684\u5f71\u97ff\u3002<\/p>\n<h3>\u4f1a\u8bdd<\/h3>\n<h4>\u89c6\u9891\u5217\u8868<\/h4>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">https:\/\/www.youtube.com\/user\/AmazonWebServices<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">https:\/\/www.youtube.com\/channel\/UCdoadna9HFHsxXWhafhNvKw\/playlists<\/ul>\n<h4>\u91cd\u70b9\u662f\u5f15\u8d77\u5174\u8da3\u7684\u5e7b\u706f\u7247<\/h4>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">compute<\/ul>\n<\/li>\n<\/ul>\n<p>\u9ad8\u6027\u80fd\u306a instances \u3078\u306e\u5bfe\u5fdc 1<\/p>\n<p>fargate for eks\u3001eks \u30a4\u30f3\u30d5\u30e9\u306e managed<br \/>\nnetworking\u3001\u8a00\u53ca\u306a\u3057<\/p>\n<p>cassandra (mcs) \u306e\u8ffd\u52a0\u3001 wide column database<\/p>\n<ul class=\"post-ul\">ai\/ml \u30b7\u30ea\u30fc\u30ba<\/ul>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">breaking through barriers 1<\/ul>\n<\/li>\n<\/ul>\n<p>outposts (on-prem workload)<\/p>\n<p>local zones (low latency to local end-users)<\/p>\n<p>wavelength (5G)<\/p>\n<h4>\u4e00\u65b9\u9762\u5438\u5f15\u4e86\u6211\u7684\u6ce8\u610f\u529b\u7684\u670d\u52d9<\/h4>\n<p>Amazon CodeGuru<\/p>\n<p>Java \u306e\u307f\u3063\u307d\u3044\u306e\u3067\u8272\u3005\u306a\u8a00\u8a9e\u306e\u5bfe\u5fdc\u304c\u5f85\u3061\u9060\u3057\u3044<\/p>\n<p>Amazon Kendra<\/p>\n<p>\u4f01\u696d\u5185\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u691c\u7d22\u306f\u7686\u56f0\u3063\u3066\u3044\u3066\u9700\u8981\u304c\u3042\u308b\u3093\u3060\u308d\u3046<\/p>\n<p>Amazon Builders&#8217; Library<\/p>\n<p>\u8aad\u3080\u5fc5\u8981\u304c\u3042\u308b<\/p>\n<h4>\u4ee5\u4e0b\u662f\u6211\u53c2\u52a0\u7684\u5404\u79cd\u4f1a\u8bae\u7684\u4e2a\u4eba\u5907\u5fd8\u5f55\u3002<\/h4>\n<h5>\u5348\u591c\u75af\u72c2<\/h5>\n<p>\u5728\u665a\u4e0a8\u70b9\u6392\u961f\uff0c\u4f46\u7b49\u5f85\u4e24\u4e2a\u5c0f\u65f6\u5230\u5f00\u59cb\u65f6\u95f4\u548c\u7b49\u5f85\u961f\u4f0d\u7ea6\u4e00\u5c0f\u65f6\u90fd\u5f88\u8f9b\u82e6\u3002\u5230\u8fbe\u62c9\u65af\u7ef4\u52a0\u65af\u4e4b\u524d\u5df2\u7ecf\u8017\u5c3d\u4e86\u4f53\u529b\uff0c\u65e0\u6cd5\u575a\u6301\u5230\u6700\u540e\u53c2\u52a0\u6bd4\u8d5b\u3002<\/p>\n<h5>ARC411-R &#8211; [REPEAT] \u901a\u8fc7\u57fa\u4e8e\u7ec6\u80de\u7684\u67b6\u6784\u51cf\u5c0f\u7206\u70b8\u534a\u5f84<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">state machine<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">serverless (aws takes care av zone)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">zone based<\/ul>\n<\/li>\n<\/ul>\n<p>regional control plane -&gt; zone (zone control plane, data plane)<\/p>\n<p>well architectured framework<br \/>\ntenets<\/p>\n<p>minimize blast radius (spike, etc.)<br \/>\nserverless (lambda, kinesis &#8211; no zone based)<br \/>\ninfra as code<\/p>\n<p>analytics cell router -&gt; analytics cells -&gt; KINESIS -&gt; s3 for datastore -&gt; (engineer, asap, ml, etc.)<br \/>\ns3 -&gt; asap -&gt; detections cell router -&gt; detection cells -&gt; findings repos<\/p>\n<p>router<br \/>\ns3 event log -&gt; sns -&gt; (analytics cell router)[sqs -&gt; (lambda -&gt; dynamodb rules)] -&gt; analytics cells<br \/>\nrules<\/p>\n<p>load balancing, data segregation (source recognized source a to cell a)<br \/>\ndata replication (prod cells copy to test cells), blue\/green deployment<br \/>\nnever look s3? spof (\u3088\u304f\u308f\u304b\u3089\u3093\u304b\u3063\u305f\uff09<\/p>\n<p>cell<\/p>\n<p>apache flink checkpoint and save<\/p>\n<p>key takeways<\/p>\n<p>small vs. large<br \/>\ndesign for failure<br \/>\nthinnest possible layer<\/p>\n<h5>CON421-R -\u3010\u91cd\u590d\u3011\u89e3\u8bfb\u4e9a\u9a6c\u900a\u5f39\u6027Kubernetes\u670d\u52a1\u7684\u6838\u5fc3\u6280\u672f<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">under the hood<\/ul>\n<\/li>\n<\/ul>\n<p>eks managed vpc | customer managed vpc<\/p>\n<p>zone \u9593\u306f\u3069\u3046\u3075\u308a\u308f\u3051\u308b\u306e\u304b\uff1f -&gt; 53 \u3063\u307d\u3044<\/p>\n<p>eks celluar arch (1 cell = 1 aws account = frontend, cluster events, control plane management, etc.)<br \/>\npipeline -&gt; prow cluster<\/p>\n<p>enhancement<\/p>\n<p>managed node groups (single command, up to date, ha)<\/p>\n<p>simplify worker node management, self managed, k8s ecosystem tooling (autoscaler)<\/p>\n<p>vision (globally available, easy to use, production ready, cost-effective, high performance)<\/p>\n<p>snap service mesh on eks<\/p>\n<p>eks, envoy, switchboard, spinnaker<\/p>\n<h5>ARC335-R &#8211; \u3010\u91cd\u590d\u3011\u8bbe\u8ba1\u5bb9\u9519\uff1a\u5728AWS\u4e0a\u6784\u5efa\u5f39\u6027\u7cfb\u7edf<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">RPO, RTO -&gt; mission<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">tier 1, 2, &#8230;<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">well architected framework: shared responsibility model<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">resilient aws infra<\/ul>\n<\/li>\n<\/ul>\n<p>fault isolation zones: cell-based, multi-az<br \/>\nmicroservice<br \/>\ndistributed best practices: throttling, retry, circuit breaker<\/p>\n<p>strategy: backup &amp; restore (multi-region) high level rto, rpo<br \/>\nstrategy: pilot light<br \/>\nstrategy: warm standby<br \/>\nstrategy: active-active<\/p>\n<p>(one ex. read locally, write globally)<\/p>\n<p>s3 &#8211; cross-region replication<\/p>\n<p>replication time control (new! two weeks ago)<\/p>\n<p>ebs &#8211; snapshot copy<br \/>\ndynamodb &#8211; multi-master, multi-region (no complexity write globally)<br \/>\nrds:- cross-region read replicas<br \/>\ninter-region vpc peering -&gt; white paper<br \/>\nsnapchat<\/p>\n<p>99.99% (tier0), 99.95% (tier1), 99% (tier2), 95% (tier3)<br \/>\nlegacy<\/p>\n<p>monolithic, single region -&gt; multi-region active-active<br \/>\nrepl: dynamodb streams -&gt; stream service -&gt; other regions, etc.<\/p>\n<p>continuous resilience<\/p>\n<p>disaster recovery -&gt; chaos engineering -&gt; continuous resilience<\/p>\n<h5>KYN201 &#8211; \u661f\u671f\u4e00\u73b0\u573a\u76f4\u64ad<\/h5>\n<p>\u6ca1\u6709\u65b0\u7684\u4fe1\u606f\u5417\uff1f<br \/>\n\u6709\u4eba\u79bb\u5f00\u5ea7\u4f4d\u5f15\u4eba\u6ce8\u76ee\u3002<\/p>\n<h5>KYN202 &#8211; Andy Jassy\u7684\u4e3b\u9898\u6f14\u8bb2<\/h5>\n<p>\u8d85\u8fc765000\u540d\u4e0e\u4f1a\u8005<br \/>\n\u8d85\u8fc73000\u573a\u4f1a\u8bae<\/p>\n<p>! \u8f6c\u53d8<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u9ad8\u7ea7\u9886\u5bfc\u56e2\u961f\u7684\u575a\u5b9a\u4fe1\u5ff5\u4e0e\u4e00\u81f4\u6027<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u81ea\u4e0a\u800c\u4e0b\u7684\u5927\u80c6\u76ee\u6807<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u57f9\u517b\u4f60\u7684\u5efa\u8bbe\u8005<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u4e0d\u8981\u8ba9\u72b9\u8c6b\u963b\u6b62\u4f60\u7684\u5f00\u59cb<\/ol>\n<p>\u5728\u672c\u5730\uff1a97\uff05<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">user: goldman saches<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">comupute (nitro, chip)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">m6g, r6g, c6g instances (gravition chip)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">inf1 (infrantia chip)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">containers<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">fargate for eks https:\/\/aws.amazon.com\/jp\/blogs\/aws\/amazon-eks-on-aws-fargate-now-generally-available\/<\/ul>\n<\/li>\n<\/ul>\n<p>serverless<\/p>\n<p>data silos -&gt; data lake<\/p>\n<p>s3 access point https:\/\/aws.amazon.com\/jp\/blogs\/aws\/easily-manage-shared-data-sets-with-amazon-s3-access-points\/<\/p>\n<p>redshift ra3 instances with managed storage https:\/\/aws.amazon.com\/jp\/blogs\/aws\/amazon-redshift-update-next-generation-compute-instances-and-managed-analytics-optimized-storage\/<\/p>\n<p>elasticsearch service (ultrawarm) https:\/\/aws.amazon.com\/jp\/blogs\/aws\/announcing-ultrawarm-preview-for-amazon-elasticsearch-service\/<\/p>\n<p>database<\/p>\n<p>managed cassandra service (wide column) https:\/\/aws.amazon.com\/jp\/blogs\/aws\/new-amazon-managed-apache-cassandra-service-mcs\/<\/p>\n<p>ml<\/p>\n<p>usecase: health care<br \/>\nsage maker studio, notebooks, experiments, debugger, model monitor, autopilot<br \/>\nfraud detector<br \/>\ncodeguru (\u4e00\u756a\u76db\u308a\u4e0a\u304c\u3063\u305f\uff09<\/p>\n<p>contact lens for amazon connect<br \/>\nkendra<br \/>\nbreak on-prem barriers<br \/>\noutposts GA<\/p>\n<p>native aws or vmware cloud on aws<\/p>\n<p>local zones<br \/>\n5G<\/p>\n<p>8 capabilities<br \/>\nwavelength<\/p>\n<h5>SVS310-R1 &#8211; [\u91cd\u590d1\u6b21] \u4fdd\u62a4\u4f01\u4e1a\u7ea7\u65e0\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">speed + security<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">security: where to start?<\/ul>\n<\/li>\n<\/ul>\n<p>identity<\/p>\n<p>diy identity store &#8211; vulunerable<br \/>\nhashed &#8211; attask, salt hashed &#8211; &#8230;<br \/>\n(ok) ssecure remote password protocol (SRP)<br \/>\nAmazon Cognito (SRP, etc.)<\/p>\n<p>x multiple identities o centralize identity management and privilege management<\/p>\n<p>delegation: OIDC + OAUTH, federation: SAML, no long-term credentials, rbac<br \/>\ndelegation<\/p>\n<p>aws security token service -&gt; temporary iam creds<\/p>\n<p>jwt: identity token, access token, refresh token<br \/>\nleast privilege, iam condition<\/p>\n<p>access control to api gateway<\/p>\n<p>with cognito<br \/>\nallowed -&gt; jwt + context.identity<br \/>\nwith lambda authorizer -&gt; policy<br \/>\nothers<\/p>\n<p>basic request vailidations on api gateway: parameters, payload with JSON schema<br \/>\nCORS<\/p>\n<p>access control to dynamodb (iam, cognito condition), s3 (iam, bucket policies)<\/p>\n<p>s3 access point (multi access control)<\/p>\n<p>lambda<\/p>\n<p>shared responsibility model<br \/>\niam invoke, actions, assume<\/p>\n<p>common vulnerabilities: ddos<\/p>\n<p>aws shield<\/p>\n<p>common: OWASP top risks to web apps &#8211; XSS<\/p>\n<p>aws waf filtering rules<\/p>\n<p>common: SQL injection<\/p>\n<p>use prepared<\/p>\n<p>apply security at all layers<br \/>\nsecure coding practices<\/p>\n<p>accessing db creds: x hard coded, ! env or config file, o aws secrets manager, o iam authentication for amazon rds<br \/>\ndata api for amazon aurora serverless https:\/\/docs.aws.amazon.com\/ja_jp\/AmazonRDS\/latest\/AuroraUserGuide\/data-api.html<\/p>\n<p>monolitic functions -&gt; microservies + event-driven architectures (small functions)<br \/>\nowasp secure coding practices<\/p>\n<h5>STP203 &#8211; \u5f53\u4ee3\u521b\u4e1a\u516c\u53f8\uff1a\u63a2\u7d22\u5982\u4eca\u6700\u6210\u529f\u7684\u67b6\u6784\u3002<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">find and eliminate blockers and wait states<\/ul>\n<\/li>\n<\/ul>\n<p>remove human interaction, self service tools, abstraction layers allow for modular evolution<\/p>\n<p>enable your developers<\/p>\n<p>preparing hackathon<\/p>\n<p>everything continuous, all the time<\/p>\n<p>how long x takes?<\/p>\n<p>keep your systems simple<\/p>\n<p>gall&#8217;s law<\/p>\n<p>democratize your data<br \/>\ndevelop a culture of openness<\/p>\n<p>legacy: ecs containers<\/p>\n<p>goal: 100x clients, faster, more data<\/p>\n<p>shift<\/p>\n<p>docker -&gt; serverless, tdd, devops, devs, and QA are all one<\/p>\n<h5>CON323-R1 &#8211; \u5e94\u7528\u7a0b\u5e8f\u7f51\u683cAWS\u80cc\u540e\u7684\u6280\u672f\u89e3\u6790<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">working backward<\/ul>\n<\/li>\n<\/ul>\n<p>customer want: routing, observability, security, transparency<br \/>\narch<\/p>\n<p>proxy<\/p>\n<p>virtual node, virtual service, virtual router<\/p>\n<p>design<\/p>\n<p>frontend service, envoy management service, transformer<br \/>\nfrontend service<\/p>\n<p>authentication<br \/>\nauthorization<br \/>\nvalidation<br \/>\npersistence<\/p>\n<p>picking<\/p>\n<p>customer configuration\/metadata, relationships between resources, serializable cross-key\/table -&gt; JournalDB<\/p>\n<p>transformer<\/p>\n<p>mesh id -&gt; buckets (split brain -&gt; allow extra)<br \/>\nevent-driven processing<\/p>\n<p>reactive, efficient, creates backlog, requires reconciliation<br \/>\nlevel-driven processing: bounded workload (bimodal behavior), self-healing, less efficient<\/p>\n<p>envoy<\/p>\n<p>envoy data store<\/p>\n<p>synthesized envoy configuration, relationships node to manifest, eventually consistency, single key -&gt; dynamodb<\/p>\n<p>discovery &#8211; listeners &#8211; routes &#8211; secrets &#8211; clusters &#8211; endpoints<br \/>\nmanagement<\/p>\n<p>actor system(connection manager, manifest manager, aws cloud map, aws certificate manager)<\/p>\n<p>operations (canary)<\/p>\n<p>deployment: first (container images and cloudformation templates), second, remaining<br \/>\nmonitoring: rate, errors, duration (+ cloudwatch log insight)<\/p>\n<h5>AIM207-R5 &#8211; [\u91cd\u590d5\u6b21] \u5f00\u59cb\u4f7f\u7528AWS DeepRacer<\/h5>\n<h5>CON325-R &#8211; [\u5168\u65b0\u63a8\u51fa\uff01] [\u91cd\u8907] \u501f\u52a9\u4e9e\u99ac\u905c ECS \u80fd\u529b\u63d0\u4f9b\u8005\u5be6\u73fe\u4ee5\u61c9\u7528\u70ba\u4e2d\u5fc3\u7684\u601d\u7dad\u3002<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">orchestraction ecs\/eks, compute ec2\/fargate<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">containers: 150%+ growth, 80% share (cloud)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ecs internal customers (sagemaker, etc) &#8211; dogfooding<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">infrastructure first<\/ul>\n<\/li>\n<\/ul>\n<p>terminology: ecs cluster (namespace), ecs task (like pods), service (many tasks)<br \/>\nstart ec2 instances first, and then run ecs tasks (infra first)<br \/>\ntask placement: available instances -&gt; resources (like resource limit) -&gt; placement constraints (like affinity) -&gt; strategy<br \/>\ninfra first: available instances not found, spread placement strategies, scaling (cloudwatch metrics -&gt; alarm auto scaling groups: metrics are based only on existing tasks and resources)<\/p>\n<p>application first<\/p>\n<p>tenets: applications own their requirements, infrastructure responds to application requirements<\/p>\n<p>ECS Capacity Providers<\/p>\n<p>ecs cluster ( ecs cp ( ec2 asg (ec2 instances)))<br \/>\necs cp<\/p>\n<p>abstracts capacity<br \/>\n0-10 \/cluster<br \/>\nused by tasks\/services<\/p>\n<p>run tasks under cp without instances -&gt; instances start -&gt; tasks placed<br \/>\nec2 spot \/ fargate spot<\/p>\n<p>price up to 90%\/80%<br \/>\nreclaimed by ec2\/ reclaimed<br \/>\ninstances pools\/automatic<\/p>\n<h5>ARC349-R1 &#8211; [REPEAT 1] \u8d85\u8d8a\u4e94\u4e2a9\uff1a\u4ece\u6211\u4eec\u6700\u9ad8\u53ef\u7528\u7684\u6570\u636e\u5e73\u9762\u4e2d\u6c72\u53d6\u6559\u8bad<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">api caller -&gt; | (api) control plane &#8211; config -&gt; data plane (server) | &lt;- client<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">10 patterns<\/ul>\n<\/li>\n<\/ul>\n<p>insist on the highest standards<br \/>\nraise the bar for testing<\/p>\n<p>1000s unit tests, 100s integration tests, pre-prod env, roll-forward\/back testing<\/p>\n<p>be technically fearless<\/p>\n<p>mitigate fear with professionalism, testing, and open-@minded scrutiny<br \/>\naws lindbergh award<\/p>\n<p>modeling<br \/>\nfocus on blast radius<\/p>\n<p>shuffle sharding https:\/\/aws.amazon.com\/jp\/blogs\/architecture\/shuffle-sharding-massive-and-magical-fault-isolation\/<\/p>\n<p>modular separation<br \/>\ndouble down on simplicity<\/p>\n<p>saying no to many features,<\/p>\n<p>unreasonable redundancy<\/p>\n<p>striping, shuffle sharding<br \/>\nteeny cache<\/p>\n<p>static stability<br \/>\ndegrade gracefully<\/p>\n<h5>KYN204 &#8211; \u7531Werner Vogels\u535a\u58eb\u4e3b\u8bb2\u7684\u4e3b\u9898\u6f14\u8bb2<\/h5>\n<h5>DOP210-L &#8211; \u9886\u5bfc\u529b\u7814\u8ba8\u4f1a\uff1aAWS\u4e0a\u7684\u5f00\u53d1\u8005\u5de5\u5177<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">external\/internal, builder.tools<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">dev\/test<\/ul>\n<\/li>\n<\/ul>\n<p>delivery: dev\/test -&gt; review -&gt; pre-production -&gt; production<br \/>\ndev\/test<\/p>\n<p>use cloud desktops at amazon<br \/>\nuse cloud9 internally<br \/>\nsupport aws toolkit for third party IDE<\/p>\n<p>debugging timeline 30min -&gt; 10 min<br \/>\ndemo<\/p>\n<p>review<\/p>\n<p>codecommit supports approval rules<br \/>\ncodeguru review\/profiler<\/p>\n<p>ci\/cd<\/p>\n<p>2001: monolith -&gt; 2002: 2-pizza teams (devops, full ownership, full accountability, focused innovation)<\/p>\n<p>delivery pipelines (dev tool team)<\/p>\n<p>delivery: source -&gt; build -&gt; alpha (pre-production, automated tests) -&gt; beta (pre-production, automated integration tests, load\/perf tests, browser tests) -&gt; gamma (pre-production, automated integration tests, synthetics tests, api smoke tests) -&gt; one az\/fractional (production, synthetic monitoring) &#8230; -&gt; one region&#8230;<br \/>\ndelivery is pessimistic<br \/>\npipeline blockers: time windows, pipeline policies, ocverage, review, security scans, dependency updates, etc.<\/p>\n<p>modern applications<\/p>\n<p>monolithic -&gt; n-tier -&gt; micoservices &amp; serverless<br \/>\naws cdk<\/p>\n<p>a look ahead<\/p>\n<p>security<\/p>\n<h5>SEC209-R1 &#8211; [\u91cd\u590d1] \u5f00\u59cb\u4f7f\u7528AWS\u8eab\u4efd\u786e\u8ba4<\/h5>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">before the cloud (firewall, etc.) -&gt; in the cloud (iam)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">iam roles: recommendation &#8211; have at least admin and readonly<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">authentication and authorization<\/ul>\n<\/li>\n<\/ul>\n<p>iam role -&gt; resource<\/p>\n<p>short-term creds for iam role<br \/>\nif any policy denies -&gt; access denied<br \/>\nif some policy allows -&gt; allow<br \/>\notherwise denied<\/p>\n<p>cross account: recommendation &#8211; keep it simple<\/p>\n<p>resource based policy<br \/>\nrole trust policy<\/p>\n<div>\u5185\u90e8\u90e8\u7f72\u76ee\u524d\u4ecd\u5360\u636e\u4e8697%\uff0c\u6240\u4ee5\u53ef\u4ee5\u8bf4\u662f\u5728\u53d6\u5f97\u5185\u90e8\u90e8\u7f72\u7684\u8fdb\u5c55\uff1f<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u53c2\u52a0\u4e862019\u5e74\u7684AWS re:Invent\u6d3b\u52a8\u7684\u603b\u7ed3\u3002 \u5370\u8c61 \u56e0\u4e3a\u5728\u8bbe\u8ba1\u4e2d\uff0c\u6211\u6ce8\u610f\u5230\u4e86\u4e00\u4e2a\u5173\u952e\u8bcd&#038;#8221 [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-50445","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/2019\u5e74aws-reinvent\u4f1a\u8bae\u7b14\u8bb0\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0\" \/>\n<meta property=\"og:description\" content=\"\u53c2\u52a0\u4e862019\u5e74\u7684AWS re:Invent\u6d3b\u52a8\u7684\u603b\u7ed3\u3002 \u5370\u8c61 \u56e0\u4e3a\u5728\u8bbe\u8ba1\u4e2d\uff0c\u6211\u6ce8\u610f\u5230\u4e86\u4e00\u4e2a\u5173\u952e\u8bcd&amp;#8221 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/2019\u5e74aws-reinvent\u4f1a\u8bae\u7b14\u8bb0\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-06T20:31:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T22:31:00+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/\",\"name\":\"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-06-06T20:31:26+00:00\",\"dateModified\":\"2024-04-29T22:31:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/2019\u5e74aws-reinvent\u4f1a\u8bae\u7b14\u8bb0\/","og_locale":"zh_CN","og_type":"article","og_title":"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0","og_description":"\u53c2\u52a0\u4e862019\u5e74\u7684AWS re:Invent\u6d3b\u52a8\u7684\u603b\u7ed3\u3002 \u5370\u8c61 \u56e0\u4e3a\u5728\u8bbe\u8ba1\u4e2d\uff0c\u6211\u6ce8\u610f\u5230\u4e86\u4e00\u4e2a\u5173\u952e\u8bcd&#8221 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/2019\u5e74aws-reinvent\u4f1a\u8bae\u7b14\u8bb0\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-06-06T20:31:26+00:00","article_modified_time":"2024-04-29T22:31:00+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/","name":"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-06-06T20:31:26+00:00","dateModified":"2024-04-29T22:31:00+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"2019\u5e74AWS re:Invent\u4f1a\u8bae\u7b14\u8bb0"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/2019%e5%b9%b4aws-reinvent%e4%bc%9a%e8%ae%ae%e7%ac%94%e8%ae%b0\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=50445"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50445\/revisions"}],"predecessor-version":[{"id":90270,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50445\/revisions\/90270"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=50445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=50445"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=50445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}