nGrinder

์‚ฌ๋‚ด ๋ฌธ์„œ๋กœ ์ž‘์„ฑํ•œ ๊ธ€์ด๋‹ค.

nGrinder๋Š” ๋„ค์ด๋ฒ„๊ฐ€ Grinder๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•œ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด ํƒ€๊ฒŸ ์„œ๋ฒ„์— ๋ถ€ํ•˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , ์ด๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜

image

nGrinder๋Š” ์ปจํŠธ๋กค๋Ÿฌ์™€ ์—์ด์ „ํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ†ต๊ณ„๋ฅผ ๋‚ด๋ฉฐ ์›น ui๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์‹ค์ œ ํƒ€๊ฒŸ์— ๋ถ€ํ•˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ์™€ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋ฉฐ, ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์—์ด์ „ํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ ํ’€์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ nGrinder ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ์—๊ฒŒ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฐํฌํ•ด ๊ฐ™์€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ปจํŠธ๋กค๋Ÿฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • 80: ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ธฐ๋ณธ ์›น UI ํฌํŠธ
  • 9010-9019: ์—์ด์ „ํŠธ๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘์†ํ•˜๋Š” ํฌํŠธ
  • 12000-12029: ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ• ๋‹นํ•˜๋Š” ํฌํŠธ

์„ค์น˜

