Book

Book : ์Šคํ”„๋ง๋ถ€ํŠธ์™€ AWS๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค

PYT 2019. 12. 24. 14:21
๋ฐ˜์‘ํ˜•

 

์‹ ๊ธฐํ•˜๊ฒŒ๋„ ๊ตฌ๊ธ€๋ง์„ ํ•  ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ๋ณด๊ฒŒ๋˜๋Š” ์‹ ๊ธฐํ•œ ๋ธ”๋กœ๊ทธ๊ฐ€ ์žˆ๋‹ค.

'๊ธฐ์–ต๋ณด๋‹จ ๊ธฐ๋ก์„' ์ด๋ผ๋Š” ๋ธ”๋กœ๊ทธ์ธ๋ฐ 

 

 

์–ผ๋งˆ์ „์— ์œ ํˆฌ๋ธŒ๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋‹ค ๋ณด๊ฒŒ๋œ ์ด ์ธ๋„ค์ผ

๋‚˜์™€ ๋น„์Šทํ•œ ์ƒํ™ฉ์ด์–ด์„œ ํ™€๋ฆฐ๋“ฏ ๋ณด๊ฒŒ๋˜์—ˆ๋Š”๋ฐ 

์ด ์˜์ƒ์—์„œ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

 

์ด ๋ถ„์ด ๋ฐ”๋กœ ๊ธฐ์–ต๋ณด๋‹จ ๊ธฐ๋ก์„ ๋ธ”๋กœ๊ทธ์˜ ์กฐ์กธ๋‘๋‹˜์ด๋ž€๊ฒƒ์„ !  (๋ณธ๋ช… ์ด๋™์šฑ)

 

 

๊ธฐ์–ต๋ณด๋‹จ ๊ธฐ๋ก์„

Java ๋ฐฑ์—”๋“œ, AWS ๊ธฐ์ˆ ์„ ์ตํžˆ๊ณ  ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

jojoldu.tistory.com

 

 

๋ฐ”๋กœ ์ด ๋ถ„์ด ์–ผ๋งˆ์ „์— ์ฑ…์„ ์ถœํŒํ•˜์…จ๋‹ค.

 

๋ฐ”๋กœ ๐Ÿ–ฅ๏ธ AWS ์Šคํ”„๋ง๋ถ€ํŠธ์™€ AWS๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค ๐Ÿ–ฅ๏ธ 

 

์ผ๋‹จ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ชฉ์ฐจ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์ด๋ ‡๋‹ค.


๋ชฉ์ฐจ

 

01์žฅ ์ธํ…”๋ฆฌ์ œ์ด๋กœ ์Šคํ”„๋ง ๋ถ€ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ
_1.1 ์ธํ…”๋ฆฌ์ œ์ด ์†Œ๊ฐœ
_1.2 ์ธํ…”๋ฆฌ์ œ์ด ์„ค์น˜ํ•˜๊ธฐ
_1.3 ์ธํ…”๋ฆฌ์ œ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ
_1.4 ๊ทธ๋ ˆ์ด๋“ค ํ”„๋กœ์ ํŠธ๋ฅผ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
_1.5 ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ ์‚ฌ์šฉํ•˜๊ธฐ

02์žฅ ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž
_2.1 ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์†Œ๊ฐœ
_2.2 Hello Controller ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
_2.3 ๋กฌ๋ณต ์†Œ๊ฐœ ๋ฐ ์„ค์น˜ํ•˜๊ธฐ
_2.4 Hello Controller ์ฝ”๋“œ๋ฅผ ๋กฌ๋ณต์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ

03์žฅ ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ JPA๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค๋ค„๋ณด์ž
_3.1 JPA ์†Œ๊ฐœ
__Spring Data JPA
__์‹ค๋ฌด์—์„œ JPA
__์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„
_3.2 ํ”„๋กœ์ ํŠธ์— Spring Data Jpa ์ ์šฉํ•˜๊ธฐ
_3.3 Spring Data JPA ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
_3.4 ๋“ฑ๋ก/์ˆ˜์ •/์กฐํšŒ API ๋งŒ๋“ค๊ธฐ
_3.5 JPA Auditing์œผ๋กœ ์ƒ์„ฑ์‹œ๊ฐ„/์ˆ˜์ •์‹œ๊ฐ„ ์ž๋™ํ™”ํ•˜๊ธฐ
__LocalDate ์‚ฌ์šฉ
__JPA Auditing ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ

