理解下AWS Well-Architected Best Practice

一.緣起:

1.從aws小白到漸漸掌握了一些常用服務(wù)的使用吃型,發(fā)現(xiàn)SAP考試對(duì)服務(wù)的考量并不在了解功能和會(huì)使用層面就乓,而是有大量的Best Practice問題烹吵,這相對(duì)于SAA是有很大難度提升的
2.各種的服務(wù)之間到底如何協(xié)同使用才是Best Practice惧眠?--這就得說Well-Architected

二.設(shè)計(jì)原則(5大支柱):

0.原始系統(tǒng)架構(gòu)圖


原始系統(tǒng)架構(gòu)

1.卓越運(yùn)營

如何運(yùn)行才是卓越的,對(duì)于云計(jì)算來說那一定是運(yùn)營即代碼暴拄。按照我個(gè)人的理解一切的運(yùn)營都是可以在System Manager和CouldWatch當(dāng)中來進(jìn)行的漓滔。


卓越運(yùn)行目標(biāo)架構(gòu)

1.1給EC2打標(biāo)簽是為了分類管理,在instance頁面中的tag tab可以為實(shí)例添加標(biāo)簽乖篷,如:{Environment:Production,App:Product-Catalog}
1.2資源組是相同標(biāo)簽資源的集合响驴,使用資源組可以對(duì)資源進(jìn)行批量操作。創(chuàng)建資源組使用Resource Groups & Tag Editor
1.3選擇資源組以Tag分類那伐,選擇資源類型為EC2踏施,選擇標(biāo)簽內(nèi)容為{Environment:Production,App:Product-Catalog}后石蔗,會(huì)自動(dòng)篩選出剛剛設(shè)置的兩個(gè)EC2實(shí)例
1.4連接到SSM的EC2要確保安裝了SSM代理罕邀,創(chuàng)建名為wa-lab-ssm-ec2-role的IAM role,選擇兩個(gè)AWS托管的兩個(gè)policy:CloudWatchAgentServerPolicy养距,AmazonSSMManagedInstanceCore诉探。這兩個(gè)policy能夠讓SSM連接到EC2并且在其中運(yùn)行某些命令
1.5將創(chuàng)建的IAM role應(yīng)用到兩個(gè)EC2實(shí)例上,重啟實(shí)例使得IAM role生效
1.6在node management>Inventory中可以檢查到出現(xiàn)兩個(gè)EC2實(shí)例棍厌,代表可以通過SSM鏈接到實(shí)例并且運(yùn)行命令肾胯,如果未出現(xiàn)則需要重啟它們
1.7在node management>Run Command中運(yùn)行AmazonCloudWatchAgent命令竖席,名稱選擇AmazonCloudWatchAgent,目標(biāo)選擇前步驟創(chuàng)建的資源組
1.8在node management>Run Command中運(yùn)行AmazonCloudWatch-ManageAgent命令敬肚,名稱選擇AmazonCloudWatch-ManageAgent毕荐,配置源選SSM,配置位置選wa-cw-config-file-httpd-mariadb艳馒,可選重啟選是
1.9將此json文件存放在SSM的Parameter Stored中

{
  "agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "root"
  },
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/var/log/messages",
            "log_group_name": "messages",
            "log_stream_name": "{instance_id}"
          },
          {
            "file_path": "/var/log/httpd/access_log",
            "log_group_name": "httpd_access_log",
            "log_stream_name": "{instance_id}"
          },
          {
            "file_path": "/var/log/mariadb/wa-db-server.log",
            "log_group_name": "db_general_query_log",
            "log_stream_name": "{instance_id}"
          },
          {
            "file_path": "/var/log/mariadb/mariadb.log",
            "log_group_name": "mariadb_log",
            "log_stream_name": "{instance_id}"
          }
        ]
      }
    }
  },
  "metrics": {
    "append_dimensions": {
      "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
      "ImageId": "${aws:ImageId}",
      "InstanceId": "${aws:InstanceId}",
      "InstanceType": "${aws:InstanceType}"
    },
    "metrics_collected": {
      "disk": {
        "measurement": ["used_percent"],
        "metrics_collection_interval": 60,
        "resources": ["*"]
      },
      "mem": {
        "measurement": ["mem_used_percent"],
        "metrics_collection_interval": 60
      },
      "statsd": {
        "metrics_aggregation_interval": 60,
        "metrics_collection_interval": 10,
        "service_address": ":8125"
      }
    }
  }
}

1.10在CloudWatch的Metric中可以查看CWAgent選項(xiàng)卡中兩個(gè)EC2的指標(biāo)都顯示出來了

2.可靠性

提到可靠性憎亚,就不得不說高可用,實(shí)現(xiàn)高可用就要用到分可用區(qū)弄慰,ALB第美,Auto Scaling Group等


可靠性設(shè)計(jì)目標(biāo)

2.1將子網(wǎng)添加到第二個(gè)可用區(qū)
2.2使用多可用區(qū)部署RDS
2.3更新SSM parameter
2.4創(chuàng)建ALB和Auto Scaling group的目標(biāo)組
2.5使用SSM>Run Command進(jìn)行數(shù)據(jù)庫遷移,將數(shù)據(jù)庫從EC2實(shí)例遷移到RDS
2.6為EC2實(shí)例創(chuàng)建ASG

3.安全性

