AWS學習筆記(二):使用EC2、Elastic IP、DynamoDB、IoT Core
6 min readMar 19, 2021
距離上一篇有關AWS的文章已經是2020/4/29的事情了,當時受到疫情影響,許多的活動都改成線上舉行。我在當時的線上培訓活動當中,理解了AWS一些比較常見的服務,時隔近一年,總算是正式的使用了AWS的服務。
AWS針對教育單位有提供AWS Educate的服務,提供給學生學習AWS操作的免費環境,在前幾天的學校課程當中,我們學習了:
- 註冊AWS Educate帳號
- 理解如何透過AWS的服務開發一個Facebook的社群網站(EC2, S3, DNS, Database…….)
- 使用EC2啟動Ubuntu VM (SSH,使用MobaXterm搭配EC2產生的pem檔案[key pair],不要使用Putty連線、帳戶名稱:ubuntu進行登入)
- 使用EC2啟動Windows Server 2019(啟動後點擊連線依照指示操作),並安裝中文介面及Chrome(AWS有提供桌面端應用程式,可以直接連接到VM上進行Windows Server 2019的GUI介面操作)
- 學習如何分配Elastic IP給EC2的Instance,由於EC2的Instance關機後再重開,IP位址會改變,透過Elastic IP可以分配固定的IP給Instance,方便後續的管理及應用。
- AMI:有pre-build的作業系統檔案,使用者可以選擇Image後,立刻開機使用。
- 建立自己的AMI:先自行建立一台VM -> EC2 Dashboard ->Elastic Block Store -> Create Snapshot -> Select resource type(Instance) -> EC2 Dashboard -> My AMIs -> Select。這個Snapshot建立之後,以後想要開新的EC2 VM時,可以選擇這個Snapshot快速還原
- IAM:(Identity and Access Management),偏向使用者權向管理。
- S3:Amazon Simple Storage Service,可視為雲端硬碟空間,能部屬靜態網頁、儲存大容量資料(可視為傳統能存放大容量的硬碟)。
- EC2:Stop instance為暫停(持續計費);Terminate instance為終止(刪除該Instance,終止計費)。
- 關於EC2上的儲存空間:EBS Volume和Instance Store的差別。Instance Store(可以想成系統的RAM,關機再開機後資料會消失,但不是實際的記憶體)和EC2在同一台伺服器上,速度較快,但是若要長期保存,建議使用EBS Volume(有SSD或HDD兩種,可以想成是電腦中大容量硬碟的D槽、E槽,資料不會因為關機後而消失)
- EC2如何延伸磁碟空間?:EC2 Dashboard->左邊Panel下拉->Elastic Block Store->勾選硬碟空間->Actions->Modify Volume->輸入要新增的空間容量->確認並檢查數值是否改變->開啟RDP->打開磁碟管理工具(diskmgmt.msc)->初始化Volume->點擊舊的Volume->Extend Volume->加入空間。
- Elastic IP:Disassociate IP為取消分配;Release IP為終止(刪除該IP)
- 建立DynamoDB並儲存IoT Core所進行的Action(傳送資料)
- IoT Core:使用MQTT subscribe到指定的topic,當符合規則的資料出現在IoT Core上,會自動publish給之前建立的DynamoDB資料庫中(Create a rule -> Select an action Insert Message into Database)
- IoT Core可以用在Raspberry Pi上,將Sensor讀取到的資訊(如:溫溼度)即時上傳到DynamoDB上面。使用AWS IoT的Things->Create things並搭配金鑰(key),再透過AWS IoT的SDK,直接把資料Push到IoT Core,當資料符合Subscriber的需求時,就可以寫入到Dynamo DB。
- AWS Lambda:Container的Runtime服務,可以把Python或其他語言的程式碼寫在這個服務上,在Lambda直接執行,免去架設一台EC2的VM再安裝套件的麻煩。Event(外部封包)->Trigger(接收Event)->Lambda function(啟動程式功能)。Google Cloud上比較接近的應該是Cloud Functions。
- 可以將程式碼部署於AWS Lambda上,去驅動AWS SNS(Simple Notification Service)服務,將從IoT Core接收到的資料,傳給Email。SNS的Topic ARN為串接程式的關鍵,沒有ARN就無法找到對應的Email傳送點
- Cloud Watch和Cloud Trails的比較
- AWS Cloud Watch:focuses on the activity of AWS services and resources, reporting on their health and performance.(資源及應用程式監控)
- AWS Cloud Trails: a log of all actions that have taken place inside your AWS environment.(帳戶存取行為紀錄)
- AWS Cognito:可以透過社群應用做身分驗證(例如使用者透過Cognitio登入自己開發的APP再透過SNS把資訊回傳給使用者)
推薦閱讀
WordPress+AWS Elastic Beanstalk架設企業級雲端網站作者的部落格,有一些書中的內容可以閱讀
教學影片
相關書籍
大話AWS雲端架構:雲端應用架構圖解輕鬆學:內容由淺入深,帶領讀者用生活化的方式去理解AWS龐雜的重要服務,適合初學者閱讀