Month7 月 2016

HTTP2-設定相關

昨天前同事給了我一篇資訊

關於HTTP2的資訊

https://blog.alphacamp.co/2016/07/12/http2/

我自己將自己的部落格設定了一下

簡單的流程有三個步驟

1.SSL憑證,有免費的,當然最好是花錢

2.WEB SERVER的設定(apache、nginx相關)

3.驗證(確認http2成功)

 

SSL憑證的話,申請流程網路上都有,這邊就帶過

我這邊主要是調整NGINX的設定

NGINX如果要支援http2的話,需要在1.9x以上,我是直接安裝1.10

設定大致上是如下圖,我設定得比較簡單,當然也可以很嚴謹

擷取

主要是 http轉https

與SSL的 http2設定

還有SSL KEY等等的資訊

另外就是 HSTS的Header等

詳細參數如下列

ssl_certificate /etc/nginx/ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ‘ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS’;
ssl_prefer_server_ciphers on;

add_header Strict-Transport-Security max-age=15768000;

 

然後就是驗證,使用下面這個網址

https://tools.keycdn.com/http2-test

然後填上你的網址 例如 www.kilait.com

擷取

HTTP2通過

AWS-NATGATEWAY & ELB 並存設計

昨天颱風天為了進度還是進公司一趟趕了建置環境的案子

一切都很順利的時候,突然發現設計上又卡了

原本出問題的架構是這樣子

unnamed

EC2在不對外的網段內,然後透過NATGATEWAY出去

但是在這情況之下,ELB會無法運作

在短時間內無解的情況下,我調整了一下自己的設計規劃

將EC2全部改走IGW出去並設置Publuc IP,因為EC2需要對外呼叫API

Route Table也都修改掉,拿掉NATGATEWAY

然後回到家的路上有詢問AWS的技術團隊

討論到晚上十一點多總算找出設計上的解法

擷取

上圖是AWS新加坡團隊 Solution Architect TC 做的架構圖

原本是給我這個連結 http://stackoverflow.com/questions/9257514/amazon-elb-in-vpc

然後我實作了一下,的確可以解決了NATGATEWAY與ELB共存的問題

與我IGW修改的架構接近,但是我少了AZ內的subnet流量概念

所以我用Public IP處理

接下來只要修改掉這個部分,這個問題就解決了

這份資料就提供給日後有需要的人參考囉

 

AWS-NAT GATEWAY

今天實作預計的新架構圖時卡到的一個問題

當全部的EC2都要走NAT GATEWAY時要怎麼做?

我同事原本的架構是手動加route去做,比較傳統的解法

可是在AWS上就會有一些機制受到影響

研究Route Table半天,也沒有甚麼解法

最後我在看官網文件時發現這張圖

擷取

我覺得有點類似之間EC2做NAT的架構

後來試著理解之後改一下,就解決了

 

解決方式是

subnet A (不對外網段) (上圖private Subnet)

subnet B (對外網段)  (上圖public Subnet)

igw的route table A (上圖Custom Route Table)

ngw的route table B (上圖 Main Route Table)

一個掛在subnet B的NAT GATEWAY (上圖NAT Gateway)

將subnet B掛在 route table A

將subnet A掛在 route table B

在subnet A開一台EC2 不給public IP

完成後,這台EC2就可以對外了~

 

結果依照我公司的作法

變成要開三個網段才能解這個問題了…

AWS-EC2 DNS問題

今天跟同事查一個問題時發現到的小狀況

嚴格說起來算是架構上設計造成的問題

每台EC2的預設DNS解析都是該網段VPC+2

舉例來說 VPC是172.31.0.0/16

那EC2的預設DNS就是 172.31.0.2

如下圖

擷取

基本上不會有任何問題

但是目前就遇到了

公司目前的設計架構,因為不熟悉AWS的設計理念與規劃架構的方式

採用的是類似我前公司的多網段分層設計方式

舉例 會有 10.10.0.0   10.10.1.0  10.10.2.0 10.10.3.0

VPC當然會設計是開10.10.0.0/16

那問題來了,內部的EC2 DNS就會是10.10.0.2

正常的情況都會沒有任何問題才對

偏偏問題就是在於架構是非正規VPC的設計方式

subnet與subnet之間的server連接是透過route table的方式去指定

所以造成 10.10.1.0  10.10.2.0 10.10.3.0網段

全部無法連接到10.10.0.2這台DNS

問題與原因已經不可考了

 

因為這樣子的關係,我查了一下AWS的文件

除了EC2預設的系統自帶的VPC+2以外

可以另外指定AWS專用的內部DNS 169.254.169.253

下圖是範例

擷取

因程式有要求須要透過DNS進行本機端HOSTNAME進行IP解析

但是因上述的狀況造成無法解析的問題

所以設定了AWS的專用DNS進行本機HOSTNAME的解析

結果是成功的~

解決了這種複雜架構的困擾

AWS-sample design

基本上AWS架構去上過課學出來的都差不多

礙於職場道德的關係,還是只能修修改改

下圖就是這段時間大概弄出來的新架構(大概刪減了50%的機密)

