2017年7月25日 星期二

AWS ECS 實作 mongo + mongo-express

https://www.youtube.com/watch?v=3a8xYLU0JgY&feature=youtu.be

AWS ECS 開始入坑筆記。

1.看了一下,去年十月剛推出,我就摸了,還有沒砍的repo,都沒注意到。
2.重摸,順很多,記得剛推出時,有很多靈異狀況都不見了。
3.ECS 主要是將每一個 專案 打包成 Docker Image 上傳到 ECR 上,之後的更新都是以更新 Image 為主。這和 eb (multi-docker)不一樣。
4.eb(multi-docker) 只能在一台機器裡只有1024的memeroy 配置到每一個 docker container 裡,如果只有一堆靜態網站,還ok,但當要操作db時,惡夢就來臨了。
5.原本 db 目錄在 instance 裡,當AWS 偵測到流量 HA 啟動時,會砍舊的instance,自動開新的instance,資料就全沒了。
6.當我開始掛ecs時,我的mongo一直不斷的掛掉,原來是memory不夠。但傻掉,eb只給1024可配置,我的container 還有 ui ...
7.另外不便是 eb create 之後,之前通常可以直接 eb deploy ,但掛 ecs 之後,每次都eb deploy fail.....所以每次都要再 eb create 新主機,也太折騰人。
8.因為問題太多了。另外看ECS經過半年的推出,看起來穩定很多,某默司大神用的很開心,好吧!
開始進入ECS的世界。


2017年7月24日 星期一

找出mongo一直斷線,導致parse-server跟著斷線,導致整個服務中斷的原因

1.發現 multi-docker的 eb 每一次 eb deploy 都會將舊的contianer 砍掉,重新建新的。
2.ebs mount 上去之後,mongo很容易斷線。
mongo很容易斷線的原因是因為mongo container 太小?
還是ebs太大?

3.直接mount node_moudle / 然後減少 ui 的 memory 加到 parse-server 跟 mongo 各256

4. 先 eb create 然後,設定完 https ; email
5.再將 版本丟過去
6.如果出現 Internal Server Error 就console重建吧
因為會重建container故
再進shell重新 service docker restart

2017年7月20日 星期四

aws eb multi-docker with ebs restart

最好先開好兩台機器

1. eb deploy如果動到 Dockerrun.aws.json 很容易導致整個 eb  instance 掛掉,最好先將ebs snapshot 掛在能用的那台eb 然後,所有服務先轉過去,再繼續玩下去。

3.snapshot ebs volume
4.umount 舊的 ebs
5.mount ebs volume:snapshot
6.service docker restart
7.console reboot
不行的話 service docker restart 然後一個一個docker start
sudo docker start $(sudo docker ps -a -q)

8.確定都正常之後,再將服務轉回來



2017年7月18日 星期二

AWS eb 操作良方

一個eb環境
開dev , prod兩個,跟一個 ebs 資料存這裡
eb deploy 只到dev,免得搞掛全部
確認之後
就將版本 部署到 prod
是 需要 重啟 prod (因為ebs mount ; multi-docker 的 eb 會認不到,需要重啟!)





2017年7月17日 星期一

nodejs unzip

s3.getObject({ Bucket: opts.bucket, Key: key }).createReadStream().pipe(unzip.Extract({ path: 'data' }))

2017年7月7日 星期五

punnycode 中文網址 中文網域 轉換

https://www.npmjs.com/package/punycode