---
# System prepended metadata

title: landing 課程——Kris

---

# landing 課程——Kris
best practice為出發點去建立一個架構，沒有「最好的」，看客戶考量以及面向
1. 成本


## Core Knowledge
### 什麼是雲
* On-premise vs Cloud（不需要採買設備、容易擴展、）
* CLoud deployment（全在雲端、混合雲）
    * 新創的多選擇All-in Cloud，可以自己培養有關使用服務的技能
    * 中大型的企業，已有機房的

### 為什麼AWS
* Cloud Compute Platform
* 開發、程式為出發導向（S3是第一個服務）
* Dynamic abilities，即時動態，易於做調整
* Pay as you go

* Aws幫我們顧了：
    * DataCenter
    * Power
    * Cooling
    * Networking
    * Servers
    * Storages
    * Labor
我們不需要去和安裝、不需要setup、不需要機房
不需要去猜測用戶的capacity
可以很快部署到全球、使用者體驗會更好（香港距離台灣最近）


### 六個優勢of cloud computing
* Performance 效能
* High Availability 高可用性
* Security 安全
* Reliability 可靠
* Scalability 容易擴展
* Low Cost 低成本


### AWS Global Infrastructure
* Data Center裡面有很多機櫃
    * 只有一個的話DC的話，壞了就完了，所以需要第二個DC
    * 5-8萬台server
    * 沒有冷機房（Cold Service）的概念，全部都在服務客戶
* AZ
    * 把很多DC框起來組成AZ
    * 不會只有單個AZ，如果發生單點失效（Single point failure）也就完蛋
    * AZ之間要溝通，latency控制在2ms以下
    * AZ之間來做redunnancy容錯機制
    * 可以在aws選擇到的最小範圍-》ec2 VPC···
    * 
* Region
    * 由multiple AZ組合起來
    * 技術上來說至少兩個以上AZ，但是官方有的只有一個AZ（local-region·Osaka）
    * Region之間完全獨立
    * 怎麼選擇：Low latency、Cost Optimezed（不同region有cost差別）、Compliance and matching policy（當地相關資訊是否能流出台灣）、Service limit
* Edge location
    * 透過合作去擴展，沒辦法在當地佈建
    * 第一次request跑第一條線，之後就會在中節點儲存資料方便之後存取（CDN概念）
    * Route 53也是要低延遲
    * 快速反饋運算資源（Lamda直接幫你處理·影像轉檔）




* Manged service
    * 非託管服務 vs 託管服務
        * 非託管，我們需要manage：EC2、環境、Data、Applications、備份、拓展（變大或是變多）
        * 託管，AWS幫我們：備份、optimize、cloud migrations、存儲、server安全性、server support
        * 託管的成本比較高（好聽一點：減少人力成本、維運資源）

### Shared Responsibility Model
* AWS提供給你平台，事情的安全性是有user負責

### 考點
* Shared responsibility Model
* Region
* AZ
* Edge Location



---
## Identify and Access Management（IAM）（Resource base）

### What is IAM
* Securely control to AWS resources
    * authenticated (signed in)
    * authorized (has permissions)
    * 不要用Root user去執行任何東西，除了建立第一個IAM User

### Accessing IAM
* AWS Management Console
* AWS Command Line Tools
* AWS SDKs
* IAM HTTPS API


### Better Way to Administrator
* 我怎麼相信那個人可以透過CLI取得資源
    * multi-factor authentication (MFA) 
    * 有一個credential（AK·access key/SK·Secret Access Key）
    * 不建議有root account概念，要把credential key刪掉lock away
    * 可以把權限開給Admin User


### IAM User
* not a seperate account;是你帳號內的User
* 每個user都有自己的password或是access key去是用aws的resource
* 
* 可以有kris（Admin）、Amy（Admin）、Bob（Read only）···
* 一個一個改很麻煩，所有出現「Group」做管理面，把admin的弄成一個組，read弄成一個組，
* 最小權限原則
* 沒有default的權限，代表去哪一個頁面都還是permission denied
* Increase security with MFA
* 「Role」裡包含了User和Service
* 一個user可以參加很多group
* AWS上的resource預設上是不能溝通的
* 通常會用credentialkey，但是不好，所以拉出來變成IAM Role，透過STS去做key rotate（15分鐘最小），像是一頂帽子，代表一種身分
* role設定可以用ec2，ec2只可以去用S3
* STS產生暫時的AKSK，15-90min（假設15分鐘，但是程式跑了16-20，所以STS可以延長key15分鐘的時間，變成30min，接著就會產生key2）
* switch role是以user的角度進來看，A團隊與要稽核B，所以B可以用AccID去允許A團隊裡面的user查看東西，也可以再switch role
* User沒有credential，而是透過STS代替

