2018/2/20ã«Arukasã®Î²ãµã¼ãã¹ãåéãã¾ãããï¼ï¼å¾ ã£ã¦ã¾ããï¼ï¼ï¼
ã¨ãããã¨ã§æ©é使ã£ã¦ã¿ã¾ããã
ä½ãå¤ãã£ãã®ï¼
GitHubã¢ã«ã¦ã³ãã§ã®ãµã¤ã³ã¤ã³/ãµã¤ã³ã¢ããã¯å»æ¢
å
ã»ã©ã®ãç¥ããã«ãæ¸ããã¦ãã¾ããããGitHubã¢ã«ã¦ã³ãã§ã®ãµã¤ã³ã¢ããã廿¢ããã¦ãã¾ããã
以åã®Arukasã§ã¢ã«ã¦ã³ããæã£ã¦ããå ´åã§ãå使ã¨ãªãããã§ãã
以ä¸ãã¼ã¸ãããµã¤ã³ã¢ãããè¡ãã¾ããã
ç¾å¨ã¯äºç´å¶ã¨ãªã£ã¦ããããµã¤ã³ã¢ããå¾ã«ç»é²å¯è½ãªç¶æ
ã«ãªã£ããæå¾
ã¡ã¼ã«ãå±ãã¾ãã
(ç§ã®æã¯30åç¨åº¦ã§å±ãã¾ãã)
4ã¤ã®ãã©ã³ã®ä¸ãã鏿ãå¯è½ã«
課éä½ç³»ã«ã¤ãã¦ãå
¬éããã¦ãã¾ããã
ã¹ããã¯ãã¤ã³ã¹ã¿ã³ã¹æ°ã®å¶éãªã©ã®éãã§ä»¥ä¸4ã¤ã®ãã©ã³ãããã¨ã®ãã¨ã§ãã
åç§° | vCPU | RAM | ä¾¡æ ¼ | æ¦è¦ |
---|---|---|---|---|
Free |
0.1 | 128MB | ç¡æ | åæã«èµ·åã§ããã³ã³ããã¼ã¤ã³ã¹ã¿ã³ã¹ã¯ä¸ã¤ã ã |
Hobby |
0.1 | 512MB | 0.74å/h |
Freeãã©ã³ã¨CPUæ§è½ã¯åããRAMãµã¤ãºå¢ |
Standard x1 |
0.5 | 512MB | 1.48å/h |
Hobbyãã©ã³ããvCPUå¢ |
Standard x2 |
0.5 | 1024MB | 2.96å/h |
Standard x1ãã©ã³ããRAMãµã¤ãºå¢ |
ãªããFree
ãã©ã³ä»¥å¤ãä¸åº¦ã§ãèµ·åããæã¯åºæ¬æéã¨ãã¦æé¡50åä¸ä¹ããããã¨ã®ãã¨ã§ãã
APIãçµæ§å¤ãã£ã
ã¾ãããµã¼ãã¹åéã«åããã¦APIã«ã¤ãã¦ãæ´æ°ããã¦ãã¾ããã
èªè¨¼ãå¿
è¦ãªããããªã©ã«ã¤ãã¦ã¯å¤æ´ãªãããã§ããããªã½ã¼ã¹åããªã½ã¼ã¹ã®å
容ã«ã¤ãã¦ã¯ã ãã¶å¤ãã£ã¦ãã¾ãã
ä¾: app_sets
ã¨ãã¯ç¡ããªãã¾ããã
æ§Arukas APIãå©ç¨ãã¦ããå ´åã¯å¤æ´ãå¿
è¦ã§ãããã
åãæ¥ãGoè¨èªã«ã¤ãã¦APIã©ã¤ãã©ãªã使ãã¦ããã¾ããã®ã§ãã²ãå©ç¨ãã ããã
APIã©ã¤ãã©ãªãä½ã£ããã¢ããªã欲ãããªãã¾ããã®ã§ã¨ããããä½ã£ã¦ããã¾ããã
Arukasã§ä»»æã®ã³ãã³ããå®è¡ãããRarukasãã³ãã³ã
shell(sh)ã«å¯¾ããremote-shell(rsh)ã¿ããã«ãArukasã§ãã£ã¨æè»½ã«ã³ãã³ãå®è¡ããããªã¼ã¨ãããã¨ã§remote-arukas = rarukas
ã¨ããã³ãã³ãä½ãã¾ããã
GitHub: rarukas - CLI for running one-off command(s) on Arukas
Goè¨èªã§æ¸ãã¦ã¾ãã®ã§ãã¤ã³ã¹ãã¼ã«ã¯ãã¤ããªãGitHubãããã¦ã³ãã¼ããã¦å®è¡æ¨©ä»ä¸ããã ãã§ãã
ãã¦ã³ãã¼ãã¯ä»¥ä¸ã®GitHub Releasesãã¼ã¸ããè¡ãã¾ãã
以ä¸ã®ãããªæãã§ä»»æã®ã³ãã³ããArukasä¸ã®ã³ã³ããã§å®è¡å¯è½ã§ãã
ã³ã³ããã¯ãªã³ããã³ãã«ä½æãããã³ãã³ãå®è¡ãçµäºããã¨ç ´æ£ããã¾ããã¨ã³ã§ããï¼ï¼
# äºåã«APIãã¼ãç°å¢å¤æ°ã«è¨å®(ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ã§ãæå®å¯) $ export ARUKAS_JSON_API_TOKEN=<APIãã¼ã¯ã³> $ export ARUKAS_JSON_API_SECRET=<APIã·ã¼ã¯ã¬ãã> # Arukasä¸ã§curlã³ãã³ããå®è¡ $ rarukas curl -L https://arukas.io/
åãã¨ãã¦ã¯ãããªæãã§ãã
- SSHç¨ã®ãã¼ãã¢ãçæ(ãªãã·ã§ã³æå®ã§ãã¼ã®æå®ãã§ãã)
- Arukas APIã§ã³ã³ãã使 & èµ·åãSSHç¨ã®å
¬ééµãArukas APIçµç±ã§ã³ã³ããã«æ¸¡ã
(èµ·åããã³ã³ããã¯Rarukas
å´ã§ç¨æããSSH/SCPå¯è½ãªã¤ã¡ã¼ã¸ãå©ç¨ãã¦ã¾ã) - (ä»»æ)ã³ã³ãããèµ·åãããSCPã§ãã¼ã«ã«ã®ãã¡ã¤ã«ãã³ã³ããã®workdirã¸ã¢ãããã¼ã
- ã³ã³ããä¸ã§æå®ã®ã³ãã³ãå®è¡
- (ä»»æ)ã³ã³ããä¸ã®workdirããã¼ã«ã«ã«ãã¦ã³ãã¼ã
- Arukas APIã§ã³ã³ããç ´æ£
å®è¡ãããã³ãã³ãã¯ãã¡ã¤ã«ã§ã®æå®ãã§ãã
å®è¡ãããã³ãã³ãã¯ãã¡ã¤ã«ã§ã®æå®ãå¯è½ã«ãªã£ã¦ãã¾ãã
ä¾ãã°ãã¼ã«ã«ãã·ã³ã«run_on_arukas.sh
ã¨ããã¹ã¯ãªãããç¨æãã¦ããã¦ã以ä¸ã®ããã«ãªãã·ã§ã³æå®ããã°OKã§ãã
ã好ããªã·ã§ã«ã¹ã¯ãªãããå©ç¨ã§ãã¾ãï¼
# å®è¡ãããã³ãã³ããå¥ãã¡ã¤ã«ã§æå® rarukas -c run_on_arukas.sh
ãã¼ã«ã«ãã·ã³ã®ãã¡ã¤ã«ãã¢ãããã¼ã/ã³ãã³ãå®è¡å¾ã«ã³ã³ãããããã¦ã³ãã¼ã
ããã«ã¯SCPçµç±ã§ãã¡ã¤ã«/ãã£ã¬ã¯ããªã®ããã¨ããã§ããããã
- ãã¼ã«ã«ã®å¦çããããã¼ã¿ãã¢ãããã¼ã
- Arukasä¸ã§å å·¥
- å å·¥ãããã¼ã¿ããã¼ã«ã«ã«ãã¦ã³ãã¼ã
ã¨ãããã¨ãã§ãã¾ãã
ãã®ããã«--sync-dir
ã¨ãããªãã·ã§ã³ãç¨æãã¦ãããããã§æå®ãããã£ã¬ã¯ããªãã³ãã³ãå®è¡åã«ã¢ãããã¼ããã³ãã³ãå®è¡å¾ã«ãã¦ã³ãã¼ããã¦ãããããã«ãªãã¾ãã
# ã«ã¬ã³ããã£ã¬ã¯ããªã®å 容ãã¢ãããã¼ã/ã³ãã³ãå®è¡ã§çæããããã¡ã¤ã«ããã¦ã³ãã¼ã $ rarukas --sync-dir . "echo from-arukas > result.txt" # ãã¼ã«ã«ãã·ã³ã«ã³ã³ããä¸ã§çæããããã¡ã¤ã«ããã¦ã³ãã¼ãããã¦ãã $ ls result.txt
ãã¼ã¹ã¤ã¡ã¼ã¸ã®é¸æãã§ãã
Arukasä¸ã§èµ·åããã³ã³ããã®ãã¼ã¹ã¤ã¡ã¼ã¸ã¯ããã©ã«ãã§ã¯è»½éãªalpine
ãã¼ã¹ã§ãããå®è¡ãããã³ãã³ãã«å¿ãã¦ä»¥ä¸ã®ãããªãã®ãæå®ã§ãã¾ãã
alpine
: ããã©ã«ããalpineãã¼ã¹ã®è»½éã¤ã¡ã¼ã¸centos
: CentOS7ãã¼ã¹ubuntu
: Ubuntu 16.04ãã¼ã¹ansible
: Ansibleå®è¡ç¨ã®alpineãã¼ã¹ã¤ã¡ã¼ã¸sacloud
: ãããã®ã¯ã©ã¦ãç³»ãã¼ã«(usacloud
ãterraform
ãpacker
ãªã©)ã®å®è¡ç¨ã¤ã¡ã¼ã¸ãalpineãã¼ã¹
ãã¼ã¹ã¤ã¡ã¼ã¸ã¯ãªãã·ã§ã³æå®ãããã¨ã§å¤æ´ã§ãã¾ãã
# ubuntuãã¼ã¹ã®ã¤ã¡ã¼ã¸ãå©ç¨ããå ´å rarukas --type ubuntu <your-command>
ã©ããªæã«ä½¿ãã®ï¼
ãããå¦çã®ãªããã¼ããå¤å°æéãããã£ã¦ãããããèªåã®ãã·ã³ã®è² è·ãä¸ããããªãæãªã©ã«ä¾¿å©ã§ãã
rarukas
ã³ãã³ãã§Arukasã³ã³ãããèµ·åããã®ã«ã¯æ©ãã¦10ã20ç§ãè² è·ç¶æ³ã«ãã£ã¦ã¯ããå°ãããããã¨ãããããéåº¦ãæ±ããå¦çã«ã¯åãã¾ãããã
è¤æ°ã®ã³ã³ããã«åæ£ãã¦ä¸¦åã«å¦çã§ãããããªå ´é¢ã§ã¯ç価ãçºæ®ãã¾ãã
å©ç¨ä¾: 10ã³ã³ããã§ã³ãã³ãã忣/並åå®è¡
以ä¸ã®ããã« xargs
ãªã©ã¨çµã¿åããããã¨ã§ä»»æã®å¦çãè¤æ°ã®ã³ã³ããã«åæ£/並åå®è¡ã§ãã¾ãã
ãã®ä¾ã§ã¯echo Hello World from Rarukas -(é£çª)
ã¨ããã³ãã³ãã10å°ã«åæ£/並åå®è¡ãã¦ãã¾ãã
(è¤æ°ã¤ã³ã¹ã¿ã³ã¹ã®å©ç¨ã¨ãªãããã--plan
ãªãã·ã§ã³ã§hobby
ãã©ã³ãå©ç¨ããããã«æå®)
# 10ã³ã³ããã«åæ£ãã¦ã³ãã³ãå®è¡ $ seq 10 | xargs -P10 -n1 rarukas --plan hobby echo Hello from Rarukas -$1
ãããå®è¡ããã¨ä»¥ä¸ã®ãããªè¡¨ç¤ºã«ãªãã¯ãã§ãã
ãã ãã並åå®è¡ã®ããé åºã¯ä¿è¨¼ããã¾ããã®ã§å¤å°åºåé ãç°ãªãå¯è½æ§ãããã¾ãã
# è¦ãããããããã«æ¨æºã¨ã©ã¼åºåã¯é¤ãã¦ãã¾ã Hello from Rarukas - 2 Hello from Rarukas - 9 Hello from Rarukas - 4 Hello from Rarukas - 1 Hello from Rarukas - 8 Hello from Rarukas - 3 Hello from Rarukas - 7 Hello from Rarukas - 10 Hello from Rarukas - 5 Hello from Rarukas - 6
å©ç¨ä¾: Ansibleã§è¤æ°ãã·ã³ã®ãããã¸ã§ãã³ã°ãã¬ãã¼ã使ã忣/並åå®è¡
å
ã»ã©ãåºã¦ãã¾ããããansible
ã³ãã³ããå®è¡ã§ããã¤ã¡ã¼ã¸ãç¨æãã¦ãã¾ãã
ãããå©ç¨ããã°èªãã·ã³ã«è² è·ãããããã¨ãªã大éã®ãµã¼ãã®ãããã¸ã§ãã³ã°ãè¡ãã¾ããã
ã¾ãã¯ã¤ã³ãã³ããªãã¡ã¤ã«ãSSHç¨ã®ç§å¯éµãªã©ãæºåãã¦ããã¾ãã
ãã®ä¾ã§ã¯ãããã¸ã§ãã³ã°å¯¾è±¡ã®åãµã¼ãæ¯ã«ã¤ã³ãã³ããªãã¡ã¤ã«&ç§å¯éµãç¨æããããã«ãã¦ãã¾ãã
# 対象ã®ãµã¼ãæ¯ã«ã¤ã³ãã³ããªãã¡ã¤ã«ã¨ç§å¯éµãæºå $ tree . . âââ host1 â  âââ ansible.cfg â  âââ hosts â  âââ private_key âââ host2 â  âââ ansible.cfg â  âââ hosts â  âââ private_key âââ host3 â  âââ ansible.cfg â  âââ hosts â  âââ private_key âââ host4 â  âââ ansible.cfg â  âââ hosts â  âââ private_key âââ host5 âââ ansible.cfg âââ hosts âââ private_key # ããã¯ã°ã©ã¦ã³ãã§rarukasã³ãã³ãèµ·å(5å°å) $ rarukas --type ansible --plan hobby --sync-dir host1 ansible host1 -i hosts -m setup --tree ./ & $ rarukas --type ansible --plan hobby --sync-dir host2 ansible host2 -i hosts -m setup --tree ./ & $ rarukas --type ansible --plan hobby --sync-dir host3 ansible host3 -i hosts -m setup --tree ./ & $ rarukas --type ansible --plan hobby --sync-dir host4 ansible host4 -i hosts -m setup --tree ./ & $ rarukas --type ansible --plan hobby --sync-dir host5 ansible host5 -i hosts -m setup --tree ./ &
ä»ã«ã大容éã®ãã¡ã¤ã«ã®ãã¡ã¤ã«ã®ãã¦ã³ãã¼ã -> ä»ã®ãµã¼ãã¸éä¿¡ã¨ãã£ãããã«èªãã·ã³ããããã¯ã¼ã¯ã®è² è·ã軽æ¸ãããããªä½¿ãæ¹ãããã¾ããã è²ã å¿ç¨ã§ããã¨æãã¾ãã
ã§ããé«ããã§ããï¼
Rarukas
ã使ããã¨ã§æè»½ã«ã³ã³ãããä½¿ãæ¨ã¦ã§ãã¾ããããã®éã«å¿é
ãªã®ããã£ã±ãæéã§ããã
ä¾ãã°1å°ããã10åãããå¦çã10å°ã§è¡ãªã£ãã¨ããã¨ã1å®è¡ããã100åãæ¯æ¥1åå®è¡ã¨ããã¨30æ¥ã§3,000å = 50æéã§ããã
Hobbyãã©ã³ã ã¨æéããã 0.74å
ã§ãã®ã§ãæé¡å©ç¨æã¨ãã¦ã¯
@0.74å à 50æé + åºæ¬æé50å = 87å
ãªãã¨ã87åï¼ï¼ï¼
87åã§ããï¼ï¼ããã¯ãå®ãã§ããï¼ï¼ï¼
ã¡ãªã¿ã«ãå ¬å¼ãµã¤ãã®æéã®é¨åã«ã課éã¯ç§åä½ãã¨è¨è¼ãããã®ã§ãã¡ãã£ã¨ã ãèµ·åãã¦ç ´æ£ãã = ä½¿ãæ¨ã¦ãéç¨ã«ãã£ã¦ããã§ããï¼ï¼
ã¨ãããã¨ã§ã³ã³ããä½¿ãæ¨ã¦ã«Rarukas
ã¯é常ã«ãæè»½ã§ãã
æ¯éãå©ç¨ãã ããã¼ï¼ï¼
çµããã«
Arukasã¯3/19ã¾ã§ã¯ç¡æã§å©ç¨ã§ããã¨ã®ãã¨ã§ãã
ãã®æ©ä¼ã«ä¸åº¦è©¦ãã¦ã¿ã¦ã¯ãããã§ããããï¼
ãã®éã¯æ¯éRarukas
ã³ãã³ãããããããé¡ããã¾ãï¼ï¼
以ä¸ã§ãã