04์žฅ ๋จธ์Šคํ…Œ์น˜๋กœ ํ™”๋ฉด ๊ตฌ์„ฑํ•˜๊ธฐ
_4.1 ์„œ๋ฒ„ ํ…œํ”Œ๋ฆฟ ์—”์ง„๊ณผ ๋จธ์Šคํ…Œ์น˜ ์†Œ๊ฐœ
__๋จธ์Šคํ…Œ์น˜๋ž€
__๋จธ์Šคํ…Œ์น˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜
_4.2 ๊ธฐ๋ณธ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ
_4.3 ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ
_4.4 ์ „์ฒด ์กฐํšŒ ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ
_4.5 ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •, ์‚ญ์ œ ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ
__๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •
__๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ

05์žฅ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์™€ OAuth 2.0์œผ๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ
_5.1 ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์™€ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ Oauth2 ํด๋ผ์ด์–ธํŠธ
_5.2 ๊ตฌ๊ธ€ ์„œ๋น„์Šค ๋“ฑ๋ก
_5.3 ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ์—ฐ๋™ํ•˜๊ธฐ
__์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์„ค์ •
__๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ
_5.4 ์–ด๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ
_5.5 ์„ธ์…˜ ์ €์žฅ์†Œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉํ•˜๊ธฐ
_5.6 ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ
__๋„ค์ด๋ฒ„ API ๋“ฑ๋ก
__์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์„ค์ • ๋“ฑ๋ก
_5.7 ๊ธฐ์กด ํ…Œ์ŠคํŠธ์— ์‹œํ๋ฆฌํ‹ฐ ์ ์šฉํ•˜๊ธฐ

06์žฅ AWS ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ณด์ž - AWS EC2
_6.1 AWS ํšŒ์› ๊ฐ€์ž…
_6.2 EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๊ธฐ
_6.3 EC2 ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ
_6.4 ์•„๋งˆ์กด ๋ฆฌ๋ˆ…์Šค 1 ์„œ๋ฒ„ ์ƒ์„ฑ ์‹œ ๊ผญ ํ•ด์•ผ ํ•  ์„ค์ •๋“ค

07์žฅ AWS์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ณด์ž - AWS RDS
_7.1 RDS ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๊ธฐ
_7.2 RDS ์šด์˜ํ™˜๊ฒฝ์— ๋งž๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •ํ•˜๊ธฐ
_7.3 ๋‚ด PC์—์„œ RDS์—์„œ ์ ‘์†ํ•ด ๋ณด๊ธฐ
__Database ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜
_7.4 EC2์—์„œ RDS์—์„œ ์ ‘๊ทผ ํ™•์ธ

08์žฅ EC2 ์„œ๋ฒ„์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•ด ๋ณด์ž
_8.1 EC2์— ํ”„๋กœ์ ํŠธ Clone ๋ฐ›๊ธฐ
_8.2 ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ๋งŒ๋“ค๊ธฐ
_8.3 ์™ธ๋ถ€ Security ํŒŒ์ผ ๋“ฑ๋กํ•˜๊ธฐ
_8.4 ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋กœ RDS ์ ‘๊ทผํ•˜๊ธฐ
__RDS ํ…Œ์ด๋ธ” ์ƒ์„ฑ
__ํ”„๋กœ์ ํŠธ ์„ค์ •
__EC2 ์„ค์ •
_8.5 EC2์—์„œ ์†Œ์…œ ๋กœ๊ทธ์ธํ•˜๊ธฐ

09์žฅ ์ฝ”๋“œ๊ฐ€ ํ‘ธ์‹œ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋ฐฐํฌํ•ด ๋ณด์ž - Travis CI ๋ฐฐํฌ ์ž๋™ํ™”
_9.1 CI & CD ์†Œ๊ฐœ
_9.2 Travis CI ์—ฐ๋™ํ•˜๊ธฐ
__Travis CI ์›น ์„œ๋น„์Šค ์„ค์ •
__ํ”„๋กœ์ ํŠธ ์„ค์ •
_9.3 Travis CI์™€ AWS S3 ์—ฐ๋™ํ•˜๊ธฐ
__AWS Key ๋ฐœ๊ธ‰
__Travis CI์— ํ‚ค ๋“ฑ๋ก
__S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ
__.travis.yml ์ถ”๊ฐ€
_9.4 Travis CI์™€ AWS S3, CodeDeploy ์—ฐ๋™ํ•˜๊ธฐ
__EC2์— IAM ์—ญํ•  ์ถ”๊ฐ€ํ•˜๊ธฐ
__CodeDeploy ์—์ด์ „ํŠธ ์„ค์น˜
__CodeDeploy๋ฅผ ์œ„ํ•œ ๊ถŒํ•œ ์ƒ์„ฑ
__CodeDeploy ์ƒ์„ฑ
__Travis CI, S3, CodeDeploy ์—ฐ๋™
_9.5 ๋ฐฐํฌ ์ž๋™ํ™” ๊ตฌ์„ฑ
__deploy.sh ํŒŒ์ผ ์ถ”๊ฐ€
__.travis.yml ํŒŒ์ผ ์ˆ˜์ •
__appspec.yml ํŒŒ์ผ ์ˆ˜์ •
__์‹ค์ œ ๋ฐฐํฌ ๊ณผ์ • ์ฒดํ—˜
_9.6 CodeDeploy ๋กœ๊ทธ ํ™•์ธ