* Identify Providers and Federation 信任他人的驗證機制（信任別人過來的東西）
    * 設定好驗證關係，不會再透過AWS的驗證，進來後直接派STS給你
    * Google、Facebook
    * SSO（串到公司的AD）-透過SAML2.0驗證


### Identity-Based Policy（對人、群組）
* How to set permission
    * IAM Policy：Grant permission to AWS services（全新的）、JSON format（客製化）、？
    * inline policy是不能被重複使用的

### Resource-Based Policy 從服務來說
* 他是inline，獨立於每個服務上面
* Check Permission
    * 先問你有沒有預設denied，如果denied就Deny你，如果No的話就問你有沒有Allowed，如果有就Allow，沒有就Deny
    * Deny 》 Allow
https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html

    * 
### Manage multi-accounts
* Scenario
    * 每個人獨立acc，管理上來說不方便$$$
    * AWS Organization
        * 我們用來管理客戶
        * 集中管理
        * 帳單的整合方便，可以享有規模經濟
        * policybased的SCP·service control policy：跟IAM（user、group、role）的不同，他管理的是account level，直接限定你這個帳號可以用哪些service，在底下的也只能接受。
        * 交集的概念

### Amazon Cognito
* Amazon Cognito Introduction
    * 提供authentication、authorization

* User Pool
    * build-in

* Identity Pool
    * create unique identity
    * Assign permission
    * temporary credential
    * Amazon API Gateway

### Conclusion
* 不要rootaccount
* 最小權限優先

---

## Amazon Simple Storage Service（S3）
### 什麼是S3
* 雲端儲存空間：secure、durable


* Durability and Availability
    * 資料從不同的AZ寫入
    * 99.99999999999%（11個9）
    * 10000個檔案放10000年，只會壞掉一個
    * 必須放在三個AZ才會造就11個9（如果沒有三個AZ，那就有一個AZ要放兩份）
    * 資料一致性
        * 備份的三份，會接近同時放在不同AZ
        * V1更新成V2的過程中，我們有機率拿到V1的，但是我們要V2，所以會有設置一個塔點，只丟給你V2，這個是所謂的「強一致」
        * 「最終一致」：拿錯了再丟回去，拿對的，這個速度比較快，我們也喜歡這個
### S3 Concept
* Bucket
    * Unique globally名字獨一無二，因為是url
    * Region level
* Object & Keys
    * file、video、image
    * data & metadata
    * code 200 = 成功
* Key-value Store
    * Object based（絕對路徑）
    * Key
    * Value
    * Version ID（如果有起版本控制，不會蓋掉舊的，但是只給你看新的）
    * Metadata
* Prefic
    * object keys in S3 are partitioned by prefix
    * 利用雜湊去加強那個效能，避免資料都在同一個區域做提取（資料熱區）
* Regions
    * 
* Consistency Model（最終一致）
    * Read after write for put 新物件
* Hierarchy and limits
    * Bucket 上限100
    * Object 5TB一個Object
    * PUT Operation 5GB per PUT

* 怎麼丟到S3（就那三個方式Console、CLI、SDKAPI）
* Multipart Upload

* Transfer Acceleration 加速器
    * S3透過url去request，所以速度取決於網路的速度
    * 所以資料先傳到台北的edge location 之後再用AWS CloudFront傳到S3，相對穩定，但是latency取決的距離，不列入討論

* 其他
    * The Snow family（減少資料傳送到AWS的時間，用LAN）
        * Snowball：PB-scale data migration
        * Snowball Edge：Compute & Storage for Hybrid/Edge workloads
        * Snowmobile：ED-scale data migration

* Access Control of S3
    * Access Control
        * Private是「預設」的，只有我自己知道bucket的位置，但是不知道內容
        * Public，可以看到內容，也可以下載
        * Access Policy：Acccess ControlList（acc底下的IAM或是User） / Bucket control
        * S3 Block Public Access：

