CategoryAWS

AWS CLI 工具 saws

之前在AWS的FB上有看到這個工具的消息

當下就實際研究了一下

安裝方式很簡單

#apt-get install python-pip

#pip install saws

#saws

實際上大概就像這樣子

擷取

不過在執行之前要先設定aws configure,不然會出現錯誤

主要的功能就是讓你省去找CLI指令的麻煩

擷取

會主動提示可能的相關指令

但是也不是完全都可以幫你填上

例如有些參數指令必須自己先下 — 才會出現讓你選擇

不過整體來說可以省去很多時間就是了

 

AWS CloudWatch Dashboards

最近AWS在美國如火如荼的進行AWS re:Invent

然後今天一上班就發現AWS Cloudwatch進行了功能更新

可以製作自訂的Dashboards

擷取

操作方式滿簡單的

新增一個Dashboard 自訂名稱,如Prod-cpu

之後會看到下圖

擷取

目前我只測試第一個直接抓取預設的圖形,也就是Cloudwatch內建的監控指標

第二個我還不清楚如何使用,有查到我會上來更新

擷取

篩選完之後加入會變成這樣

擷取

這樣子一個分類就完成了

在瀏覽監控方面更接近一般的MRTG了

搭配Cloudwatch API

可以拉出來的監控指標更多了~

另外這個是可以自訂拉移的,很像桌面或是手機的Widget~

也可以放大觀察每一個圖形的細微資訊,在維運管理上更方便了~

 

AWS device-farm(更新試用)

今天發現到AWS多了一個新的服務

https://aws.amazon.com/tw/device-farm/

通常很多APP開發者會遇到很多APP在各種裝置上的問題

對大公司來說,也許有財力可以去購買很多型號來解決

可是對個人開發者來說,這種問題就很麻煩

 

AWS 推出這個服務我看至少可以解決很多開發者的問題

加上也是在AWS 免費方案內

http://aws.amazon.com/tw/free/

 

AWS的野心還真大…XD

———————————————————————————————————-

剛剛跟同事要了一份APK

測試了一下

擷取

點進去看細節

擷取

可以看到畫面,效能,還有LOG等等的

擷取

後面是依各裝置的測試結果出圖

擷取

擷取

 

還不錯玩,可能要APP開發者才能物盡其用

我這種兩光的就知道這東西就好XD

 

 

 

Route 53 +S3 靜態轉址

昨天在調整公司的網址規則時查到的一個情況

因為之前本身的工作沒有這種需求,所以自然沒有遇過

正常來說DNS的網址都是設A解析給IP

例如

www.kilait.com  A  127.0.0.1

kilait.com A 127.0.0.1

但是現在公司的需求要指給ELB,而AWS ELB又是一個URL,所以只能給CNAME

(註:如果帳號是同一個,Route53 是可以用alias直接指定AWS相關服務的URL,但這裡不是同帳號)

舉例

www.kilait.com CNAME test-elb.ap-northeast-1.amazonaws.com

kilait.com CNAME test-elb.ap-northeast-1.amazonaws.com (這個無法指定CNAME)

發現問題了嗎? 答案是 kilait.com 不能指CNAME

因為他是root 網址,只能給A

這就頭痛了,因為對外入口是給ELB的URL,而不是IP

A是解不出去,不過還好有S3的靜態網址功能可以用

首先建立一個S3 Bucket 叫 kilait.com

然後如下圖設定

擷取

之後開 endpoint 的URL 看看是不是被轉給 www.kilait.com了

可以的話就到 route53改解析

擷取

Alias的地方選yes 下拉就會出現你剛剛設定的S3 endpoint

直接轉給s3幫你做靜態轉址

雖然多此一舉,但總算比直接給A解析IP好

會變成 kilait.com -> s3 -> www.kilait.com -> elb -> web

不過如果同帳號就沒這問題了

AWS Route53 可以這樣子做

kilait.com -> elb -> web

跨帳號有時候就是會這麼麻煩~

AWS ELB SSL 設定

每次遇到公司的狀況就打一下當作紀錄

如何設定 ELB SSL

新增ELB那邊就不說了

直接上設定~

擷取

重點在於(9/3更新紅字部份)

80 -> 80

80->443 (這樣子設定需要由程式端轉址)

擷取

443->443 (這樣子設定是由設定端轉址)

這要看你的後端server的邏輯,因為SSL是做在前端用

user -> ELB -> SERVER

SSL 正常是應用在 user -> ELB 這段

而 ELB -> SERVER 則屬於AWS VPC內部網段應用

HTTP 80->443 (這樣子設定需要由程式端轉址)(強制加密時)

HTTPS 需要設定 443-> 443(如果不用程式判斷而用web轉址的話)(強制加密時)

SecurityGroup 則是開一個有80/443全開的設定就好

擷取

接著是SSL憑證,由於我目前作業上的憑證不是我申請的,我也還沒實際驗證過正確性

所以這一段之後有問題可能會修改

擷取

填入private key 以及SSL驗證商給你的憑證填入 Key Certificate

下方的選項預設即可

之後進入 Health Check

擷取

如果你有index.html 或 index.php 你可以這樣子設定