์„ค์น˜๋Š” ๋„์ปค๋ฅผ ์“ฐ๋Š” ๊ฒŒ ์ •์‹  ๊ฑด๊ฐ•์— ์ด๋กœ์› ์Šต๋‹ˆ๋‹ค. (์ˆ˜๋™ ์„ค์น˜๋Š” war ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„ ์ž๋ฐ”๋ฅผ ์ด์šฉํ•ด ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค: https://github.com/naver/ngrinder/releases)

๋„์ปค๋ฅผ ์‚ฌ์šฉํ•ด ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค: https://hub.docker.com/r/ngrinder/controller/

$ docker pull ngrinder/controller:3.4
$ docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller:3.4

์ด์–ด์„œ ์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— ์ปจํŠธ๋กค๋Ÿฌ์˜ ip๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

$ docker exec {id} ip addr show eth0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0

์—์ด์ „ํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. {controller_ip}:{controller_web_port}๋Š” ์ง์ ‘ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ controller_ip๋Š” ์œ„์—์„œ ํ™•์ธํ•œ 172.17.0.2์ด๊ณ , ๊ธฐ๋ณธ ํฌํŠธ๋Š” 16001์ด๋‹ˆ๊นŒ 172.17.0.2:16001์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

$ docker pull ngrinder/agent:3.4
$ docker run -v ~/ngrinder-agent:/opt/ngrinder-agent -d ngrinder/agent:3.4 {controller_ip}:{controller_web_port}

์„ค์ •

~/ngrinder-agent์— __agent.confํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋ฉด ๊ธฐ๋ณธ ์„ค์ •์„ ๋ฎ์–ด ์”Œ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

common.start_mode=agent
agent.controller_host=172.17.0.2
agent.controller_port=16001
#agent.region=
#agent.host_id=
#agent.server_mode=true
    
# provide more agent java execution option if necessary.
#agent.java_opt=
# set following false if you want to use more than 1G Xmx memory per a agent process.
#agent.limit_xmx=true
# please uncomment the following option if you want to send all logs to the controller.
#agent.all_logs=true
# some jvm is not compatible with DNSJava. If so, set this false.
#agent.enable_local_dns=false

์—์ด์ „ํŠธ๋ฅผ ๋„์šฐ๋ฉด ~/ngrinder-agent ํ•˜์œ„์— .ngrinder-agent ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์žˆ๋Š” agent.conf ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์—์ด์ „ํŠธ๋ฅผ ๋„์šฐ๋ฉด __agent.conf์„ค์ •์„ ๋ฐ”๊ฟ”๋„ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋‹ˆ ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.[1]

์‹คํ–‰

์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋„์šฐ๋ฉด 127.0.0.1:80์—์„œ ์›น ui๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋œ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” admin์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ํ›„ ์ฒซ ํ™”๋ฉด์—์„œ URL์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ํ–ฅํ•œ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์„ค์ • ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

image

vuser(viertual user)๋Š” ๋™์‹œ ์ ‘์†์ž ์ˆ˜๋ฅผ ๋œปํ•˜๋ฉฐ, ๊ฐ๊ฐ์˜ vuser๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‘๋‹ต์„ ๋ฐ›๋Š” ์ฆ‰์‹œ ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. vuser = agent * processes * threads์ž…๋‹ˆ๋‹ค. vuser ์ž…๋ ฅ ํ•„๋“œ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” โ€˜+โ€™ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ๋กœ vuser ์ˆ˜๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ํ•˜๋‚˜ ๋‹น vuser์˜ ์ตœ๋Œ€์น˜๋Š” 3000์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋„˜๊ธฐ๊ณ  ์‹ถ์œผ๋ฉด ์—์ด์ „ํŠธ๋ฅผ ๋” ๋„์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

vuser ramp-up๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์„ค์ •์—์„œ๋Š” ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 1000ms๋งˆ๋‹ค vuser๋ฅผ 2์”ฉ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. (ํ”„๋กœ์„ธ์Šค๋Š” ๋น„์‹ผ ๋ฆฌ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. nGrinder 3.3๋ถ€ํ„ฐ ์“ฐ๋ ˆ๋“œ ramp-up์„ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.) ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„์„ 1๋ถ„์œผ๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— vuser ์ตœ๋Œ€์น˜์— ๋„๋‹ฌํ•˜๋Š” ์‹œ๊ฐ„์ด 1๋ถ„์„ ๋„˜์ง€ ์•Š๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์–ด๋А ์‹œ์ ๋ถ€ํ„ฐ ์—๋Ÿฌ๋ฅผ ์ผ์œผํ‚ค๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚˜๋ฉด ํ†ต๊ณ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

TPS(Transactions Per Second)๊ฐ€ ์ผ์ •ํ•˜๊ฒŒ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. vuesr๊ฐ€ 489๋ช…์ด ๋œ 24์ดˆ์—์„œ ์ตœ์ดˆ ์—๋Ÿฌ ๋‘ ๊ฐœ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. TPS๋Š” ์ดˆ๋‹น ์š”์ฒญ์„ ๋ช‡ ๊ฐœ ์ฒ˜๋ฆฌ ํ–ˆ๋Š”์ง€ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ ํ•˜๋‚˜์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ 1์ดˆ๋ฅผ ๋„˜๊ธด๋‹ค๋ฉด TPS๊ฐ€ ์ „์ฒด ์š”์ฒญ ๊ฐœ์ˆ˜๋ณด๋‹ค ๋‚ฎ๊ฒŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋กœ๊ทธ๋Š” ~/ngrinder-controller/perftest/0_999 ๋””๋ ‰ํ† ๋ฆฌ์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ถ„๋ฅ˜๋˜์–ด ์Œ“์ž…๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. jython๊ณผ groovy๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ ์‹œ์ž‘ ์ „, ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ค‘ ๋™์ž‘์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. grinder ํ™ˆํŽ˜์ด์ง€์— ๋‹ค์–‘ํ•œ ์Šคํฌ๋ฆฝํŠธ ์˜ˆ์‹œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค: http://grinder.sourceforge.net/g3/script-gallery.html

(+) AWS Elastic Beanstalk

์•ž์„œ CloudFront(CF)๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋Š”๋ฐ ์˜ˆ์ƒํ•œ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•„ ์„ค์ •์„ ์ž˜๋ชปํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์—๋Ÿฌ๊ฐ€ ํ•œ ๋ฒˆ ์‹œ์ž‘๋˜๋ฉด TPS๊ฐ€ ๊ธ‰๋ฝํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Elastic Beanstalk(EB)๋ฅผ ์ด์šฉํ•ด ํ…Œ์ŠคํŠธํ•ด๋ดค์Šต๋‹ˆ๋‹ค. EB๋Š” ์‰ฝ๊ฒŒ ์›น์•ฑ์„ ๋ฐฐํฌ, ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. EB๋ฅผ ์ƒ์„ฑํ•˜๋ฉด EC2 ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€์ ์ธ ์„ค์ • ์—†์ด ๋ฐ”๋กœ ์›น์•ฑ์„ ๋ฐฐํฌํ•ด์ค๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” nGrinder ์„ค์ •์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋งŒ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ํŠน์ • ์„œ๋น„์Šค์˜ mock ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

image

CF์™€ ๋‹ค๋ฅด๊ฒŒ ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ์ ๋ถ€ํ„ฐ ์‘๋‹ต์ด ๋Œ์•„์˜ค์ง€ ์•Š๊ณ  ํƒ€์ž„์•„์›ƒ๋ผ TPS ๊ทธ๋ž˜ํ”„๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. CF์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ์ž˜ ๋ผ์„œ ๊ทธ๋Ÿฐ๊ฑธ๊นŒโ€ฆ๋ผ๊ณ  ์ถ”์ธกํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›„๊ธฐ

ํ…Œ์ŠคํŠธ 1

  • ๋žŒ๋‹ค ์—ฃ์ง€๋ฅผ ์ด์šฉํ•ด ์ธ๋„ค์ผ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค.[2] ๊ฐ‘์ž๊ธฐ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆด ์ƒํ™ฉ์„ ๋Œ€๋น„ํ•ด ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋‹ค.
  • dummy thumbnail์˜ CloudFront ์ฃผ์†Œ๋กœ 3๋ถ„๊ฐ„ 30๋งŒ๊ฐœ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค.
  • ์—๋Ÿฌ๊ฐ€ ์Ÿ์•„์ง€๋ฉฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์ค‘๋‹จ๋๋‹ค. ์™œ ์ด๋ ‡๊ฒŒ ๋นจ๋ฆฌ ์ฃฝ์ง€?

ํ…Œ์ŠคํŠธ 2

  • ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์„ค์ •์„ ์ž˜๋ชปํ–ˆ๋‚˜ ์‹ถ์–ด์„œ ๋„ค์ด๋ฒ„ cdn์œผ๋กœ ๊ฐ™์€ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค.
  • ์–ด๋А์ •๋„ ๋˜๋‹ˆ๊นŒ ์—๋Ÿฌ๊ฐ€ ์Ÿ์•„์กŒ๋‹ค. ๊ทธ๋ž˜๋„ ๋” ์˜ค๋ž˜ ๋ฒ„ํ…ผ๋‹ค.

ํ…Œ์ŠคํŠธ 3

  • ์–ด๋А ์ •๋„์—์„œ ์ฃฝ๋Š”๊ฑด์ง€ ๊ถ๊ธˆํ•ด์„œ ramp-up ๋ฐฉ์‹์œผ๋กœ CloudFront ์ฃผ์†Œ์— ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค.
  • 1000ms๋งˆ๋‹ค vuser๋ฅผ 1์”ฉ ์˜ฌ๋ ธ๋‹ค. ์–ด๋А ์ง€์ ์—์„œ ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š”์ง€ ์•Œ๊ฒŒ ๋๋‹ค.
  • ๊ทผ๋ฐ ๋ณดํ†ต์€ ์—๋Ÿฌ๊ฐ€ ๋–จ์–ด์ง€๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๊ทธ๋ž˜ํ”„๊ฐ€ ๋š ๋–จ์–ด์ง„๋‹ค๋Š”๋ฐ, cf๋Š” ๊ทธ๋ ‡์ง€ ์•Š์•˜๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š”๋ฐ๋„ ๊ณ„์† ์‘๋‹ต์ด ์˜ค๊ธดํ–ˆ๋‹ค. aws๊ฐ€ load balancing์ด๋‚˜ auto scalingํ•ด์„œ ๊ทธ๋Ÿฐ๊ฐ€? ngrinder ์„ค์ •์„ ์ž˜๋ชปํ–ˆ๋‚˜?

ํ…Œ์ŠคํŠธ 4

  • AWS Elastic Beanstalk์— node ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฐ™์€ ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ ธ๋‹ค.[3]
  • ์˜ˆ์ƒ๋Œ€๋กœ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ์‹œ์ ์— tps(transaction per second)๊ฐ€ ๋š ๋–จ์–ด์ง€๊ณ  ์‘๋‹ต์ด ์ „ํ˜€ ์˜ค์ง€ ์•Š์•˜๋‹ค.
  • ngrinder ์„ค์ •์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค. ๊ทธ๋ƒฅ cf๊ฐ€ ํŠน์ดํ•œ๋“ฏ.

๊ฒฐ๋ก 

  • ์•Œ๊ณ ๋ณด๋‹ˆ CloudFront๋Š” ๊ธฐ๋ณธ ์ดˆ๋‹น 100,000๊ฑด ์ œํ•œ์ด ์žˆ์—ˆ๋‹ค.[4]
  • cf์— ์บ์‹œ๋œ ์ดํ›„์—๋Š” tps๊ฐ€ ๋†’์•„์กŒ๋‹ค. ์ด์ •๋„๋ฉด ์„œ๋น„์Šคํ•˜๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

์ด ๋ฌธ์„œ๋ฅผ ์ธ์šฉํ•œ ๋ฌธ์„œ


  1. ๋ฐฐ์ƒ์ต, โ€œnGrinder agent๊ฐ€ controller์— ๋ชป๋ถ™๋Š” ํ˜„์ƒโ€, ์•„์ด๋‹จ์€ ์–ด๋””๊ฐ”์„๊นŒ, 2018. โ†ฉ๏ธŽ

  2. Jinho Hong, โ€œLambda ํ•œ๊ฐœ๋กœ ๋งŒ๋“œ๋Š” On-demand Image Resizingโ€, Huiseoul Engineering, 2018. โ†ฉ๏ธŽ

  3. ๊ถŒ์šฉ๊ทผ, โ€œ๊ฒฐ์ œ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ, ๋ถ€ํ•˜, ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธโ€, ์šฐ์•„ํ•œํ˜•์ œ๋“ค ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ, 2018. โ†ฉ๏ธŽ

  4. โ€œAmazon CloudFront - ํ•œ๋„โ€, AWS ์„ค๋ช…์„œ, 2016. โ†ฉ๏ธŽ