* Static Web Site（靜態網站託管）
* CORS（Cross-Origin Resource Sharing）（跨域存取）
    * 防止破圖出現

### Amazon S3 Storage Classes
* S3 Standard
    * 基本配備
* S3 Intelligent-Tiering
    * 自動判斷你的檔案有沒有被access，aws幫你的，這個功能不收錢
* S3 Standard IA
    * 上傳的時候，被存取和使用的情況很小（30天以內不動為基準）
* S3 One Zone IA
    * 只存在一個AZ，不在意11個9
* S3 Glacier
    * 封存檔案，像是Log檔案(磁帶機概念)，解凍時間給你選（5-12min、5-12小時、12小時以上）
* Deep Glacier
    * 差別在解凍時間

### Using Versioning
* 預設disable，變成enable之後就回不去了，因為開了之後就會有version ID，給你取消的話，無法判斷誰新誰舊，你只能暫停

### MFA Delete
### Protecting Data Using Encryption
* 傳輸過程中：加密
* S3Managed Keys
* 用KMS，User自己有鑰匙，丟給KMS管理

### Lifecycle Management
### S3FS/Goofy
    * 不建議，因為S3不適合做file system
    * S3用來做storage

---

## EC2
### EC2
* AMI（你的系統）
* Instance type（t測試，c·compute，m·memory）（數字是第幾代）（最後的是幾核心和多少容量）
* Ec2 Metadata
    * 知道這台機器的DNS net
* Lauch EC2 with User Data（在Advanced Details點開）
    * 預先跑一些腳本
    * 只有第一次create會用到
* 可以將Metadata和Userdata結合
* pricing Options
    * On-demand（牌價）
    * Reserved Instance（合約（一年開滿7成的時間就可以買）
    * Spot Instances（短期需求，競標）（2分鐘前通知你）（撈資料1～6小時，每個小時價位不一樣）
    * Schedule Reserved Instance（排班制度）（只開某個時段）
    * Dedicated Instance（專屬的，Host上面只跑你一台主機）
    * Dedicate Host（直接買整座Host）


### EBS
* Block storage（S3是Object導向的）
* EBS type：SSD（gp2）、HDD
* Snapshot 備份（備份了只是備份硬碟，不會是EC2）
* Instance Storage（但是不會想筆電那樣，硬碟就在自己身上，所以實體主機開起來要找到硬碟就要靠掛載EBS）（有些就會有自己本身的硬碟）
* network performance
* EBS-optimized，yes的話就是讓你有多一張網卡來管理EBS


### EFS
* share files between EC2
* EFS vs FSx（他們的protocol不一樣）
    * EFS是linux workloads（NFS）
    * FSx是windows workloads（SMB）



---
# 20190704
## 昨日複習
* 【MI】Region | AZ | Data Center | Edge location
    * 2個AZ以上
    * 計價
        * 運算
        * 存儲
        * 流量 network
            * Data transfer in 傳上去不收錢，因為用的是自己的資源
            * Data transfer out 用AWS的資源（骨幹網路）拉下來，所以給錢

* 【M2】IAM——User、Group、Role
    * 控制是在AWS or ~~地端~~？ ANS：控制AWS的resource或是service
    * create 一個user，Default的permission是denied的
    * Group只是組隊的概念
    * 如果想要透過console和CLI控制的話，須透過credential key來代表permission
    * Role
        * 一個帽子，帽子本身賦予權限，被暫時賦予身分
        * STS，給他暫時的credential keys

* 【M3】S3
    * 一致性
        * 最終一致
        * read after write（必須完全寫入後才能讀取，還在寫入過程中無法讀取）
    * 特性
        * 耐久度（11個9，因為至少分在3AZ）
        * 如果不夠三個AZ，就在某一個AZ儲存多一份
        * 每個人的1a、1b、1c，各個所在地都不一樣
        * 有自己的URL，必須先public才能被看到，default是private的
        * ACL
            * 帳號
            * 使用者
            * Bucket policy
        * 靜態網站的掛載
        * CORS
        * 儲存的策略
            * S3 standard
            * S3 standard IA（30天以上便來這裡，可以投過intelligent tier幫你轉換）
            * Glacier（Log·防止竄改·利用vault lock·24小時考慮時間要不要上鎖·之後就不能再換鑰匙或是取消）
        * life cycle（不朔及既往）
    * 安全性
        * S3-Key
        * KMS

