ํฐ์คํ ๋ฆฌ ๋ทฐ
์ด ๊ธ์ ์ต๊ทผ์ ์์๋ ์๋ฒ OOMKilled ์ฅ์ ๊ณผ์ ์ ๊ธฐ๋ก ๋ฐ ๊ณต์ ํ๋ฉฐ ํ๊ณ ํ๋ ๊ธ์ ๋๋ค.
๋ํ ์ด ๊ธ์ ์ธํ๋ผ ๋ ๋ฒจ(cpu, memory)์์์ ์ฅ์ ๊ฐ์ง ๋ฐ ๋์ ํ๋ก์ธ์ค์ ๊ดํ ๋ด์ฉ์ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์ NPE(Null Point Exception) ๊ฐ์ ์ฝ๋ ๋ ๋ฒจ์์์ ๋ช ํํ๊ณ ๋จ์ํ ๋ฌธ์ ๋ ํฌ๊ฒ ๋ค๋ฃจ์ง ์์ต๋๋ค.
์ฌ๋ฌ๋ถ๋ค์ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด OOMKilled ์ฅ์ ๋ฐ์ ์ ์ด๋ป๊ฒ ๋์ํ์๋์?
์ ๋ ๋ณดํต ๋ค์๊ณผ ๊ฐ์ ํ๋ก์ธ์ค๋ก ๋์ํฉ๋๋ค.
1. ์ฅ์ ๊ฐ์ง
2. ์์๋๋ ์์ธ ๋ฒ์๋ฅผ ํฉ๋ฆฌ์ ์ผ๋ก ์ฐพ๊ณ ๊ฐ์ค์ ์ธ์ด๋ค. (๊ฐ์ค ์๋ฆฝ)
3. ๊ฐ์ค์ ๊ฒ์ฆํ๊ธฐ ์ํด APM, log ๋ฑ ๋จ์๋ค์ ์ฐพ๊ณ ๊ฐ์ค์ ํ์ธํ๊ณ ์์ธ ๋ฒ์๋ฅผ ์ขํ๊ฐ๋ค. (๊ฐ์ค ๊ฒ์ฆ ๋ฐ route finding)
4. ์ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์์ธ์ ๋ช
ํํ ์ฐพ์๋ค๋ฉด ์ด๋ฅผ ํด๊ฒฐํ๋ค. (๋ฌธ์ ํด๊ฒฐ)
5. ํด๊ฒฐ ์ดํ์๋ ๋ช
ํํ ํด๊ฒฐ๋์๋์ง ํ์ธํ๊ธฐ ์ํ ๊ฐ์์ฑ(Observability)๋ฅผ ํ๋ณดํ๊ณ ์ง์ผ๋ณธ๋ค (๋ชจ๋ํฐ๋ง)
6. 1~2์ฃผ ๊ฒฝ๊ณผ ํ ์ด์๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ค. (์ด์ ์ข
๋ฃ)
์ ๋ ์ด๊ฒ ์ผ๋ฐ์ ์ธ ํ๋ก์ธ์ค๋ผ๊ณ ์๊ฐํ๊ณ ์กฐ๊ธ์ ๋์ฒ ํด๋ณด์ผ ์ ์์ง๋ง ์ฅ์ ์๊ฐ์ ์ ๋ ๋นํฉํ ๊ธฐ์์ ๋ณด์ด์ง ์๊ณ ์ด๋ ๊ฒ ํ๊ณ ์์ต๋๋ค. ์ค์ ๋ก ์ฅ์ ๋์ ์ ์ ๋ฅผ ๋ณด์๋ ๋ถ๋ค์ ์ข ๊ธฐ๊ณ๊ฐ๋ค๊ณ ์๊ฐํ์ค ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค ใ
ใ
..
์๋ฌด๋๋ ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ธ๊ฐ์ด๋ค๋ณด๋ ์ด ๊ณผ์ ์ ์ดํดํ๊ณ ์๋๋ผ๋ ๊ทธ ์๊ฐ์ ๊ฐ์ ๋ค๋ก ๋ช
ํํ ํ๋จ์ ํ์ง ๋ชปํ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ง๋ง ํ์ฌ์์๋ ํ๋ก๋ต๊ฒ ์ผํด์ผํ๊ธฐ ๋๋ฌธ์ ์ค์ํ ์๊ฐ์๋ ๊ฐ์ ์ ์ปจํธ๋กคํ ์ ์์ด์ผ ํ๋ค๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๋ฐ ๊ฐ์น๊ด ๋๋ฌธ์ ๊ธฐ๊ณ๊ฐ์ ์ ์์ผ๋ ์คํด๋ ์ ํ์
จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค :)
์ด์ฉ๋ฉด ์์ ์ฅ์ ๋์ ํ๋ก์ธ์ค ๋ด์ฉ์ ๋ณด์๋ฉด์ ์ด๋ฐ ์๋ฌธ์ด ๋์๋ ๋ถ๋ ์์ผ์ค ๊ฒ ๊ฐ์ต๋๋ค.
์ฅ์ ๋ฐ์ ์ ๋น ๋ฅด๊ฒ ๋์ํด์ผ์ง ์ ๋ด ์๊ฐ์ด ์๋?
๋ค, ์ข์ ํฌ์ธํธ์ ๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋น์ฆ๋์ค์ ์น๋ช ์ ์ด๊ณ ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก scaling์ ํตํด ๋์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ์ง๋ง ์ด๊ฑด ์์ ๋ฐฉํธ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ ์ฅ์ ๋ฐ์ ์ ์ ์ ํ action item์ด ๋์ค๋ ๊ฒ ์ข์ ์ฅ์ ๋์์ด๋ผ๊ณ ๋ค๋ค ์์ค๊ฑฐ๋ผ ์๊ฐ๋ฉ๋๋ค.
์ค๋ ์ด์ผ๊ธฐ๋ ์์ ๋ฐฉํธ์ด ์๋๋ผ ์ค์ ์ฅ์ ๋์ ์ ์ด๋ป๊ฒ ์ ์ ํ action item์ ๋ฝ๋์ง. ์ด๋ค ์ฌ๊ณ ๊ณผ์ ๋ค์ด ์ค์ํ์๋์ง ๊ธฐ๋กํ๋ ์ด์ผ๊ธฐ์ ๋๋ค.
์ฅ์ ๋ ์ด๋ป๊ฒ ๋ณดํต ์ด๋ป๊ฒ ๊ฐ์งํ์๋์?
์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ํตํด ์ฅ์ ๋ฅผ ๊ฐ์งํ๊ณ ๊ณ์ค ๊ฒ ๊ฐ์ต๋๋ค. ์ ๊ฐ ๊ฒฝํํ๋ ์ฅ์ ๊ฐ์ง ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ฌ๋ด ๋ชจ๋ํฐ๋ง alert์์ ๊ฐ์ง๋๋ค.
2. ์๋น์ค๋ฅผ ์ฌ์ฉํ์๋ ์ฌ๋ด ๊ตฌ์ฑ์ ๋ถ์ ์ด์ ๋ ์ด์ฆ๋ก ๊ฐ์ง๋๋ค.
3. ์ ์ ์ ์ด์ ๋ ์ด์ฆ๋ก ๊ฐ์ง๋๋ค.
๊ฐ์ด ์ค์
จ๊ฒ ์ง๋ง 2๋ฒ๊ณผ 3๋ฒ์ ๊ธฐ์ ํ์์ ์๋ํ์ง ์์๊ณ ๊ฐ์งํ๊ณ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๊ฝค ์ฌ๊ฐํ ์ํฉ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ํฉ๋ค์ Observability๊ฐ ๋ถ์กฑํ๋ค๋ ์งํ๊ฐ ๋ฉ๋๋ค.
๋ณดํต Observability๋ฅผ ์ ํ๋ณดํด๋ ํ์ ์ฅ์ ์์ธ ํ์
์ด ์ฝ๊ณ ์ ํํ ๋์์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง ์ค์ ์ํฉ์์๋ ์ํํธ์จ์ด์ ํ์ ํญ์ ์งํํ๊ณ ๋น ๋ฅด๊ฒ ๋ฌ๋ฆฌ๋ ์์ค์ ๋ชจ๋ ๊ฑธ ์ฑ๊ธฐ๊ธฐ๋ ์ด๋ ค์ด ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์๊ฐ ๋ฐ์ํ ์ ์๋ ๊ฑด ๋๋ฌด๋ ๋น์ฐํ๊ณ ๊ทธ ์ค์๋ฅผ ์ธ์ ํ๊ณ ํด๊ฒฐ์ ์ ํ๋ ๊ฒ์ด ์ธ๊ฐ์ ์ผ๋ก๋ ์ฑ์ํ๊ณ ํ์ ์ผ๋ก๋ ์ฑ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฅ์ ๊ฐ์ง
์ด๋ฒ ์ฅ์ ๋ ์์ 2๋ฒ์ ํด๋นํ๋ ์ฅ์ ๊ฐ์ง์์ต๋๋ค.
๋คํํ ์ ์ ๋ถ๋ค์๊ฒ ์ง์ ์ ์ผ๋ก ์ฅ์ ๊ฐ ๋
ธ์ถ๋๋ ์ํฉ์ ์๋์์ง๋ง ๋น์ฆ๋์ค์๋ ์น๋ช
์ ์ด์์ต๋๋ค.
Observability๊ฐ ๋ถ์กฑํ๋ ์ํฉ์ด์๊ณ ์ฝ๊ฒ ์ฐพ๊ธฐ ์ด๋ ค์ ์ต๋๋ค. ๊ทธ๋์ ์ผ์์ ์ผ๋ก scailingํด์ ์์ ๋์ ํ ํ๋ฃจ ์ ๋ ๋ช
ํํ ์์ธ ์ฐพ๊ธฐ๋ฅผ ์ํด Observability ๋ณด์์ ์งํํ์ต๋๋ค.
๊ฐ์ค ์๋ฆฝ
์ฅ์ ๊ฐ์ง ํ ๊ฐ์ค์ ์๋ฆฝํฉ๋๋ค.
์ด๋ฒ ์ฅ์ ๋ OOMKilled๋ก pod๋ค์ด ์ฃฝ์ด๋ฒ๋ ธ๊ณ runtime์ ๋์ํ๋ goroutine๋ค์ด ์ ์ค๋๋ ์ํฉ์ด์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํฐ ๋ฒ์์ ์ํ๋ APM์ ๋จผ์ ์ดํด๋ณด๊ธฐ ๋๋ฌธ์ OOMKilled๋ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์๊ณ log์ DB data๋ก goroutine์์์ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์๋ค๋ ๊ฑธ ๊ฐ์งํ ์ ์์์ต๋๋ค.
์ดํ์ ์ธ์ด ๊ฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1) goroutine์ด ์ ์์ ์ผ๋ก ์๋ฃ๋์ง ๋ชปํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ ์์ธ๋ค.
์ด ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ์ ์ด๊ธฐ ๋๋ฌธ์ OOMKilled๊ฐ ๋๊ธฐ ์ถฉ๋ถํ ์ํฉ์ด์์ต๋๋ค. ๊ทธ๋์ ํ์ธ์ด ํ์ํ์ต๋๋ค.
2) goroutine ์์์ ๋ญ๊ฐ ๋ก๋ฉ์ด ๊ธด ๋ถ๋ถ์ด ์๋ค.
์ด ๊ฒฝ์ฐ ์๋ 2๊ฐ์ง๋ฅผ ํ์ธํด์ผํ๋ค๊ณ ํ๋จํ์ต๋๋ค.
1. data๊ฐ ์ ์ฌ๋์ง ์๋ ์ํฉ์ด ์์๊ธฐ ๋๋ฌธ์ DB connection์ ๋ฌธ์ ๊ฐ ์์๋์ง ํ์ธ์ด ํ์
2. api call ๋ฑ timeout์ ์ ์ ํ๊ฒ ํ์ธ
๊ฐ์ค ๊ฒ์ฆ ๋ฐ route finding
์ด์ ์ธ์๋ ๊ฐ์ค์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ฆ์ ์์ํฉ๋๋ค.
1) goroutine์ด ์ ์์ ์ผ๋ก ์๋ฃ๋์ง ๋ชปํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ ์์ธ๋ค
๋จผ์ ์ผ๋ฐ์ ์ผ๋ก DB์์ ๋ฌธ์ ๊ฐ ๋ง์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ DB์ ๊ด๋ จ๋ ์งํ๋ฅผ ๋ณด๋ฉด์ ๋ถ์์ ์งํํ์ต๋๋ค.
์ ๊ฐ DB์์ ์ฃผ๋ก ๋ณด๋ ์งํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. CPU
DB์์ CPU๋ I/O ์์
์์ ํ์ฉํ๊ฒ ๋๊ณ CPU๊ฐ 99%๋ฅผ ์น์์ผ๋ฉด ๋ชจ๋ ์์
์์ timeout์ด ๋ฐ์ํ๋ ํ์์ด ์ฃผ๋ก ๋ฐ์ํฉ๋๋ค. ๊ทธ๋์ CPU๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ดํด๋ด
๋๋ค. (90% ์ ๋๋ ์ํํ ์์น๋ผ๊ณ ํ๋จํ๊ณ alert๋ฅผ ์ค์ ํด๋๊ณ ์์ต๋๋ค.)
๋คํํ CPU๋ 50% ์ ๋๋ก ๋ฌธ์ ๊ฐ ์์ด๋ณด์์ต๋๋ค.
2. connection ๋ฐ ์ฟผ๋ฆฌ ์๋
fyi) ์ ๊ฐ ๊ทผ๋ฌดํ๊ณ ์๋ ํ์ฌ๋ AWS Aurora MySQL์ ์ฌ์ฉํ๊ณ datadog์ ํตํด์ ์ค์ DB metric์ ์ดํด๋ณผ ์ ์๋ ํ๊ฒฝ์ ๋๋ค.
DB ์ฟผ๋ฆฌ ์๋๊ฐ CPU์ ์๊ด์์ด ๋๋ฆฌ๋ค๊ณ ๋ญ๊ฐ lock์ด ์กํ๋ ๋ถ๋ถ์ด ์๋ค๋ ๊ฐ์ค๋ ์์๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์๋ ๊ด๋ จ์ ์ดํด๋ดค์ต๋๋ค.
RDS ์ฌ์ฉ ์ ๋ชจ๋ํฐ๋ง์ ํ์ฑํํด๋๋ฉด AWS CloudWatch์์๋ RDS ๊ด๋ จ ๋ฉํธ๋ฆญ์ด ๊ฝค ์์ธํ๊ฒ ๊ธฐ๋ก๋๋๋ฐ ์ด๋ฅผ ํ์ฉํด ๊ฐ์ค์ ์ฝ๊ฒ ํ์ธํ ์ ์์์ต๋๋ค.
๋น์ ์ดํด๋ณธ ์งํ๋ ๋ค์๊ณผ ๊ฐ๊ณ DB ๋ฌธ์ ๋ ์๋์์ต๋๋ค.
Deadlocks: ์ด๋น ํ๊ท ๊ต์ฐฉ ์ํ ์
-> 0.003์ผ๋ก ๋ฐ๋๋ฝ์ ์ํฅ ์์ด๋ณด์
DMLThroughput
-> ์ผ์์ ์ผ๋ก DML ์ฒ๋ฆฌ๋์ด ๋์ด๋ฌ์ง๋ง 1์ฃผ์ผ ์ถ์ด๋ฅผ ๋ณด๋ฉด ๋น์ทํ ์ถ์ด
-> ๊ทธ๋ฌ๋ ์ง๋์ฃผ์๋ OOMKilled๊ฐ ๋ฐ์ํ์ง ์์๊ณ ์ด์ ์์น๋ก ๋ณด์ด์ง ์์ -> ์ํฅ ์์ด๋ณด์
InsertLatency
2) goroutine ์์์ ๋ญ๊ฐ ๋ก๋ฉ์ด ๊ธด ๋ถ๋ถ์ด ์๋ค. ์ด๊ฒ ๋ญ์ง ์ฐพ์์ผ ํ๋ค
์ ๊ณผ์ ์ ํตํด์ DB ๋ฌธ์ ๋ ์๋๋ผ๊ณ ํ๋จํ๊ณ ์ฝ๋ ๋ ๋ฒจ์์ ๋ฌธ์ ํ์ธ์ด ํ์ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฑด ์ฝ๋ ๋ ๋ฒจ์์ ๋ฌธ์ ๋ฅผ ์ฐพ๋ ๊ฑด ๋ชจ๋ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉฐ ๊ฐ์ค์ ์ธ์ฐ๊ณ ๊ฒ์ฆํด์ผํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ฐ ์ฌ์ด ์ผ์ ์๋๋ฐ์.
์ด๋ด ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, CPU ์ ์ ์๊ฐ ๋ฑ์ ํจ์๋ณ, ํจํค์ง๋ณ๋ก ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ ํฌํจํ profiler๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์์ฑ์ ํ๋ณดํ ์ ์์ต๋๋ค.
์ ํฌ ํ์ฌ๋ golang์ ์ฌ์ฉํ๊ณ ์๊ณ ํน์ golang์ ์ฌ์ฉํ๊ณ ๊ณ์ ๋ถ๋ค์ pprof์ ๊ฐ์ ์คํ์์ค profiler๋ฅผ ํ์ฉํด๋ณผ ์๋ ์์ต๋๋ค.
์ ํฌ๋ datadog์ ์ฐ๊ณ ์์ด์ ๋น ๋ฅธ ์ ์ฉ์ ์ํด datadog profiler๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
datadog์์ ์ ๊ณตํ๋ ์คํ์์ค์ธ dd-trace-go๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋ ์ถ๊ฐ๋ง์ผ๋ก ์ฝ๊ฒ profiler๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ Observability๋ฅผ ํ๋ณดํด๋๊ณ ๋ฐ์ดํฐ๊ฐ ์์ฌ์ผ ๋ช
ํํ ๊ฐ์ค ๊ฒ์ฆ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ์ง์ผ๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ
profiler๋ฅผ ์ถ๊ฐํ๊ณ ๋ฐ์ดํฐ ์ถ์ด๋ฅผ ์ดํด๋ณด๋ gRPC client์์ goroutine์ ๊ณผ๋ํ๊ฒ ์ก์๋จน๊ณ ์๋ ๊ฑธ ํ์ธํ์ต๋๋ค.
์๋ gRPC client๋ goroutine์ ๊ณผ๋ํ๊ฒ ์ก์๋จน์ง ์๊ณ ์ฐ๊ฒฐ ์คํจ ์ timeout์ด ๋ฐ์ํ๋ ๊ฑธ ์๋ํ์์ง๋ง ํ์ฌ๋ ์๋๋๋ก ๋์ํ๊ณ ์์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ผ๊ณ ํ๋จ๋์์ต๋๋ค.
๊ทธ๋์ context์ timeout์ ์ถ๊ฐํ๋ ์์
์ ์งํํ๊ณ goroutine ์๋ ์ ์ ์์น๋ก ๋์์ค๋ ๊ฑธ ํ์ธํ์ต๋๋ค.
fyi) golang์์๋ context๋ผ๋ ๊ฐ๋
์ด ์กด์ฌํ๋๋ฐ context์ timeout์ด ์์ผ๋ฉด gRPC client์์ timeout ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ ์ดํ ๋ชจ๋ํฐ๋ง ๋ฐ ์ด์ ์ข ๋ฃ
๋ฌธ์ ํด๊ฒฐ ์ดํ ๋ฌธ์ ๊ฐ ์ฌ๋ฐํ์ง ์๋์ง ๋ชจ๋ํฐ๋งํ๋ ๊ฑด ๋งค์ฐ ์ค์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ํด๊ฒฐ ์ดํ ํธ๋ํฝ ํผํฌ ์๊ฐ์๋ ๊ณ ๋ฃจํด์ด ์ ์ ์์น๋ก ์ ์ง๋๋์ง ํ์ธํ๊ธฐ ์ํด profiler๋ฅผ ๊ณ์ ์ผ๋๊ณ ์ข ๋ ์ง์ผ๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
๋คํํ๋ ํธ๋ฆฌํฉ์ด ๋ชฐ๋ฆฌ๋ ํผํฌ ์๊ฐ์๋ gRPC client๊ฐ ์ ์ ํ๋ goroutine ์๋ ์ ์ ์์น๋ก ํ์ธ๋์๊ณ ์ด์ ํด๊ฒฐ๋ก ์ฒ๋ฆฌํ๊ฒ ๋์์ต๋๋ค.
gRPC client์ timeout๊ณผ ๊ด๋ จ๋ ๋ถ๋ถ์ ๋ฐ๋ก ํ์ต ํ ๊ธ์ ์์ฑํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ฅ์ ํ๊ณ
์ด์ ์ข
๋ฃ ํ ์ด์๊ฐ ๋ค์๋ ๋ฐ์ํ์ง ์๋๋ก ์ง์ ๊ธฐ๋ก ๋ฐ ๊ณต์ ์ ๋ชฉ์ ์ผ๋ก ์ฅ์ ํ๊ณ ๋ฅผ ํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.
๋ณดํต ๋ช
ํํ ์์ธ ํ์
๋ฐ ๊ณต์ ๋ฅผ ์ํด double check ์ฐจ ์์ ๋ณ๋ก ๊ธฐ๋กํด์ ์ฅ์ ํ๊ณ ๋ฅผ ํ๊ฒ ๋๋๋ฐ ๊ธฐ์กด์ ์ด์ ์์ธ ํ์
์์๋ ํ์คํ ๋ฆฌ ๊ธฐ๋ก๊ณผ ํจ๊ป ์ํต์ ์ ์งํํ๋ค๋ฉด ์ด ๋ ์๋ฃ๋ค์ ๋ณต๋ถํ๋ฉด ๊ฝค ๋์์ด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
Lesson learned
์ด๋ฒ ์ด์ ํด๊ฒฐ์ ํ๋ฉด์ ๋๋ ์ ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ด์ ๋ฐ์ ์ ๊ฐ์ ์ ์ธ ๋ถ๋ถ์ ์ต๋ํ ์ ์ ํ๊ณ ์ด์ ํด๊ฒฐ๊ณผ ํต์ฌ์ ์ง์คํ๋ค.
์ฌ๋์ ๊ฐ์ ์ด ์๋ ๋๋ฌผ์ด๋ ์ด์ ๋ฐ์ ์ ๋นํฉํ ์ ์๋ ๊ฑด ์์ฐ์ค๋ฝ์ต๋๋ค. ํ์ง๋ง ์ด๋ฐ ๊ฐ์ ์๋ชจ๊ฐ ํ์ค์ ์ผ๋ก ์ด์ ํด๊ฒฐ์ ๋์์ด ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ๋ช
์ด์ ์ด์๋ฅผ ํ์
ํ ๋๋ ๊ฐ์์ ๊ฐ์ค์ด๋ ๊ณต์ ๋ ๊ฐ์ค์ ๊ฐ์ง๊ณ ์์ธ์ ํ์
ํ๊ธฐ ๋๋ฌธ์ ๋ฌด์์ ํ์์ ๊ณต์ ํ๊ธฐ๋ณด๋จ ๋ณธ์ธ์ ์๊ฐ์ ํฌํจํ ํ์ + ๊ฐ์ค์ ๊ฒ์ฆ ์ฌ๋ถ + action item์ ๋ฌถ์ด์ ๊ณต์ ํ๋ ๊ฒ ํจ์ฌ ์ข์ต๋๋ค.
ํนํ ํ์๋ง ๊ณต์ ๋์์ ๋ ๋ค๋ฅธ ์ฌ๋์ ์ด๋ฏธ ํ์ธํ ์ฌํญ์ด๋ผ๋ฉด ํ์ค์ ์ผ๋ก ํฐ ๋์์ด ๋์ง ์์ต๋๋ค.
๋น์ ํ์์ ๊ฐ์ด ๋์ํ๊ณ ์์๋๋ฐ ์ผ๋ถ ํ์๋ถ์ ์๊ฐ๋ณด๋ค ๋นํฉํ์
์ ๊ทธ๋ฐ์ง ์ด๋ฐ ๊ณผ์ ์ด ์ด๋ ค์ธ ์๋ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๊ณ ๋๊ตฐ๊ฐ๋ ๋ถ๋ด์ ๋๋ผ์๋ ๊ฑธ ๊ฐ์ ์ ์ผ๋ก ๋๊ผ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ํ์ธ์ ๊ฐ์ ์ ์ฑ
์์ง ์ ์์ผ๋ ๋ฉ๋ฆฌ์ ์์์ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
2. ํ์์๊ฒ ์ด์ ํด๊ฒฐ์ ์ํ ์์ ์ ๋๋ ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
์ด์ ํด๊ฒฐ์ ์ฌ์ค ์ต๋ํ ๋น ๋ฅด๊ฒ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋์ ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ช ํํ ์ธ์งํ ์ฌ๋์ด ์์ ๊น์ง ํด๋ฒ๋ฆฌ๋ฉด ๊ฐ์ฅ ๋น ๋ฅธ ํด๊ฒฐ์ด ๋ฉ๋๋ค. ๊ทธ๋์ ํ์ ์๋ฒ ์์ง๋์ด ์๊ฐ 2๋ช ์ผ ๋๋ ๊ฐ์ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ๋ ๊ฒ ๋๋ฌด๋ ๋น์ฐํ์ง๋ง, ์ง๊ธ์ 5๋ช ์ ๋ ๋์๊ณ ํ์ ๋ถ๋ค์๊ฒ ์์ ์ ๋๋์ด์ฃผ๋ ๊ฒ ๊ฐ์ธ์ ์๊ธฐํจ๋ฅ๊ฐ์ ๋น๋กฏํ ํ์ ์ฌ๊ธฐ๋ฅผ ์ฌ๋ฆฌ๋ ๋ฐ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค๋ ๊ฑธ ๋๊ผ์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ์๋ ์์ ์ ๋๋ ์ ์งํํ๋ ๊ฒ ๊ฝค ์ข์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค :)
'BackEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Zero Copy๋ฅผ ์์๋์? with kotlin S3 upload (1) | 2024.11.24 |
---|---|
MySQL ์คํ ๊ณํ ํบ์๋ณด๊ธฐ (1) | 2024.04.28 |
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค(isolation level)์ด๋? (0) | 2024.03.03 |
AWS Elastic Beanstalk ๋จ์ผ ์ธ์คํด์ค ๋ฌด์ค๋จ ๋ฐฐํฌํ๊ธฐ (0) | 2023.10.08 |
์์ฆ ๋ ์ค๋ฅด๋ gRPC ํบ์๋ณด๊ธฐ (2) | 2022.12.04 |
- Total
- Today
- Yesterday
- ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)
- ์ฅ์ ํ๊ณ
- Aws Reinvent 2023
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- kotlin s3 upload
- ์ข์ ๊ฐ๋ฐ์
- ํ๋ก๊ทธ๋๋จธ์ค
- Go
- grpc client
- rate limit
- 2023 ํ๊ณ
- ์๊ณ ๋ฆฌ์ฆ
- 2023 ๊ฐ๋ฐ์ ํ๊ณ
- HTTP
- AWS re:Invent 2023
- ์ข์ ์์ง๋์ด
- 2๋ ์ฐจ ์๋ฒ ๊ฐ๋ฐ์
- ๋ฐฑ์ค
- ์ถ์ ์ง๋
- Golang
- mysql ์คํ ๊ณํ
- ์คํ/ํ
- ์ข์ ๊ฐ๋ฐ์ ๋๊ธฐ
- ํด์
- ๋ฑ ํฌ์๋ฌ๋ ๊ฐ๋ฐ์
- ํ(Heap)
- ์ฝ๋ฉํ ์คํธ
- golang oomkilled
- mysql
- ์ข์ ์ฝ๋๋ ๋ฌด์์ธ๊ฐ?
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |