๋ฐฐํฌ ๊ณผ์ •์—์„œ ์žˆ์—ˆ๋˜ ์ผ๋“ค

๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์ธํ•œ ์žฅ์• 

ec2์—” ๋‹ค์–‘ํ•œ ์ŠคํŽ™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ์ „์ด์—ˆ๊ณ  ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„์˜€๊ธฐ์— ๋‹น์—ฐํžˆ t2.small๋กœ ์žก์•„๋‘์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ ๋’ค ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์–ด๋Š์ƒŒ๊ฐ€ ec2๊ฐ€ ๋ป—์–ด์žˆ์—ˆ๋‹ค. ์ด์œ ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ์˜€๋‹ค. ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ํ™•์ธํ•ด ๋ดค๋”๋‹ˆ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žก์•„๋จน๊ณ  ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํฌ์ง€๋„ ์•Š์€ ์„œ๋ฒ„ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค๊ณ  1GB ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค ์žก์•„๋จน๋Š”๊ฒŒ ์˜์•„ํ–ˆ๊ณ  ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“คํ•œํ…Œ ๋ฌผ์–ด๋ดค์ง€๋งŒ ๋กœ์ง์ด ๋ฌธ์ œ์ธ๊ฑฐ ์•„๋‹ˆ๋ƒ๋Š” ๋‹ต๋ณ€์„ ๋งŽ์ด ๋“ฃ๊ฒŒ ๋๋‹ค. 

 

 

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์˜์‹ฌ

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๊ฐ€ ํ•ด์„œ JAVA GC์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ๋‚ด ์ƒํ™ฉ์— ํ•ด๋‹นํ•˜์ง„ ์•Š์•˜๋‹ค. GC์— ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ๋“ค์ด ๋งŽ์•˜์ง€๋งŒ ๊ทธ ์ค‘ ๋‚ด๊ฐ€ ์‹ค์ˆ˜ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค ํ•˜๋Š” ๋ถ€๋ถ„์€ Map ๋ถ€๋ถ„์ด์—ˆ๋‹ค.  Map์„ ์‚ฌ์šฉํ•  ๋•Œ Key๊ฐ’์œผ๋กœ ์ปค์Šคํ…€ํ•œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Java์—์„œ ์ œ๊ณตํ•˜๋Š” GC์— ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค. ๋˜ํ•œ Map์—๋Š” ๊ฐ•๋ ฅํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ์–ด์„œ, ๋‚ด๋ถ€ ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ๋„ GC ๋Œ€์ƒ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  WeakHashMap์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

[ec2 JVM ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์ฒดํฌ]

https://dgjinsu.tistory.com/24

 

[Colony] JAVA ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์ฒดํฌ ๋ฐ JVM ๋ชจ๋‹ˆํ„ฐ๋ง

ํ”„๋กœ์ ํŠธ๋ฅผ ec2์— ๋ฐฐํฌํ•ด ๋’€๋Š”๋ฐ ์ž๊พธ ์„œ๋ฒ„๊ฐ€ ๋ป—๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์ฒ˜์Œ ์ผฐ์„ ๋• ์†๋„๋„ ๋น ๋ฅด๊ณ  ๊ดœ์ฐฎ๋‹ค๊ฐ€ 2~3์‹œ๊ฐ„ ๋’ค ์ ‘์†ํ•ด๋ณด๋ฉด ๋Š๋ ค์ ธ์žˆ๊ณ  ๋‹ค์Œ ๋‚  ์ ‘์†ํ•˜๋ฉด ๋ป—์–ด์žˆ์—ˆ๋‹ค. ์ฒ˜์Œ ์ผฐ์„ ๋• ๊ดœ์ฐฎ๋‹ค

dgjinsu.tistory.com

 

 

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์žก์•„๋จน์—ˆ๋˜ ์ด์œ 

colony ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž 2๋ช…, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž 2๋ช…์ด์„œ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ ๋‚˜ ์ œ์™ธ ๋ชจ๋“  ์ธ์›์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฒ˜์Œ์ด์—ˆ๊ธฐ์— ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ด ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” ๋‚˜๋„ ์ž˜ ๋ชจ๋ฅด๊ธฐ์— ๋„์›€์„ ์ค„ ์ˆ˜ ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฏธ ์‚ฌ์šฉํ•ด๋ณธ ํƒ€์ž„๋ฆฌํ”„๋ฅผ ์‚ฌ์šฉํ•ด view๋ฅผ ๊ตฌ์„ฑํ•˜์˜€๋‹ค. ๊ฒฐ๊ตญ ์„œ๋ฒ„์— view ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ „๋ถ€ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋˜๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฌด๊ฑฐ์›Œ์งˆ ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋‹ค. ์ •๋ง ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ swap๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žก๊ณ  ๋ฉฐ์น  ์ง€์ผœ๋ณด์•˜๋‹ค. ์Šค์™‘๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žก์•„๋‘๋‹ค๋ณด๋‹ˆ ๋Š๋ฆฌ๊ธด ํ–ˆ์ง€๋งŒ ๋”์ด์ƒ ๋ป—์ง„ ์•Š์•˜๋‹ค.

 

์ •๋ฆฌํ•˜์ž๋ฉด t2.small์˜ 1G์˜ RAM์€ view ๊นŒ์ง€ ๊ฐ–๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ๊ฒฌ๋””์ง€ ๋ชป ํ–ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค.

 

 

์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ ์†๋„ ๊ฐœ์„ 

 

๋กœ์ง์ ์œผ๋กœ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ์ตœ๋Œ€ํ•œ ์ฐพ์•„๋ดค๋‹ค. JPA ์ฟผ๋ฆฌ ๊ฐ™์€ ๋ถ€๋ถ„์€ ๋กœ์ง์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ผผ๊ผผํžˆ ์‚ดํˆ๊ธฐ์— ๋ฌธ์ œ ์—†์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ๊ฐ์ง€๋„ ๋ชป ํ–ˆ๋˜ ๋ถ€๋ถ„์—์„œ ์„ฑ๋Šฅ๊ฐœ์„ ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์งˆ๋ฌธ ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์„ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ, ๋‹ค๋ฅธ ์š”์ฒญ๋“ค์— ๋น„ํ•ด static์— ์ €์žฅํ•ด๋’€๋˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ๋“ค์—ˆ๋‹ค. ์ •์  ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด์„œ๋„ s3 bucket์— ๋„ฃ์–ด ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋‹ˆ ์†๋„๊ฐ€ ๋ˆˆ์— ๋›ฐ๊ฒŒ ๊ฐœ์„ ๋๋‹ค.

 

 

์ถ”๊ฐ€๋กœ cloud front ๋ž€ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. CloudFront๋Š” AWS์—์„œ ์ œ๊ณตํ•˜๋Š” CDN ์„œ๋น„์Šค๋‹ค. ์บ์‹ฑ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ข€ ๋” ๋น ๋ฅธ ์ „์†ก ์†๋„๋ฅผ ์ œ๊ณตํ•จ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค. CloudFront๋Š” ์ „ ์„ธ๊ณ„ ์ด๊ณณ์ €๊ณณ์— Edge Server(Location)์„ ๋‘๊ณ  Client์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด Edge Server๋ฅผ ์ฐพ์•„ Latency๋ฅผ ์ตœ์†Œํ™”์‹œ์ผœ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ Latency ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ณธ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด๋‹ค. 

ํ•˜์ง€๋งŒ colony ํ”„๋กœ์ ํŠธ์—” ์ •์  ์ด๋ฏธ์ง€๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ์— ์˜ค๋ฒ„์ŠคํŽ™์ด๋ผ ์ƒ๊ฐ๋˜์–ด ๋ฐฐ์ œํ•˜์˜€๋‹ค. 

 

 

๋ถ€ํ•˜ํ…Œ์ŠคํŠธ

๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ž€ ์ž„๊ณ„๊ฐ’ ํ•œ๊ฒŒ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๋ฅผ ์ง€์†์ ์œผ๋กœ ๊พธ์ค€ํžˆ ์ฆ๊ฐ€์‹œ์ผœ ์‹œ์Šคํ…œ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ํˆด๋กœ๋Š” Jmeter์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. 

 

์‚ฌ์‹ค ๋™์•„๋ฆฌ์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ๋กœ ์‚ฌ์šฉํ•  ๋ชฉ์ ์ด์—ˆ๊ธฐ์— ์‚ฌ์‹ค ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๊นŒ์ง„ ํฐ ์˜๋ฏธ ์—†๋‹ค ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ƒฅ 2GB (t4.small)๋กœ ์ŠคํŽ™ ์žก์•„๋‘๊ณ  ์šด์˜ํ•ด๋„ ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ด ์ปธ๋‹ค.

์ดˆ๋‹น 50๊ฑด์˜ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ ์‘๋‹ต๊นŒ์ง€ ํ‰๊ท  2์ดˆ๊ฐ€๋Ÿ‰ ์†Œ๋ชจ๋˜๋Š”๊ฑธ ํ™•์ธํ–ˆ๊ณ  t4.small๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. t4.small์„ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด ํ•œ๋‹ฌ์— 17000์› ์ •๋„์˜ ์š”๊ธˆ์ด ๋‚˜์™”๋‹ค.