* 【M4】EC2——一個軀殼，看你塞什麼給他
    * AMI
        * 4種取得方式
            * aws的
            * 自己的
            * marketplace的
            * 社群提供
    * EBS（snapshot）
        * 透過網卡網路掛載到EC2
        * 一台EC2可以有多個EBS
        * 一台EBS只能對到一個EC2
        * 他是Instance storage，速度比較快，但是會有遺失的危險）
        * high parallel computing
    * Pricing（6）
        * On-demand 牌價
        * RI
        * spot
        * Schedule
        * ？
        * ？

---
## Module 5:Database on AWS
設計面向：把主要的工作專注在核心業務上，所以維運部分交給AWS處理
### Introduction
* two type
    * Relational DB（重要觀念，不能竄改）
        * 每一個項目都很標準，對應到的是誰
        * 速度慢
        * schema固定
        * 標準語法
        * Scalability：Vertical（單一個體的變大變小，壞了就88）
    * No-SQL Database
        * 速度快
        * Scalability：horizontal（好幾個個體的分散式存取）
        * Key-value Database
            * 新增schema比較單純且容易
        * In-memory Database
            * 吃你的記憶體
        * File DB
            * AWS提供的服務
            * 開源服務
        * Graph DB
* 如果你選擇RDB
    * strict schema
    * 不需要很多的讀取寫入
* 選擇No-SQL
    * 需要很多的讀取寫入
    
    
### Relational Database（AWS RDS）
* 全託管服務，開起來後維運部分AWS幫你
* 開很快
* scaling vertical只需要點幾下
* 不能操控OS level的設定
* 不能設定讀寫速度，因為基地是EC2，放在EBS裡面，已經定義好了
* Security
    * AWS Direct Connect
    * IG
    * VPN Connection
    * Peering
    * Routing rules
* Use Case
### No-SQL Database（DynamoDB）
* 全託管服務，開起來後維運部分AWS幫你
* 通常會搭配serverless computing（Lamda···）
* scaling horizontol
* On-demand Read / Write capacity（動態調整，也可以設定讀寫速度）
* Primary Key
    * 主要查照看PK
    * Sort-Key看個人選項，與Partition Key兩個結合成PK
* Global Table（分散式存儲）
    * 在不同region設表
    * latency是很大的因素考量，你不會想要跑很遠去拿資料
* Security
* 分散式存儲
    * 最終一致
        * 速度快（5x），但是可能拿錯
    * 強一致
        * 速度只有一倍
### Database Migration
* 從A到B，最快是接上網路
    * 可以接受停機時間的話：把他dump出來變成一個file，在弄去B
    * 不停機的話：再考慮「Migration」
* 支援EC2、RDS、地端on-promises
* 地端往雲端搬遷
    * 地端DB持續在線上做服務
    * 所以啟用DMS，扮演EC2的角色，讓地端把資料送上來後，再放去雲端
    * 接近即使的幫你做data的轉移
    * 如果要完全上去，就要定義一個維護時間
* Snowball Edge
* DMS


---
## Module 6:Virtual Private Cloud（VPC）
最底層跟發想的設計環節，延伸地端的使用環境
地端host要跟AWS公有雲結合，透過VPC框起來
### What is VPC
* 預設會有一個VPC，防止你不知道怎麼部屬
* AWS上的虛擬環境網路（你的土地）
* 有預設的IPv4 or IPv6
* CIDR ranges
    * /16；最大16，
    * /28；最小28
* VPC之間不能互相溝通
* 可以跨AZ，避免single point of failure（單點失效）

### IP
* 8bit·8bit·8bit·8bit
* CIDR：


### Subnet（路段的劃分）
* network裡的區段，用CIDR range區分
* 建議large subnet over small ones
* 5個ip位置會被佔去（每切一次都會喪失以下五個）
    * 10.0.0.0:
    * 10.0.0.1：AWS保留給VPC router
    * 10.0.0.2：保留給DNS
    * 10.0.0.3：AWS保留給未來使用
    * 10.0.0.255：broadcast address，沒效率