反正去GOOGLE也找得出來類似的圖XDD

7f1347ee-1646-4fcd-b073-af85a743a629-large

簡單來說又是一個標準化的AWS建置,但是其中接觸到兩個我只有上過課

但是沒有實際操作過的東西,一個是NAT GATEWAY

另一個就是VPC Tunnel了

 

然後在架構面之外另外一個點就是流程面的設計了

這個可能我要改畫流程圖,不過構想還在腦海中

等架構完成實際驗證過後,我在分享出來

 

一個關於夢想的閒聊

昨天跟之前的同事聊天的時候,提到之前想的創業

想想,他是UI/UX的領域,目前也在外商工作

然後我是架構與系統,現在也在外商工作

可能大家對於工作真的有一種倦怠感了

我們想了以前天馬行空的一些想法,得到了一個不錯的方向

然後問了mobile端的前同事

也找了一個商務與企劃

現在只差後端了XDDD

 

先不管可不可行,畢竟現在的資訊工作環境真的很難讓工程師們發表自己的想法

我也有同事自己除了正職的工作之外,私下默默維持的自己想做的產品

基本上大家都是在燒自己的錢,工作往往只是為了生活

自己的夢想才是支持自己前進的動力

 

想做的事情很多,勇氣必要的時候也會有的XD

工作嘛….也許在找就有,但是可以抓住夢想的機會,可能轉眼就消失了~

至少希望這一個目標能有點讓自己開心的動力

不管能否成功,但畢竟做了才會知道,失敗也是一種經驗囉

WordPress-Godaddy

昨天接到前同事的電話,提到前年幫他承租的Linode主機時常不穩定

這問題存在許久了,一直有幫他進型優化的設定與排程重啟

畢竟Lindoe的10美金方案實在無法承受lamp的架構,規格實在太低

然後gogaddy 前陣子大張旗鼓的進軍台灣,多了台灣的繁體中文頁面

也多了許多功能,除了網址與DNS以外,也看到了Wordpress的建站服務

螢幕快照 2016-07-02 上午11.03.20

大致上價格不貴,也許對無法架設伺服器的人來說是一個不錯的選擇

主要的方案大多在於空間與流量訪問數上,實際上要評估自己適合的方案在決定

但是算一算也不錯便宜,該送的網域名稱與SSL加密在旗艦版方案就全包了

 

然後額外看到的是這一項功能

螢幕快照 2016-07-02 上午11.05.54

一鍵轉移工具,這對於我同事來說應該是最快速能進行轉移的方式了

對於網站轉移重新設定的麻煩,省去了不少的功夫

 

目前我也在評估現在的部落格是否要留存於AWS之上

一年的免費額度已經到期了,目前是ec2 t2.micro+ db.t2.micro在負責這一個部落格

估算金額之後一個月約40美金,約台幣1200元上下

想要省成本不外乎將RDS關閉,ec2上安裝mysql使用同一台server執行

這樣子大概可以節省到20美金上下,約台幣600元上下

但是效能可能就比較不好,畢竟每個月養部落格也是一筆開銷XD

現在gogaddy也是一個可選的方案

畢竟當初我就有考慮多一個SSL加密的憑證,旗艦版是我可以考慮的方案

如果日後轉移,我會在發一篇轉移的教學文章

AWS-Elastic File System

去年上課時就有提到的功能Elastic File System

今年總算在美洲與歐洲區正式服務了

 

可惜我的帳號預設的地區是在東京

所以如果要測試的話就要花1HR的EC2費用去美洲測試了XD

不過由於真的對這個服務非常有興趣,所以還是開起來測試一下XD

 

首先先啟用服務建立一個EFS

擷取1

由於是指定於VPC之中,所以VPC內的4個AZ都會顯示

不過由於我只建立一台EC2於us-east-1a,所以只勾選第一個

擷取2

接著設定tag,也就是名稱與SSD的效能,預設我們先選一般

擷取3

然後下一步就建立完成了

擷取4

等待會需要約1分鐘左右,這時候可以先去Security Group開啟NFS的權限

擷取6

EFS的服務是走2049 Port,當然如果你原本就允許跟我第一組同樣的規則的話

是不用在額外設定第三組的2049 port,這邊只是示範~

然後在EFS的介面點選我們剛剛建立的磁區

可以看到有DNS names的項目,點選就會出現URL,掛載時會用到

擷取5

接著點選EC2 mount Instructions,會出現一些簡單的掛載教學說明

擷取7

主要是安裝NFS套件、建立目錄,使用NFS指令掛載

下圖是我建立/efs目錄後,使用mount指令掛載的狀況

我是直接使用 mount -t nfs4 URL:/ /efs 掛載

掛載完畢可以使用 nfsstat確認掛載狀況

擷取8

接著隨便丟個檔案進去試試

擷取9

這樣子就大功告成了

如果想在確認的話

可以使用umount /efs 卸載之後在重新掛載上去測試看看

這個功能可以拿來多台EC2掛載同一個EFS進行資料的共同存放與取用,方便許多~

AWS官方資料參考網址 點我

© 2024 Kila's IT Home

Theme by Anders NorénUp ↑