AWS學習筆記(二):使用EC2、Elastic IP、DynamoDB、IoT Core

距離上一篇有關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槽,資料不會因為關機後而消失)
  • 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 Watchfocuses 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把資訊回傳給使用者)

推薦閱讀

AWS 筆記 — OA Wu’s Blog

AWS 開設 EC2 Instance

Amazon DynamoDB 初步使用心得

[AWS功能整理] Dynamodb

[ AWS ] 建立 AWS IoT Core 教學

[Day3] AWS IoTCore介紹

[ Protocol ] 認識 MQTT

WordPress+AWS Elastic Beanstalk架設企業級雲端網站作者的部落格,有一些書中的內容可以閱讀

教學影片

相關書籍

大話AWS雲端架構:雲端應用架構圖解輕鬆學:內容由淺入深,帶領讀者用生活化的方式去理解AWS龐雜的重要服務,適合初學者閱讀

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store