* Route Tables
    * 分成對外和對內的表哥
        * Public Subnet：IGW
            * 只需要打名稱，不需要做其他設定
            * EC2透過IGW連到外面
        * Private Subnet：NATGateWway（轉址·內轉外）
            * NAT Instance：
                * 根據你的EC2大小決定效能
                * 你可以自己「轉port」
                * 放在public的subnet裡，APP或DB發東西給NAT·I變成8·8·8·8，再透過IGW出去
            * NAT Gateway：不支援~~轉port~~
                * 你要自己開，然後自己弄EIP
                * Best Practice會建置這個
### Networking
* Elastic Network Interfaces
    * 他是一個網卡，你可以獨立申請，客製化或是AWS給你固定IP位置，獨立IP
    * 可以設定public，也可以private

* Elastic IPs
    * 預設會從pool裡面選一個給你；也可以自己設定
    * 收錢的（關機一個月3.6，開機不收錢因為收了機器錢）
* Security Group（要跟NACL比較）
    * 軟式的防火牆
    * **stateful** 狀態的，預設是**denied**
    * 別人透過IGW進來還是會被擋下來，只有符合我們設定的port才能進入EC2
    * 預設進得來就是出得去
    * Secure Chain
        * 一層信任一層，但是如果設定不好就會被繞道攻擊
* Network Access Control Lists（NACLs）
    * 在subnet的防火牆，人家到subnet就檢查
    * 預設都可以隨意進出
    * **Stateless**，預設就是隨意進出

* VPC-Flow Logs
    * default是關起來的
    * 管理log檔案的details
    * 有需求在開起來排除


---
## Module 7:VPC Connections，ELB and Route53
VPC和地端做連結、溝通、轉址

### VPN
* 保護資安所使用
* 原則是封包，沒有加密就是明碼的，就會被攻擊擷取；所以會有一個key，兩端都有同樣的key才會形成一個VPN Tunnel來做到加密溝通
* Virtual Private Gateway
    * 跟IGW，沒有多餘的設定
    * site-to-site的VPN
    * VPC回家的一扇門
    * 設定好後，要告訴他Customer Gateway
* Customer Gateway
* Site to site VPN Connections
    * 取得一個txt檔案，回去地端設定
    * 他會多兩條Tunnel以達到HA，但是要設定啦

### Direct Connect（專線）
* What is AWS DX
    * 提供給你**穩定**的品質（不是快）
    * from you permissions to AWS
* DX Location
    * 在世界各地都有location
    * 好處
        * cost
        * 平穩
        * 可是透過這個使用所有AWS的資源

### VPC Peering
* 兩個不同的VPC之間，default不能互相溝通
* 要溝通就用**VPC peering**
    * 對方可以接受或是拒絕
    * 沒有網路頻寬限制，因為是AWS內部的
    * 不需要IGW和VGW
* Architecture

### Transit Gateway
* 如果VPC從2變成200個，要怎麼處理讓他們溝通
* 就用Transit Gateway，上限5000個，但是會有多一張Routetable

### VPC Endpoints
* Privately connrct VPC 去其他AWS服務
* 不需要IGW、NAT devices、VPN connection、AWS Direct Connect
* 兩個type：
    * Interface Endpoint
        * 可以自己去新增服務
    * Gateway Endpoint
        * S3
        * DynamoDB

### Elastic Load Balance（ELB）
* Distributes incoming traffic across multi target
* 最小暴露原則（3變成1）
* 好處
    * Secure（可以把原本EC2負責的加減密的動作給ELB減密）
    * Elastic（背後是EC2在做事情）（在某個時間先預熱EC2）
    * Flexible
    * Monitoring
    * Hybrid
    * Health Check
* Type of ELB
    * Application Load Balance（ALB）
        * 根據不同的標籤屬性（Header），導入到不同群組（不同處理）
        * 在第7層的網路協定
        * microservice的設計架構，但是透過不同的網路技術來輔助我達到我的技術
        * 支援Lamda
    * Network Load Balance（NLB）
        * **支援你幫一個固定IP**--為了設置白名單（Target Group）
        * 長時間要跟某一個連線
        * 第四層網路協定
    * Classic Load Balance（CLB）
        * 機制是run robin（輪流）
        * 如果可以的話，全部王VPC搬會比較好（安全機制）

### Route 53
層級拉到region，做名稱的解析

* 一次買一年
* Route internet traffic
    * 根據routing policy去把客戶導向不同的VPC