10์žฅ 24์‹œ๊ฐ„ 365์ผ ์ค‘๋‹จ ์—†๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์ž
_10.1 ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์†Œ๊ฐœ
_10.2 ์—”์ง„์—‘์Šค ์„ค์น˜์™€ ์Šคํ”„๋ง ๋ถ€ํŠธ ์—ฐ๋™ํ•˜๊ธฐ
_10.3 ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ๋งŒ๋“ค๊ธฐ
__profile API ์ถ”๊ฐ€
__real1, real2 profile ์ƒ์„ฑ
__์—”์ง„์—‘์Šค ์„ค์ • ์ˆ˜์ •
__๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๋“ค ์ž‘์„ฑ
_10.4 ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ํ…Œ์ŠคํŠธ

11์žฅ 1์ธ ๊ฐœ๋ฐœ ์‹œ ๋„์›€์ด ๋  ๋„๊ตฌ์™€ ์กฐ์–ธ๋“ค
_11.1 ์ถ”์ฒœ ๋„๊ตฌ ์†Œ๊ฐœ
__๋Œ“๊ธ€
__์™ธ๋ถ€ ์„œ๋น„์Šค ์—ฐ๋™
__๋ฐฉ๋ฌธ์ž ๋ถ„์„
__CDN
__์ด๋ฉ”์ผ ๋งˆ์ผ€ํŒ…
_11.2 1์ธ ๊ฐœ๋ฐœ ํŒ
_11.3 ๋งˆ๋ฌด๋ฆฌ


์ฑ… ์ž์ฒด๊ฐ€ ์ˆ ์ˆ  ์ฝํžˆ๊ธฐ๋„ ํ•˜๊ณ ,

๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์„ ๋น ๋ฅธ์‹œ๊ฐ„์— ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๊ณผ ๋ฒ ์ŠคํŠธ ํ”„๋ ‰ํ‹ฐ์Šค๋ฅผ ์•ˆ๋‚ดํ•ด์ฃผ๋Š”๊ฒƒ!

๊ทธ๊ฒŒ ๊ฐ€์žฅ ์ข‹์•˜๋‹ค. 

 

์•„์ง ์ง„๋„๋Š” ์ฑ…์˜ ์ดˆ๋ฐ˜์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ์ง€๋งŒ

 

 

[์Šคํ”„๋ง ๋ถ€ํŠธ์™€ AWS๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค] ์ถœ๊ฐ„ ํ›„๊ธฐ

(์ถœํŒ์‚ฌ: ํ”„๋ฆฌ๋ ‰, ์ชฝ์ˆ˜: 416, ์ •๊ฐ€: 22,000์›) ์„œ์  ๋งํฌ ์˜คํ”„๋ผ์ธ ์„œ์ ์—๋Š” 2019.12.04 (์ˆ˜) ๋ถ€ํ„ฐ ์˜ฌ๋ผ๊ฐˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๊ฐ•๋‚จ ๊ต๋ณด๋ฌธ๊ณ ๋‚˜ ๊ด‘ํ™”๋ฌธ ๊ต๋ณด๋ฌธ๊ณ ๋Š” ์ฃผ๋ง์—๋„ ์˜ฌ๋ผ์˜ฌ ์ˆœ ์žˆ๊ฒ ์ง€๋งŒ, ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ ๊ผญ ์žฌ๊ณ  ํ™•..

jojoldu.tistory.com

์กฐ์กธ๋‘ ๋‹˜์˜ ์ถœํŒ ํ›„๊ธฐ๋„ ์žฌ๋ฏธ์žˆ๋‹ค.

 

์•„ ๋”ด๋ง์ด์ง€๋งŒ ์ข…์ด ์ด‰๊ฐ์ด ๋˜๊ฒŒ ์ข‹๋‹ค.

 

์ง‘๊ฐ€์„œ ๋˜ ๊ณต๋ถ€ํ•ด์•ผ์ง€

 

๐Ÿ–ฅ๏ธ  ๐Ÿ–ฅ๏ธ

 

 

 

 

 

๋ฐ˜์‘ํ˜•