安全性是aws中最為看重也是最復(fù)雜的一項(xiàng)方面陆爽,因?yàn)樵诙鄠€(gè)層面實(shí)現(xiàn)安全都會(huì)使用不同的服務(wù)什往,本次主要使用CloudTrial和AWS Config對(duì)系統(tǒng)進(jìn)行監(jiān)控和檢測(cè)提升安全性


安全性目標(biāo)架構(gòu).png

3.1啟動(dòng)CloudTrial創(chuàng)建一個(gè)新的trial存儲(chǔ)在S3中
3.2啟動(dòng)Config,選擇記錄此區(qū)域所有資源包括全局資源如IAM等慌闭,創(chuàng)建新的存儲(chǔ)桶别威,如果使用寄存的存儲(chǔ)桶需要另外設(shè)置權(quán)限允許與Config進(jìn)行通信
3.3到此我們?cè)贑loudTrail中獲得了全資源的操作監(jiān)控清單,在Config中獲得了全資源清單驴剔,并存放在了不同的S3 bucket中
3.4修改安全組規(guī)則兔港,分別修改inbound和outbound rule,配置為僅允許數(shù)據(jù)庫實(shí)例的流程與應(yīng)用程序?qū)嵗M(jìn)行流量通信
3.5啟動(dòng)VPC創(chuàng)建ACL編輯出站和入站規(guī)則并關(guān)聯(lián)到公有子網(wǎng)
3.6在CoudTrial中選擇創(chuàng)建的Trial仔拟,打開S3存儲(chǔ)桶衫樊,可以下載Json文件查看日志
3.7在AWS Config的資源清單中可以查看到新加入的ACL已出現(xiàn)在其中

4.性能效率

主要考慮彈性elastic and auto scaling,以及使用cloudWatch來監(jiān)控并指定擴(kuò)展策略
4.1在EC2中選擇ASG并創(chuàng)建動(dòng)態(tài)擴(kuò)展策略為CPU使用率達(dá)到閾值的時(shí)候自動(dòng)擴(kuò)展
4.2在CloudWatch中創(chuàng)建監(jiān)控?cái)?shù)字、圖標(biāo)和警報(bào)分別監(jiān)控EC2實(shí)例的CPU利用率
4.3通過監(jiān)控了解與預(yù)期性能的任何偏差并采取自動(dòng)化操作
4.4驗(yàn)證創(chuàng)建的警報(bào)和策略利花,可以在SSM中使用Run Command的方式來測(cè)試警報(bào)并在CloudWatch中觀察指標(biāo)變化,Command參數(shù)如下

AWS-RunShellScript科侈,
#!/bin/bash
sudo stress --cpu 8 --vm-bytes $(awk '/MemAvailable/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1 --timeout 300s

5.成本優(yōu)化

成本是需要能在滿足業(yè)務(wù)需求的基礎(chǔ)上,不算優(yōu)化的炒事,比如通常會(huì)使用Organization整合賬單的功能來共享套餐優(yōu)惠降低整體成本臀栈。本次我們使用Config來建立rule的方式查看資源配置結(jié)果,激活合規(guī)預(yù)防控制達(dá)到整體優(yōu)化成本的目的


成本優(yōu)化目標(biāo)架構(gòu)

5.1啟動(dòng)Config挠乳,選擇特定的資源類型EC2 instance,賦予Config一個(gè)ConfigServiceRole并將其保存在S3存儲(chǔ)桶中
5.2添加role以強(qiáng)制執(zhí)行所需的標(biāo)簽权薯,使用AWS托管的required-tags規(guī)則只針對(duì)于EC2資源
5.3查看創(chuàng)建好的role,發(fā)現(xiàn)其中一個(gè)EC2由于缺少標(biāo)簽被標(biāo)記為了不合規(guī)
5.4返回EC2實(shí)例睡扬,按照config要求打上標(biāo)簽盟蚣,再次確認(rèn)role中的不會(huì)貴標(biāo)簽變?yōu)榱撕弦?guī)
5.5當(dāng)然Config除了進(jìn)行合規(guī)性檢查意外更重要的是可以激活合規(guī)性的預(yù)防控制,使得新建的每個(gè)EC2實(shí)例都是合規(guī)的

以上卖怜,做些實(shí)驗(yàn)的總結(jié)加深對(duì)Well-Architected的理解屎开。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市马靠,隨后出現(xiàn)的幾起案子奄抽,更是在濱河造成了極大的恐慌蔼两,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逞度,死亡現(xiàn)場(chǎng)離奇詭異额划,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)档泽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門锁孟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茁瘦,你說我怎么就攤上這事品抽。” “怎么了甜熔?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵圆恤,是天一觀的道長。 經(jīng)常有香客問我腔稀,道長盆昙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任焊虏,我火速辦了婚禮淡喜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诵闭。我一直安慰自己炼团,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布疏尿。 她就那樣靜靜地躺著瘟芝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褥琐。 梳的紋絲不亂的頭發(fā)上锌俱,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音敌呈,去河邊找鬼贸宏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛磕洪,可吹牛的內(nèi)容都是我干的吭练。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼褐鸥,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼线脚!你這毒婦竟也來了赐稽?” 一聲冷哼從身側(cè)響起叫榕,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤浑侥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后晰绎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寓落,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年荞下,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伶选。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尖昏,死狀恐怖仰税,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抽诉,我是刑警寧澤陨簇,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站迹淌,受9級(jí)特大地震影響河绽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唉窃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一耙饰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纹份,春花似錦苟跪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蠢笋,卻和暖如春拨齐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昨寞。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國打工瞻惋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人援岩。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓歼狼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親享怀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羽峰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容