* Check the health of your edmpoint
    * Route 53監控ELB健不健康，ELB去看EC2健不健康，可以繞道
* Multi routing policy


---
## Moduel 8:Monitoring

### Cost Optimizing
* 講白了就是Auto Scaling
### Pricing
### Security
### Log analytics
### Monitor On-Premise vs Monitor on Cloud


---

## Moduel 8-1:Monitoring on AWS
### CloudWatch
* 紀錄Log
    * 可以往外拋到S3
    * CloudWatch可以幫你Filter，進去做event
* 紀錄Metrics
    * 各項服務的Dashboard的metrics
    * 圖形化metric（ELB）
* Alarm通知（預期以外）
    * EC2（CPU Storage增加或減少）
    * CloudWatch（知道了就觸發Auto & SNS）
    * Auto Scaling Group（增加或減少EC2）
    * SNS
        * mail
        * 簡訊
* 觸法Event
    * 被動
    * 設好條件，看有沒有「特徵吻合」
* 觸法Rule（預期內）
    * 主動設定條件，當條件吻合才會通知

* Cloud Watch Agent
    * 裝在EC2
    * OS layer
    * on-premises 也可以用（磁碟往外丟）
* CloudWatch event-Target
* CloudWatch event-Configuration

## CloudTrail
* 標的物是人和API
* 知道User activity和API使用（90天）
* 他可以幫你導向到config看resource
* 不同region會記錄自己的東西到S3，所以要換region才可以看


## Config
* 標的物是resource
* 目標是讓你「持續合規」（continue compliance）
* 設定

## Athena
* 快速透過fuction去查看S3資源
* query你要的資訊

## SNS
* Reliably deliver messages with durability
* Keep messages private and secure
* 面向
    * email
    * mobile
    * lamda
    * SQS（microservice 做serverless的一個角色）

---
## Module 9:Elasticly
重點兩個
### 彈性的架構
* 採買設備
* Three tier architecture
* multi layer（根據需求）（彈性）
* HA
    * 避免單點失誤
    * 
### AutoScaling
* EC2
    * Scale up and down
    * Horizontal scale
    * Automaticly
* EC2
* Cloud watch
* SNS

* Setup Auto Scaling
    * Select AMI（開機器的劇本）
    * Create Launvh Configuration or Launch Template
    * On-Demand or Spot（牌價問題）
    * Desire Instance
    * Scale Policy（CloudWatch monitor的數值）（>50%要開台）（大於70%，維持5分鐘，開三台）
    * Notification（SNS）
* Launch Tempelate
    * 可以launch兩台不同大小的


*如果40%以下，要砍機器的default順序，當然你可以動態調整
| Auto Scale-in | policy | Column 3 |
| -------- | -------- | -------- |
| 1.平衡AZ裡instance的數量    | Text     | Text     |
| 2.砍舊版     | Text     | Text     |
| 3.離下一個計費週期最近的     | Text     | Text     |
| 4.隨便     | Text     | Text     |
* Auto Scaling 
### RDS和DynamoDB的Scale
* RDS
    * 長大還有變小
    * 停機時間
* RDS replica database
    * 只給你「讀取」副本（不同的AZ）
    * 「寫入」直接找master
    * 1 master對 5個readReplica
* Dynamo DB
    * Scaling on DynamoDB
* Read/Write Capacity Mode
    * On-demand
        * 不知道workload
    * Provisioned
---
## Module 10:Caching(快去/暫(緩)存)
* 減少提取的時間
* 交付時間越長，損失的交易機會越大
* 好處
* Types of Content
    * 靜態：圖片、字、影片（可以放在S3）
    * 動態：必須做動態的查詢，所以不能cache
* user - web - app - DB
* Type of Caching
    * Client Side（cookies，影像層面在你的電腦）
    * Server Side（把loading放在快去）
* 

### Caching Overview

### Edge Caching
提供一個地方，紀錄常常使用的東西
* Co-location
* CDN
* Amazon CloudFront
    * 不一定只能建立在AWS上，地端環境可以只單獨使用CDN，速度取決於企業的頻寬
    * 支援WebSocket的protocol（不用三向交握，握一次就好）
        * 主要用在IOT、邊緣運算
    * Setup
    * TTL（放在edgelocation的時間，預設一天，單位是秒）
* Session Management - Stateful
    * 
### Database Caching

### 


