2019年9月17日 星期二

AWS EFS+EC2(AutoScaling+LoadBalance) 備忘

如標題其實在AWS使用Elastic Beanstalk就含有這些,而且還有其他不可忽視的優點,不過作為一位All in One的工程師,這些優點反而就有些礙手礙腳,尤其是處在那些天馬行空的需求上,真能專注在Code內且功能單純的專案,難啊...其實這些應該給專業的MIS去處理而不是找工程師去代理!!

EFS可擴展的共用檔案儲存服務,建立服務要注意的地方是:
1. 可用區域,選擇EC2會使用的區網網段
2. 安全群組,選擇相關的安全群組(最好是EC2使用的),另外ALL TCP Port須開放相關"可用區域"的區網網段,以便NFS協定運行。
3. DNS名稱是拿來連線用的,不同的檔案系統AWS會配給不同的DNS名稱。
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 DNS名稱:/ /掛載使用的資料夾

LoadBalance創建服務注意地方,唯一有卡關的在於ssl的CA憑證及PK密鑰的套用,這部分貼對位置就沒問題;另外可用區域的區網選擇也需搭配相關EC2使用的。

Auto Scaling根據設定自動對其進行擴展和縮減,建立服務要注意的地方是:
1. 創建使用的AMI檔,應已包含掛載EFS以便程式檔案更新時使用。當然AWS推薦的是CodeDeploy去處理;若干部落格推薦AMI手動更新,這些也是能考慮的...不在此篇討論。

※User Data記得加上...實測若沒有加上mount指令,則新的VM不會自動掛載~即便是原製作AMI的環境已掛載好的情況下。
#!/bin/bash
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 DNS名稱:/ /掛載使用的資料夾

2. 安全群組不要新建使用EFS相同的即可。
3. 增減條件與數量這部分依照實際需要去調整,目前使用的是CPU使用率超過60% 300秒就增加一台,最高增加到3台。
4. 另外要搭配LoadBalance分散風險,所以建立兩個AutoScaling Group關連到同一個LoadBalance。


後記: 就不截圖了AWS的文件還蠻多的且更新頻率高,有搭配相關超連結到時候需要再點選進去看即可。

2019年9月11日 星期三

網頁浮動式固定選單_CSS+JS

RWD風行,所以網站的前端要考慮的層面就多了很多,前端目前缺乏所以得自己來,浮動式固定選單挺常用到,備忘囉!!

CSS
<style>
  .navFixed {
  z-index: 10;         
  position: fixed;     
  top: 0;
  left: 0;
  margin-top: 0;
  min-width: 100%;
  opacity: 0.94;
  transition: opacity .5s ease-out; 
  }
</style>

JS
  <script type="text/javascript">
$(function() {
  $(window).scroll(function() {
    if ($(this).scrollTop() > 495)  {          /* 要滑動到選單的距離 */
       $('.dropdowns').addClass('navFixed');   /* 幫選單加上固定效果 */
    } else {
      $('.dropdowns').removeClass('navFixed'); /* 移除選單固定效果 */
    }
  });
});
  </script> 

HTML
  <div class="navFixed" ></div>

參考來源: https://edwardzou.blogspot.com/2017/09/fixMenu.html

透過gsutil進行 GCP Storage 至 AWS S3 操作

參考步驟:http://proanalyst.net/migrate-files-gcs-into-amazon-s3/

1. 建立一個VM並啟用SSH
2. 透過SSH連限制這個VM Instace
3.  寫入.boto

    echo [Credentials] >> ~/.boto
    echo aws_access_key_id = XXX >> ~/.boto
    echo aws_secret_access_key = OOOOO >> ~/.boto

4.  gsutil 指令

    資料夾搬移
    gsutil cp -r gs://BucketName/FolderName/ s3://BucketName/FolderName/
 
    特定檔案類型搬移
    gsutil cp *.jpg gs://BucketName/FolderName/ s3://BucketName/FolderName/