星期四, 9月 05, 2019

Cloudwatch + Alarm with EC2 CPU Utilization 測試小記

Cloudwatch + Alarm with EC2 CPU Utilization 測試小記

OS: Container with openSUSE Leap 15
EC2: openSUSE Leap 15.1 in AWS

今天來測試 Cloudwatch 目標是 EC2 instance 如果 CPU 使用率 超過 50% 達到一定的條件, 就送出警告

首先先建立 openSUSE Leap 

==== 在主機上面 ====

啟動 container

> docker  run  -v  ~/.aws:/root/.aws -v  ~/.azure:/root/.azure  -v ~/.config/gcloud:/root/.config/gcloud  -v  ~/.ssh:/root/.ssh  -it  sakana/ansible_opensuse15  /bin/bash

  • 這邊我有透過 -v 把本機上面的三個平台的設定檔掛載到容器內, 還有 .ssh 目錄 也掛載上面, 因為 google 的 SSH 金鑰 也會存放在裡面


==== 在 container 內 ====

參考之前的文章建立 openSUSE Leap 15.1 的 EC2 instance

查詢 openSUSE Leap 15.1 的 Image id
# aws  ec2  describe-images --filters 'Name=name,Values=openSUSE*'

查詢 Subnet id
# aws ec2 describe-subnets

security-group-ids 查詢方式
# aws  ec2  describe-security-groups

查詢 Key Pair
# aws  ec2  describe-key-pairs

啟動 openSUSE Leap 15.1 instance
# aws  ec2  run-instances --image-id  ami-036afe8f05ebda1fe  --subnet-id  subnet-92dfe4fb --security-group-ids sg-090a6648734644255  --instance-type  t2.micro --key-name  test-key --count  1


==== 在主機上面 ====

使用 ssh -i  test-key.pem  -l  ec2-user  SERVER_IP
看看是否可以登入

完成建立 EC2 instance


接下來設定 Cloudwatch
想法上就是 EC2 的 CPU 用量超過一定的條件就通知

登入 AWS Console

點選 服務 -- > Cloudwatch
點選 指標 -- > 點選 EC2


點選 每個執行個體指標



勾選要監控的 Instance 還有指定指標名稱為 CPUUtilization



點選 圖表化指標
點選 建立警示圖案 ( 鬧鈴 )



建立警示
時間的部分我使用預設值, 因為 5 分鐘是不用收費的, 可以參考 Cloudwatch 定價


設定 CPU 使用率 大於 50 %
3 次取樣有 2 次符合就警告
點選 下一步


通知的部分會結合 SNS 服務, 一定範圍內都是免費

點選 建立新主題 輸入要通知的電子郵件
點選 建立主題



點選 下一步

輸入 名稱
點選 下一步


在預覽畫面
點選 建立警示

完成 建立警示

可以觀察 Cloudwatch


如果要收到通知信, 就要去收 AWS SNS 寄來的信件, 並點選信內連結確認訂閱

最後來測試是否有作用

使用 ssh -i  test-key.pem  -l  ec2-user  SERVER_IP
登入 openSUSE Leap 15.1 instance in AWS

測試工具
  • stress-ng

切換為 root
> sudo  su  -

使用 zypper 安裝 stress-ng
# zypper  install  -y  stress-ng

使用 stress-ng 指令 壓測 CPU
# stress-ng  -c  2 --cpu-method  all

stress-ng: info:  [2920] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor
stress-ng: info:  [2920] dispatching hogs: 2 cpu


在 Cloudwatch 上面觀察


靜待 10 mins ( 3 x 5分鐘, 裡面要有 2 個符合 CPU > 50 % )

達到條件就會變成警示中


檢查訂閱的電子郵件

確認收到通知 :)

完成 Lab

~ enjoy it

Reference:

星期六, 8月 31, 2019

Cloud Identity with GCP 小記

Cloud Identity with GCP 小記

最近因爲工作上有一個需求, 所以來嘗試 Cloud Identity 這個服務

先說一下動機
  • 想在 GCP 上面進行 IAM 人員管理, 不想讓專案的人員使用個人的 gmail 加入專案以免維護困難
    • 目前 GCP 上面人員要加入專案, 可以是 gmail / G suite / Cloud Identity 
      • 如果公司未導入 G suite 或是 Cloud Identity, 可能就是讓員工以個人或是新增 gmail 加入專案, 這樣造成管理上的困難 -- 因為成員調動組織或是離職的時候, 很難維護管理.
  • G Suite 爲付費服務, Cloud Identity 有免費版本 ( 人數爲 50 人以下 )
    • 目前的瞭解, 兩者的差異是 G Sutie 有 Google Drive 以及 Gmail 等服務, 所以如果只是要拿來驗證以及管理, 現階段 Cloud Identity 應該就足夠了.

Cloud Identity 官方網頁

條件
  • 必須要有網域管理權, 可以驗證網域

我這邊是使用 Gandi Taiwan 在 COSCUP 研討會發放的一年免費 .tw 網域註冊免費序號

  • 感謝 Haway Liang 經理給我免費序號


做法
先登入 GCP console 

點選 IAM 與管理員 -- > 身份識別與機構 
點選 Cloud Identity 下面的 註冊


這個時候會開一個新分頁 ( Cloud Identity 的歡迎頁 )
點選 下一頁




輸入公司名稱 以及規模 -- >  下一頁





輸入公司電話 ( 手機也可以 )
-- > 下一頁


輸入電子郵件 -- > 下一頁

 輸入網域名稱 -- > 下一頁

確認網域名稱 -- > 下一頁

輸入名稱 -- > 下一頁



輸入管理者帳號以及密碼 -- > 下一頁


選擇是否提供意見給 Google

點選 同意並建立帳戶 完成建立


接下來會被帶到管理控制台的登入頁面
  • admin.google.com

輸入剛剛建立的帳號以及密碼進行登入


在設定 Cloud Identity 頁面 點選 開始


接下來要進行驗證網域所有權的部分
因為我是使用 Gandi 管理的網域, GCP 偵測到之後, 只會出現一箇 Oauth 是否同意的視窗
點選同意之後, 就自動設定完成了
  • 不用手動設定 CNAME
  • 只是過程會比較久, 大概 20 ~ 30 mins



建立完成之後來進行相關實作

首先登入 Google Admin , 以剛剛建立的網域管理者登入

授權想法
  • 專案授權給 Cloud Identity Group, 以後如果有使用者調動或是離職, 就直接從群組調整即可

點選 群組


點選 建立群組


輸入 群組相關資料
  • 目前我的命名方式是 專案名稱_權限 
  • 點選 下一步

選取 存取類型 -- > 建立群組


點選 完成


回到 GCP 專案上面

點選 IAM 與管理員 -- > IAM 
點選 新增 



輸入 Cloud Identity Group e-mail
選取角色 -- > 儲存


驗證是否有相關權限

在剛剛建立的網域使用者, 登入 GCP 控制臺, 這個時候, 會發現有被加入剛剛的專案
點選 Compute Engine -- > VM 執行個體


這個時候會發現可以觀察 VM instance, 但是不能建立 instance 因為當初被授權的角色是 檢視者
:)

達成此次 Lab 要求
先記下來

~ enjoy it