---


## Module 11：Automation
### 為要自動化
* 避免人為犯錯
* 降低人為失誤
### CloudFormation（for Infrastructure自動化的工具）
* 簡化基礎設施（IAC·Infrastructure as code）
    * 提供template給CloudFormation，堆疊起來建立你的基礎設施
    * 之後會介紹-Change Set、Stack back
    * 好處
        * 測試成功後，可以直接套用
* 只是JSON、YAML
* Design Concept
    * 希望分散成不同的template，除錯比較方便


### Elastic Beansatlk（懶人包、新手包）
* 他是一個懶人部署，可以幫你建立基礎的環境（）


### SystemManager
### OpsWork


---
## Module 12:Container

### Application Enviroment Compenents
* 不同開發面向，不同環境
* VM以OS為基地，要選作業系統，的獨立性高


### Container vs VM
* 實體的電腦還是要有自己的OS，當你要裝一個VM，Hypervisor要去跟OS溝通，OS要跟Host hardware要求空間資源，效率相對不好
* VM又要有自己OS，所以弄起來相對慢
* Docker不在乎你的底層OS是什麼，他用起來的APP不是一個VM，是一個process

### Concepts of Docker
* Image （開機器的映像檔，但是每次開起來只能讀）
* Container
* Registries（放映像檔的地方）
    * Docker HUB
    * Amazon ECR

### Amazon ElaticContainerService
* 幫你做cluster的管理（EC2上cluster的管理），當你在效能不夠的時候，他可以幫你開機器（準從你的規定）
* ECS看EC2，只認得他是可以跑container的環境；至於能跑多少，就要看EC2怎麼告訴ECS
* ECS Workflow

* auto scaling有兩個層面
    * container自己的
    * ec2的

### AWS Fargate
你不需要去管理ec2的動態在資源調撥，但是比較貴

### Kubernetes
跟ECS很像

### EKS
* 針對ec2的auto scaling

### CNI（Container Network Interface）
* 如何在一台機器跑不同的container
    * 每個container都要有自己的網路卡，讓ec2知道進來後要去哪裡
    * 對外都是連到CNI出去ec2的網卡

### ECS vs EKS



---
## Module 13:Serverless Architecture
* Architecture Efficient
### Going serverless

### AWS Lamda（按次數算錢）
* 全託管服務
* 事件觸法的概念，你沒安排就沒事做
* 好處
    * automatic scaling
    * No Infastructure to manage
    * 省錢
* 程式最長只能執行15分鐘（時間不夠就去call下一隻Lamda）
* 大部分的AWS的service都可以觸發Lamda
* Lamda 預設不在VPC裡面，不過你可以設定讓他在VPC裡面，透過NATgateway或是NATinstance連到外面去
* 底層是ec2里的container，跑在AWS的firecracker，所以很快被觸發執行
* Best Practice
    * 跟Role借credential key，用完就走了
* SQS
    * 把暫時不用存取的data放進去，之後再一次性的丟到後面處理
* 平行觸發、順序觸發、ifelse觸發

### Amazon API Gateway
* 可以接ec2、lamda和一些http base的application
* 可以管理REST的endpoint
* Serverless Application Model（SAM）
    * 把一個東西拆成很多部分執行，解耦合
### AWS Step Functiona

### AWS X-Ray
* 自我檢查、分析
* Default是關起來的
* 主要注重在時間



---
## Module 14:Data Stack（考試不會考）
### Machine learning
* Classfication
* Feature Selection
* Sagemaker
*
### AWS Machine Learning Stack
* Vision
    * Rekognition Image
    * Rekognition Video
* Chatbots
    * Amazon Lex
* Speech
    * Amazon Polly
    * Amazon Transcribe
* Language
    * Amazon Comprehend
    * Amazon Translate
* Vertical
    * Amazon Personalize
    * Amazon Farecast

* 推薦機型
    * P3

### Amazon EMR（Elastic Map Reduce）
* Map Reduce
    * 一份工作（小）只給一個人 
    * ~~一份工作（大）只給一個人~~ vs 一份工作（大）分給幾個人
    * 減輕每個人的負擔，最後merge起來，就是Map Reduce


RI(1-3年)

https://aws.amazon.com/certification/certification-prep/?nc1=h_ls
https://acloud.guru

DynamoDB ElaticCache是stateless