但通常我會直接tcp 設定ping 80

接下來選server跟設定tag就不多解釋了

重點在於SSL那邊

 

另外server上的SecurityGroup 要設定允許ELB的SecurityGroup連線

例如 :

ELB 允許 80/443 來源是0.0.0.0/0 ,名稱是 sg-11111

Server 允許 80/443 來源是 sg-11111,名稱是sg-11112

類似這樣子的設定,不然流量導不到後端server上

架構會變成

user   ->   elb(sg-11111)    ->   server(sg-11112)

443                               80

AWS RDS Slowquery log 設定

昨天忙了一天的RDS相關設定

整理出一些心得

 

RDS不像是一般的資料庫設定,以MySQL來說,通常我們會去改 my.cnf

但在RDS當中要修改資料庫相關參數,只能修改Parameter Group

擷取

預設啟動資料庫時,RDS會給你一個預設的設定資料,這是無法更動的

所以要自定義參數時,就必須自己新增一組出來,如下圖

擷取

那需要修該參數時

點選你要修改的參數前方的放大鏡~

因為參數太多,所以要用Filter的方式找出需要修改的參數

而有些參數是RDS鎖死無法修改的

擷取

擷取

這裡我們主要是要開啟slow query log

所以列出需要修改的參數

slow_query_log    1   (1是啟用,預設是0)

long_query_time 1   (這裡是秒數,超過1秒就記錄LOG)

log_output option File (LOG輸出格式,預設是table,在AWS上觀看要選File)

設定完畢之後修改RDS的設定

擷取

之後套用需要時間生效(註:某些參數需重啟RDS才能套用)

擷取

這樣子就生效了

在控制介面下方的LOG就可以觀察到log了

AWS IAM多帳號切換方式

記得AWS課程上有提到

非必要,不要使用預設的AWS ROOT帳號做管理

可以先建立一組IAM的子帳號使用

再給予adaministrator的權限即可(如下圖)

AWS

 

那對於多帳號管理來說,也是相同,只是從User改為Role去做

只要先create role 之後

在權限設定上

AWS

 

選擇 Provide access between AWS accounts you own

之後要填入你想讓哪個帳號可以切換過來,之後再給予權限即可

AWS

舉例: 你有A帳號 與 B帳號

A帳號建了一個 role  kila,然後填入B帳號的account ID (ID在帳單那邊看得到)

從此你就可以登入B帳號,切換成為A帳號的kila,管理A帳號

如下圖,我用一個帳號可以管理4組其他帳號,而不用登出登入煩死人

AWS

 

那大家會覺得填完之後怎麼跟我的畫面不同呢?

很簡單,因為我設定了alias

在IAM一進去的畫面中,會看到IAM USER的專用連結

原本預設是account ID,可以點網址旁邊的 Customize修改alias

如下圖

AWS

 

之後就可以方便的切換

在右上角的帳號點開後,會有看到 Switch Role (如上上張圖)

點選後會看到下圖

AWS

 

Account可以填ID,當然也可以填alias,這樣子方便記住你切換的帳號是甚麼用途

Role 就填你剛剛建好的A帳號的kila

Display不用填,你填完之後他會幫你顯示

最後可以選帳號顯示的顏色,按下switch role之後,你就切換過去了

 

這樣子就可以達成一組帳號管理許多帳號的目的

AWS有沒有很人性化呢~

 

AWS Cli

預設的AWS Linux皆會內建aws cli工具

如果沒有的話就必須自己安裝

需先安裝Python

pip install awscli

 

使用前必須先設定aws的使用者權限

通常會用到cli的大多會是user

建立時會有兩組key

 

aws configure

輸入 key

輸入第二組key

輸入region

第四項直接空白(這是輸出的顯示方式)

 

設定完畢的aws cli config會放在 /home/user/.aws/內

可以看到兩組key與region

 

AWS Cli可以做到很多GUI介面做不到的事情

其中自訂Cloudwatch監控指標就是其中一個範例

IAM 權限控管

IAM

有分為三個部份

Group、User、Role

  • Group

顧名思義就是群組,在該群組內的User都有相同權限

  • User

使用者,可登入,也可不登入,可以定義權限(在程式中大多使用key給予權限)

  • Role

角色,也就是可以套用在AWS EC2上的權限,不用像User一樣另外給權限,在EC2啟動時便可自帶權限

另外可以指定跨帳號的Role做管理多帳號功能,如下圖

擷取

 

*註:不管是Group或是User等,一次只能給予兩個權限設定

S3 Cli工具-s3cmd

#先安裝 s3cmd (Linux or MAC)

sudo yum install s3cmd -y

#設定權限(S3需有key)

s3cmd –configure
Access Key: (填公開key)
Secret Key: (填私密key)

Default Region [US]:(填預設region)

#接下來都按Y或空白跳過
#儲存選Y

#查詢bucket

s3cmd ls

#查詢bucket endpoint

s3cmd info s3://your-bucket-name

完成

參考資料
http://vincent10e.logdown.com/posts/262683-use-paperclip-implements-image-files-uploaded-to-the-aws-s3

© 2024 Kila's IT Home

Theme by Anders NorénUp ↑