์ ๋ง๋ค์ด์ง ์น ์๋น์ค๋ ๋ฐฐํฌ๊ฐ ๋์ง ์๋๋ค๋ฉด, ๋ ์ด์ ์๋ฏธ๋ฅผ ๊ฐ์ง ์ ์๋ค.
๋ฐ๋ผ์ ์น ๊ฐ๋ฐ์๋ ๋ฐฐํฌ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ํ์ฌํ๊ณ ์๊ณ , ๊ฐ๋จํ ๋ฐฐํฌ ์ ๋๋ ํผ์ ํ ์ ์์ด์ผ ํ๋ค.
์ค๋์ ๋ฐฐํฌ๋ฅผ ์ํ ํด๋ผ์ฐ๋ ์๋น์ค Amazon Web Service(์ดํ AWS)๋ฅผ ์ด์ฉํด์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ค.
๊ฐ์ํ ๊ธฐ์ ์ ๋ฐ์ ๊ณผ AWS์ ๋ฑ์ฅ์ ํด๋ผ์ฐ๋ ์ปดํจํ
์ ํ์ ์ ๋ถ๋ฌ์ผ์ผ์ผฐ๋ค.
๋ง์ผ AWS๊ฐ ์์๋๋ผ๋ฉด ์ฐ๋ฆฌ๋ ์๋์ ๊ฐ์ด ์ง์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ , ๊ด๋ฆฌํด์ผ ํ์์ง๋ ๋ชจ๋ฅธ๋ค.
ํ์ง๋ง, ์ด์ ๋ ํด๋ฆญ ๋ช ๋ฒ์ผ๋ก ์๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ํ์ฅํ ์ ์์ผ๋ฉฐ, ๋ํ ์ฌ์ฉํ ๋งํผ ๋์ ์ง๋ถํ ์๋ ์๋ค.
์ด๋ป๊ฒ ์ด ๋ชจ๋ ๊ฒ๋ค์ด ๊ฐ๋ฅํ ๊น?
์ด์ ํด๋ผ์ฐ๋ ์ปดํจํ
์ ๊ธฐ๋ณธ๊ณผ ๋ฐฐํฌ์ ๊ฐ๋
, ๊ทธ๋ฆฌ๊ณ AWS๊ฐ ์ ๊ณตํ๋
์ฃผ์ ์๋น์ค๋ฅผ ์ง์ ๋ค๋ค๋ณด๋ฉด์, ์ด ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํ์ง ๋ฐฐ์ธ ๊ฒ์ด๋ค.
์๋ง์กด ์น ์๋น์ค(AWS)๋ ์๋ง์กด์ด ์์ฌ์ ๋ ธํ์ฐ๋ฅผ ์ด๋ ค ์ ๊ณตํ๊ณ ์๋ โํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์คโ๋ฅผ ์๋ฏธํ๋ค.
AWS์๋ ์ปดํจํ , ์คํ ๋ฆฌ์ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ถ์, ๋คํธ์ํน, ๋ชจ๋ฐ์ผ, ๊ฐ๋ฐ์ ๋๊ตฌ, ๊ด๋ฆฌ ๋๊ตฌ, IoT, ๋ณด์, ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๋ฑ ๋ค์ํ ์๋น์ค๊ฐ ์ค๋น๋์ด ์์ผ๋ฉฐ, AWS์ ๋ค์ํ ์๋น์ค๋ฅผ ์กฐํฉํ์ฌ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ์ ์๊ธฐ๋ ํ๋ค. ์ผ์ ์๋ ์ฌ๋ฌ ์ฌ์ ์์๊ฒ ๊ฐ๊ฐ ๋น๋ ค์ผ ํ๋ ์ธํ๋ผ๋ฅผ ์ผ๊ด๋ก ๋น๋ฆด ์ ์๊ฒ ๋์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ด์์ฒด์ (OS), ์น ์๋ฒ, DB ์๋ฒ ๋ฑ ํ์ํ ์ํํธ์จ์ด๊น์ง ํต์งธ๋ก ์ฌ์ฉํ ์ ์๋ ํธ๋ฆฌํ ์๋น์ค์ด๊ธฐ๋ ํ๋ค.
์๋ง์กด ์น ์๋น์ค(AWS)์ ํน์ง
AWS์ ํน์ง์ผ๋ก๋,
์ด๋ฐ AWS๋ 165๊ฐ ์ด์์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ๋ชฉ์ ์ ๋ฐ๋ผ ๋ค์ํ ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ทธ์ค ์ ๋ช ํ ์๋น์ค๋ก๋ EC2, S3, RDS ๋ฑ์ด ์๋ค.
EC2๋ ์ปดํจํฐ๋ฅผ ํ ๋ ๋น๋ฆฌ๋ ๊ฒ์ด๋ฏ๋ก ์ปดํจํฐ๋ก ํ ์ ์๋ ๋ชจ๋ ์ผ์ ํ ์ ์๋ค.
๋น๋ฆฐ ์ปดํจํฐ๋ ์ง์ ์ฌ์ฉํ๋ ์ปดํจํฐ์ ๋ค๋ฅด๊ฒ ์๋ง์กด์ด ์ ์ธ๊ณ์ ๋ง๋ค์ด ๋์ ๋ฐ์ดํฐ ์ผํฐ(์ธํ๋ผ)์
๋ง๋ค์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ์ปดํจํฐ๋ฅผ ์กฐ์ํ๊ธฐ ์ํด ๋คํธ์ํฌ(์ธํฐ๋ท)๋ฅผ ํตํด์ ์ปดํจํฐ๋ฅผ ์ ์ดํด์ผ ํ๋ค๋
์ฐจ์ด์ ์ด ์์ ๋ฟ ์ผ๋ฐ์ ์ธ ์ปดํจํฐ์ ๋ค๋ฅธ ์ ์ ์๋ค.
์๋ง์กด EC2๋ฅผ ํตํด์ ํ ์ ์๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ผ์ ์น์๋ฒ๋ฅผ ์ค์นํ๊ณ
์น ์๋ฒ๋ฅผ ํตํด์ ์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์์ฒญํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
์ธ์คํด์ค๋ 1๋์ ์ปดํจํฐ๋ฅผ ์๋ฏธํ๋ ๋จ์์ด๊ณ , AWS์์ ์ปดํจํฐ๋ฅผ ๋น๋ฆฌ๋ ๊ฒ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค๊ณ ํ๋ค.
RDS๋ Relational Database Service์ ์ฝ์๋ก AWS์์ ์ ๊ณตํ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค์ด๋ค.
์ RDS๋ฅผ ์ฌ์ฉํ ๊น? ์ฐ๋ฆฌ๋ ์ด์ ์ฌ๋ผ์ด๋์์ EC2๊ฐ ๊ฐ์์ ์ปดํจํฐ๋ฅผ ์๋ํ๋ ์๋น์ค๋ผ๊ณ ๋ฐฐ์ ๋ค.
EC2 ์ธ์คํด์ค์ MySQL ๊ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ์ค์นํ๋ฉด ๊ตณ์ด RDS๋ฅผ ์ฌ์ฉํ ์ด์ ๊ฐ ์์ง ์์๊น?
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง ๋ฐ๋ก ๋ถ๋ฆฌํด์ ์๋น์ค๋ฅผ ์ด์ฉํด์ผ ํ ์ด์ ๊ฐ ์์๊น?
EC2 ์ธ์คํด์ค์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ์ค์นํด์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ๋์ RDS๋ฅผ ํตํด
๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ๋์ ์ฐจ์ด๋ ๊ฐ์ธ ์์ ์ฐจ๋๊ณผ ๋ ํฐ์นด ํ์ฌ์์ ๋์ฌํ ์ฐจ๋์ผ๋ก ๋น์ ํ ์ ์๋ค.
EC2 ์ธ์คํด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์นํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๊ฐ์ธ ์์ ์ฐจ๋์ ์ด์ฉํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.
๊ฐ์ธ ์์ ์ฐจ๋์ ์ด์ฉํ๋ฉด ์ ์ง ๋ณด์, ๋ณดํ์ฒ๋ฆฌ ๊ฐ์ ์ผ๋ค์ ์จ์ ํ ์ด์ ์๊ฐ ๋ถ๋ดํ๋ค.
์ฐจ๋ ์ ๋น๋ฅผ ์ํด์ ์ ๋น์์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐฉ๋ฌธํด์ผ ํ๊ณ ,
๊ธฐํ ์ฐจ๋๊ณผ ๊ด๋ จ๋ ๋ค๋ฅธ ์ผ์ด ์๊ธธ ๋ ๋ค์ฌ์ผ ํ๋ ์๊ฐ๊ณผ ์๊ณ ๊ฐ ํฌ๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จํด์ ์๋์ผ๋ก ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ๋ถ๋ถ์ด ๋งค์ฐ ์ ๊ธฐ ๋๋ฌธ์,
์ฌ์ฉ์๊ฐ ์ผ์ผ์ด ์๊ฐ์ ํฌ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ์ค์น์ ๋ฒ์ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ๋ฐฑ์
์ ํด์ผ ํ๋ค.
๊ฒ๋ค๊ฐ ๊ฐ์ฉ์ฑ๊ณผ ๋ด๊ตฌ์ฑ์ด ํ๋ณด๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๊ฑฐ๋ ์ ์์ ์ผ๋ก
์ฌ์ฉํ์ง ๋ชปํ ํ๋ฅ ์ด ์ปค์ง๋ฉฐ, ํ์ ํ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ท๋ชจ๋ฅผ ํ์ฅํ๊ธฐ ์ด๋ ต๋ค.
๊ทธ์ ๋นํด RDS๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๋ ํฐ์นด ํ์ฌ์์ ์ฐจ๋์ ๋์ฌํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.
๋ ํฐ์นด ํ์ฌ์์ ์ฐจ๋์ ๋์ฌํ๋ฉด ๋์ฌ ์ฐจ๋๊ณผ ๊ด๋ จํ์ฌ ์๊ฐ์ด ๋ค์ด๊ฐ๋ ์ผ๋ค์ ๋ ํฐ์นด ํ์ฌ์์ ๋์ ์ฒ๋ฆฌํ๋ค.
์ด์ ์๋ ์ฐจ๋์ ๊ด๋ฆฌํ๋ ์ผ์ ๋ํด์ ์๊ฐ์ ๋ฐ๋ก ์์ ํ์ ์์ด ์ด์ ๋ง ํ๋ฉด ๋๊ธฐ์ ๋งค์ฐ ํธ๋ฆฌํ๋ค.
RDS๋ฅผ ์ด์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ง ๋ณด์์ ๊ด๋ จ๋ ์ผ๋ค์ RDS์์ ์ ์ ์ผ๋ก ์๋ ๊ด๋ฆฌํ๋ค.
์ฌ์ฉ์๊ฐ ํด์ผ ํ ์ผ์ ์ด๊ธฐ ์ค์ ์ ์ ์ธํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์
์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ผ ๋ฐ์ ์๊ธฐ์ ํฐ ํธ์์ฑ์ ๋๋ ์ ์๋ค.
S3๊ฐ ๋ฌด์์ธ์ง ์์๋ณด๊ธฐ ์ ์, ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ๊ฐ๋ ์ ๋ํด ์ ์ ์์๋ณด๊ฒ ๋ค. ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง๋ ๋ญ๊น?
ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง๋ ์ฝ๊ฒ ๋งํด์ ์ธํฐ๋ท ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ ์ฅ์์ด๋ค.
์ปดํจํฐ ๋ถํ์ผ๋ก ๋น์ ํ๋ฉด ํ๋๋์คํฌ์ ์ญํ ์ ํ๋ ์๋น์ค์ด๋ค.
์ฐ๋ฆฌ๋ ์๊ฒ ๋ชจ๋ฅด๊ฒ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ์๋น์ค๋ฅผ ์ด์ฉํด์๋ค.
๊ตฌ๊ธ์ Google Drive, ๋ค์ด๋ฒ์ MYBOX, ๋ง์ดํฌ๋ก์ํํธ์ Onedrive์ ๊ฐ์ ์๋น์ค๊ฐ ์์์ด๋ค.
ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ์๋น์ค๋ ๋ฐ์ด๋ ์ ๊ทผ์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
์ปดํจํฐ์ ํ๋๋์คํฌ์ ์ ์ฅ๋ ํ์ผ์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ํด๋น ์ปดํจํฐ๋ฅผ ์ด์ฉํด์ผ๋ง ํ๋ค.
๊ทธ๋ฌ๋ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ๋ฉด ์น ํ๊ฒฝ์ด๋ผ๋ฉด ์ธ์ ์ด๋์๋ ์ ์ฅ๋ ํ์ผ์ ์ ๊ทผํ ์ ์๋ค.
๋ํ ์ปดํจํฐ๋ฟ๋ง ์๋๋ผ ์น์ ์ ์์ด ๊ฐ๋ฅํ ๋ค๋ฅธ ์ ์๊ธฐ๊ธฐ๋ฅผ ํ์ฉํ์ฌ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง์ ์ ์ํ ์ ์๋ค.
S3๋ Simple Storage Service์ ์ฝ์๋ก AWS์์ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ์๋น์ค์ด๋ค.
๋ฒํท์ด๋ S3์ ์ ์ฅ๋๋ ํ์ผ๋ค์ด ๋ด๊ธฐ๋ ๋ฐ๊ตฌ๋์ด๋ค. ํ์ผ์ ์ ์ฅํ๋ ์ต์์ ๋๋ ํฐ๋ฆฌ๋ผ๊ณ ๋ ์ค๋ช ํ ์ ์๋ค.
S3์์ ์ ์ฅ๋๋ ๋ชจ๋ ํ์ผ์ ๋ฒํท ์์ ์ ์ฅ๋์ด์ผ ํ๊ณ , ๋ฒํท์๋ ๋ฌดํํ ์์ ํ์ผ์ ์ ์ฅํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ๋ฒํท์ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๋๋ฐ, ๋ฒํท์ ์ด๋ฆ์ ๋ฒํท์ด ์ํด ์๋ ๋ฆฌ์ (๋ฒํท์ด ์์ฑ๋ ์ง์ญ)์์ ์ ์ผํด์ผ ํ๋ค.
๋ํ ๋ฒํท ์ ์ฑ ์ ์์ฑํ์ฌ ํด๋น ๋ฒํท์ ๋ํ ๋ค๋ฅธ ์ ์ ์ ์ ๊ทผ ๊ถํ์ ์์ ํ ์ ์๋ค.
S3์์ ๋ฒํท์ ๋ด๊ธฐ๋ ํ์ผ์ ๊ฐ์ฒด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ ๊ฐ์ฒด๋ผ๊ณ ๋ถ๋ฅผ๊น?
S3์์ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ํค-๊ฐ ํ์ด ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
S3์ ์ ์ฅ๋๋ ๊ฐ์ฒด๋ ํ์ผ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋๋ค. ํ์ผ์ ๋ํด์ ๋จผ์ ์์๋ณด๊ฒ ๋ค.
ํ์ผ์ ์์ ์ค๋ช
ํ ๋๋ก ํค-๊ฐ ํ์ด ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
ํ์ผ์ ๊ฐ์๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. S3 ๊ฐ์ฒด์ ๊ฐ์ผ๋ก์จ ์ ์ฅ๋ ์ ์๋ ๋ฐ์ดํฐ์ ์ต๋ ํฌ๊ธฐ๋ 5TB์ด๋ค.
ํ์ผ์ ํค๋ ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ณ ์ ํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์๋ณ์ ์ญํ ์ ํ๋ค.
ํ์ผ์ ํค๋ฅผ ์ด์ฉํ์ฌ ์ํ๋ ๊ฐ์ฒด๋ฅผ ๊ฒ์ํ ์ ์๋ค.
๋ฉํ๋ฐ์ดํฐ๋ ๊ฐ์ฒด์ ์์ฑ์ผ, ํฌ๊ธฐ, ์ ํ๊ณผ ๊ฐ์ ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐ์ดํฐ์ด๋ค.
๊ฐ์ฒด๋ฅผ ์ค๋ช
ํ๋ ๋ฐ์ดํฐ๋ผ๊ณ ์ดํดํ๋ฉด ์ข๋ค.
๋ชจ๋ ๊ฐ์ฒด๋ ๊ณ ์ ํ URL ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
URL ์ฃผ์๋ http://[๋ฒํท์ ์ด๋ฆ].S3.amazonaws.com/[๊ฐ์ฒด์ ํค]
์ ํํ๋ฅผ ๋ ๊ณ ,
URL ์ฃผ์๋ฅผ ํตํด์๋ ์ํ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค.
์์ฑํ Client ์ฝ๋๋ฅผ ์ฌ์ฉ์๋ค์๊ฒ ์ด๋ป๊ฒ ์ ๊ณตํ ์ง ์๊ฐํด๋ณด์.
AWS์์ ์ ๊ณตํ๋ ์๋น์ค์ธ S3๋ผ๋ ์๋น์ค๋ฅผ ํตํด ์ฌ์ฉ์๋ค์๊ฒ Client๋ฅผ ์ ๊ณตํ ์ ์๋ค.
๋ก์ปฌ ํ๊ฒฝ์์๋ ์์ฒด ๊ฐ๋ฐ ์๋ฒ (์, create-react-app)๋ฅผ ์ด์ฉํด์ ํด๋ผ์ด์ธํธ ์ฑ์ ์คํ์ํค๋ ๊ฒ์ด ๋ณดํต์ด๋ค.
๊ทธ๋ผ, ํด๋ผ์ด์ธํธ๋ฅผ ์ํด์ EC2 ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น?
๊ทธ๋ ์ง ์๋ค. ํด๋ผ์ด์ธํธ ์ฑ์ ์ ์ ํ์ผ๋ก ๋น๋ํ์ฌ ์ ๊ณตํ๋ค.
๋ฐ๋ผ์ S3๋ฅผ ์ด์ฉํด์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ฐฐํฌํด์ผ ํ๋ค.
์ด๋ ํ์ํ ๊ฒ์ด ๋น๋์ด๋ค.
๋น๋๋ ์ฝ๊ฒ ๋งํด์ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ ๊ณ , ์ฌ๋ฌ ๊ฐ๋๋ก ํผ์ ธ์๋
๋ฐ์ดํฐ๋ค์ ํตํฉ/ ์์ถํ์ฌ ๋ฐฐํฌํ๊ธฐ์ ์ต์ ํ๋ ์ํ๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
๋น๋ ๊ณผ์ ์ ์งํํ๊ธฐ ์ ๊ณผ ๋น๊ตํ์ ๋ ๋ฐ์ดํฐ์ ์ฉ๋์ด ์ค์ด๋ค๊ณ ,
์น ์ฌ์ดํธ์ ๋ก๋ฉ ์๋๊ฐ ๋นจ๋ผ์ง๋ค๋ ์ฅ์ ์ด ์๊ธด๋ค.
ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์๋ฏธ์ ๋น๋๋, ์์ค์ฝ๋๋ฅผ ์คํ ๊ฐ๋ฅํ ๋ฒ๋ค๋ก ๋ณํํ๋ ์ปดํ์ผ ๊ณผ์ ์ ์๋ฏธํ๋ค.
์น ์ฑ์์์๊ฐ์ด HTML, CSS, JS์ ํํ๋ก ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ๋ ์กฐ๊ธ ๋ค๋ฅด๋ค.
์น ์ฑ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ ์ ํ์ผ(static files)์ ํํ๋ก ๋ง๋ค์ด ์ค์ผ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ฌ์ฉ์๋ค์ด ์ ๊ณต๋ฐ์ Client Application์ ํตํด์
์์ฒญ์ ์ ๋ฌํ Server Application์ ์ด๋ป๊ฒ ๋ฐฐํฌํด์ผ ํ ๊น?
AWS EC2 ์๋น์ค๋ฅผ ํตํด ์์ฝ๊ฒ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค.
repository ์ฃผ์์ main ๋ธ๋์น๋ฅผ ์ด์ฉํ๋ค.
IAM ํ์ธ ๋ฐ ๋ก๊ทธ์ธ ํํ ๋ฆฌ์ผ
๋ฉ์ผ๋ก ์ ๋ฌ๋ฐ์ ๋งํฌ์ ์ ์ํด์, ๋ก๊ทธ์ธ์ด ์ ๋๋์ง ํ์ธํ๋ค.
๊ณ์ ID์ ๊ฐ์ ๋ถ๋ถ์ ์ด๋ฏธ ์ง์ ์ด ๋์ด ์๋ ๋ถ๋ถ์ด๋ฏ๋ก, ๊ทธ ๋ถ๋ถ์ ์ ์ธํ
์ฌ์ฉ์ ์ด๋ฆ(๋ฉ์ผ๋ก ์ ๋ฌ๋ฐ์ login)๊ณผ ์ํธ(๋ฉ์ผ๋ก ์ ๋ฌ๋ฐ์ password)๋ฅผ ์
๋ ฅํ๋ค.
์๋ ํ๋ฉด์ด ์ ๋ณด์ธ๋ค๋ฉด IAM์ด ์ ์์ ์ผ๋ก ์ ์์ฑ๋์๋ค.
์ค๋ฅธ์ชฝ ์๋จ์, ํ์ฌ ๋ฆฌ์ ์ด ์์ธ๋ก ์ค์ ์ด ๋์ด์๋์ง ์ถ๊ฐ๋ก ํ์ธํ๋ค. ์์ธ์ด ์๋๋ฉด, ๋ฆฌ์ ์ ์์ธ๋ก ๋ณ๊ฒฝํ๋ค.
IAM ํ์ธ ๋ฐ ๋ก๊ทธ์ธ ํํ ๋ฆฌ์ผ
์ด๋ฒ ์ค์ต์์ ์ฌ์ฉํ๋ EC2๋ ๋ฏธ๋ฆฌ ์์ฑ์ด ๋์ด์๋ค.
AWS ์ฝ์์์ EC2๋ฅผ ๊ฒ์ํ๊ฑฐ๋, ์ง์ ํด๋ฆญํด์ EC2 ๋์๋ณด๋๋ก ์ด๋ํ๋ค.
์ธ์คํด์ค(์คํ ์ค)์ ํด๋ฆญํด ๋ค์ด๊ฐ ์์ ์ด ๋ถ์ฌ ๋ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ๊ฒ์ํ๋ค.
EC2 ์ธ์คํด์ค์ ์ด๋ฆ์ ๋ฉ์ผ๋ก ์ ๋ฌ ๋ฐ์ login์์ student
๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ถ๋ถ์ด๋ค.
(ex. ์ ๋ฌ๋ฐ์ login์ด fe-student-0-kimploo
๋ผ๋ฉด, EC2 ์ธ์คํด์ค ์ด๋ฆ์ fe-0-kimploo
์ด๋ค.)
์ด์ด ๊ฒ์๋ EC2 ์ธ์คํด์ค๋ฅผ ํด๋ฆญํ๊ณ , "์ฐ๊ฒฐ"์ ํด๋ฆญํ๋ค.
์ด์ด ํฐ๋ฏธ๋์ bash๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ์ดํ ์ค์ต ๊ณผ์ ๊ณผ ๋์ผํ๊ฒ ์งํํ ์ ์๋ค.
์๋๋ bash๋ก ๋ณ๊ฒฝํด์ฃผ๊ณ ์ ์ผ ์ต์๋จ ๋๋ ํ ๋ฆฌ๋ก ์ฌ๋ผ๊ฐ๋ ๋ช
๋ น์ด์ด๋ค.
$ bash
$ cd ~
์ง๋ ํํ ๋ฆฌ์ผ์์๋ ๋ถ์ฌ ๋ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ํ์ธํ๊ณ ๋ธ๋ผ์ฐ์ ๋ก ์ด๋ฆฐ ํฐ๋ฏธ๋์ ํตํด ์ฐ๊ฒฐ ์ํ๊น์ง ํ์ธํ๋ค.
์ด๋ฒ ํํ ๋ฆฌ์ผ์์๋ ๋ถ์ฌ ๋ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ์ด์ฉํด ์๋ฒ๋ฅผ ์คํํ๊ณ ์ ์ํด ๋ณด๊ฒ ๋ค.
์ฐ๋ฆฌ๋ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ์ PC ํ ๋๋ฅผ ์๋ํ๋ ๊ฒ์ด๋ผ๊ณ ๋ฐฐ์ ๋ค. ์ปดํจํฐ ์ด์์ฒด์ ๋ฅผ ์ฒ์ ๊ตฌ์ ํ๋ฉด ํ์ํ ํ๋ก๊ทธ๋จ์ ์ค์นํด์ผ ํ๋ฏ์ด, EC2 ์ธ์คํด์ค์ ์ฒ์ ์ ์ํ๋ฉด ์๋ฒ๋ฅผ ๊ตฌ๋ํ๋ ๋ฐ ํ์ํ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ๋ถํฐ ์์ํด์ผ ํ๋ค. ์ ๋ฒ ์ค์ต์์ EC2 ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค. ํจํค์ง ๋งค๋์ ๊ฐ ๊ด๋ฆฌํ๋ ํจํค์ง์ ์ ๋ณด๋ฅผ ์ต์ ์ํ๋ก ์ ๋ฐ์ดํธํ๊ธฐ ์ํด์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
$ sudo apt update
์ด๋ ์ ๋์ ์๊ฐ์ด ์ง๋๊ณ ์ ๋ฐ์ดํธ ๊ณผ์ ์ด ๋๋๋ฉด nvm๊ณผ node.js๋ฅผ ์ค์นํด์ผ ํ๋ค.
๋จผ์ nvm ์ค์น๋ NVM GitHub ํ์ด์ง์ Install & Update Script
๋ถ๋ถ์ ์ฐธ์กฐํ๋ค.
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash // nvm ์ค์น
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s
"${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" // This loads nvm
์ค์น ๊ณผ์ ์ด ๋ง๋ฌด๋ฆฌ๋๋ฉด ํฐ๋ฏธ๋์ nvm --version
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ nvm ์ค์น๊ฐ ์ ์์ ์ผ๋ก ๋๋ฌ๋์ง ํ์ธํ๋ค.
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋๋ฐ ์ค๋ฅ๊ฐ ๋๋ค๋ฉด nvm ์ค์น ๊ณผ์ ์ด ์ ์์ ์ผ๋ก ๋ง๋ฌด๋ฆฌ๋์ง ์์ ๊ฒ์ด๋ค.
๋ค์์ผ๋ก๋ node.js๋ฅผ ์ค์นํ๋ค. ํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ค์น๋ฅผ ์งํํ๋ค.
$ nvm install node
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์น๊ฐ ์งํ์ด ๋๋ค.
node.js์ ์ค์น๊ฐ ๋๋๋ฉด npm ๋ช ๋ น์ด๊ฐ ์ ์์ ์ผ๋ก ์ ๋ ฅ๋์ง ์๋ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ํฐ๋ฏธ๋์
$ sudo apt install npm
๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ npm ์ค์น๋ฅผ ์งํํ๋ค.
์ค์น๋ฅผ ์งํ ํ npm --version
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ฌ npm ์ค์น๊ฐ ์ ์์ ์ผ๋ก ๋ง๋ฌด๋ฆฌ ๋์๋์ง ํ์ธํ๋ค.
์ ์์ ์ผ๋ก ๋ง๋ฌด๋ฆฌ ๋์๋ค๋ฉด nvm๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฒ์ ์ด ์ถ๋ ฅ ๋๋ค.
์ ๊ณผ์ ์ด ๋ชจ๋ ๋๋๋ฉด node.js ๊ธฐ๋ฐ ์๋ฒ๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ์ด ์๋ฃ๋๋ค.
ํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ํ, ๊ณผ์ ์ฝ๋๊ฐ ์ ์ฅ๋ ๊นํ ๋ ํฌ์งํ ๋ฆฌ ์ฃผ์๋ฅผ ๋ณต์ฌํ๊ณ ,
git clone
๋ช
๋ น์ด๋ฅผ ํตํด EC2 ์ธ์คํด์ค์ ๊ณผ์ ์ฝ๋๋ฅผ ํด๋ก ๋ฐ๋๋ค.
ํด๋ก ๋ฐ๊ธฐ ์ , ์์ ํ ๋ค๋ฅธ ํ๊ฒฝ์ ํฐ๋ฏธ๋์์ ํด๋ก ์ ๋ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํ์ต ์ด๊ธฐ์ ๋ก์ปฌ ์ปดํจํฐ์ git clone์ ์ํด ์งํํ๋ Git SSH ๋ฑ๋ก์ด ํ์ํ๋ค. ๊ธฐ์กด์ ํ๋ ๊ณผ์ ์ ๋ค์ ๋ณต์ตํด ๋ณด๋ฉฐ SSH๋ฅผ ๋ฑ๋กํ ๋ค, ๊ณผ์ ๋ฅผ ํด๋ก ๋ฐ๋๋ค.
์ ์ฌํญ์ ๋ฐ๋ผ์ AWS SSH keys๋ฅผ ์๋กญ๊ฒ ๋ฑ๋กํด์คฌ๋ค.
๐ก ๊ธฐ์กด SSH๋ฅผ ๋๊ณ , ์ SSH๋ฅผ ๋ค์ ๋ฑ๋กํ ๊น?
๐ ์๋ง์กด AWS EC2์์ ์๋ก ์์ ํ๊ฒฝ์ ๋ถ์ฌ๋ฐ์ ๊ฒ์ด๋ฏ๋ก, ๋ค์ ์ค์ ์ด ํ์ํ๋ค.
// # ํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
ssm-user@ip-172-31-33-2:~$ cd ~
// # git clone
ssm-user@ip-172-31-33-2:~$ git clone git@github.com:codestates-seb/fe-sprint-practice-deploy.git
Cloning into 'fe-sprint-practice-deploy'...
...
// yes๋ฅผ ์
๋ ฅํด์ผ ์ ์์ ์ผ๋ก clone์ด ์งํ๋๋ค.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
remote...
// ์ ์์ ์ผ๋ก ํด๋ก ํ๋์ง ํ์ธํ๊ธฐ ์ํด, ํฐ๋ฏธ๋์ ls ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ค.
ssm-user@ip-172-31-33-2:~$ ls
fe-sprint-practice-deploy
// ํฐ๋ฏธ๋์ ํตํด ์คํ๋ฆฐํธ ์ฝ๋ ์์ server ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ๋ค.
cd fe-sprint-practice-deploy/server/
// server ํด๋๋ก ์ด๋ํ ๋ค, npm install ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ ํ์ํ ๋ชจ๋์ ๋ค์ด๋ก๋ํ๋ค.
ssm-user@ip-172-31-8-224:~/fe-sprint-practice-deploy/server$ npm install
added 99 packages, and audited 100 packages in 3s
8 packages are looking for funding
run `npm fund` for details
2 moderate severity vulnerabilities
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
npm install
๋ช
๋ น์ด๋ฅผ ์ด์ฉํ ์ค์น ๊ณผ์ ์ด ์๋ฃ๋๋ฉด npm start
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ ์๋ฒ๋ฅผ ์คํํ๋ค.
๊ทธ๋ผ ์๋์ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํฐ๋ฏธ๋์ ๋ณด์ธ๋ค.
์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ณด์ด๋ ์ด์ ๋ 1024๋ฒ ์๋์ ํฌํธ ๋ฒํธ๋ฅผ ์ด์ฉํด์ ์๋ฒ๋ฅผ ์คํํ๋ ค๋ฉด ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์๋ฒ๋ฅผ ์์ํ๊ธฐ ์ํด์๋ sudo npm start
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ผ ํ๋ค.
๊ทธ๋ผ ์์ ๊ฐ์ ๋ฉ์์ง๋ฅผ ํตํด ์ ์์ ์ผ๋ก ์๋ฒ๊ฐ ์คํ๋์์์ ํ์ธํ ์ ์๋ค.
์ด์ EC2 ์ธ์คํด์ค์ IP ์ฃผ์๋ก ์ ๊ทผํด์ ํ
์คํธ๋ฅผ ์งํํ๋ค.
IP ์ฃผ์๋ EC2 ๋์๋ณด๋์์ ์์ฑํ EC2 ์ธ์คํด์ค๋ฅผ ํด๋ฆญํ๋ฉด ํ์ธํ ์ ์๋ค.
์๋ ํ๋ฉด์์ ๋ณด๋ผ์์ผ๋ก ๊ฐ์กฐ๋ ๋ถ๋ถ์ ๋ณด๋ฉด, ๋ ๊ฐ์ง ํํ์ ์ฃผ์๊ฐ ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํผ๋ธ๋ฆญ IPv4 ์ฃผ์์ ํผ๋ธ๋ฆญ IPv4 DNS๋ ํํ๋ง ๋ค๋ฅผ ๋ฟ ๊ฐ์ ์ฃผ์์ด๋ค. ๋ ์ค ์ด๋ค ์ฃผ์๋ฅผ ์ฌ์ฉํด๋ ๋ฌธ์ ์๋ค.
์ด๋ฒ ์ค์ต์์๋ ํผ๋ธ๋ฆญ IPv4 DNS ์ฃผ์๋ฅผ ์ด์ฉํ์ฌ ์ ์ ํ ์คํธ๋ฅผ ์งํํ๊ฒ ๋ค.
EC2 ์ธ์คํด์ค์ IP ์ฃผ์๋ก ์ ์ํ์ ๋, hello world๋ฅผ ํ์ธํ ์ ์์ผ๋ฉด ์ฑ๊ณต์ด๋ค.
๋ํ EC2 ์๋ฒ๋ฅผ ํ์ธํด ๋ณด๋ฉด GET ์์ฒญ์ด ์ฐํ ์๋ ๊ฒ์ ํ์ธํด ๋ณผ ์ ์๋ค.
์์ ์ฌ๋ผ์ด๋๋ฅผ ํตํด S3์ ๋ํ ๊ฐ๋ ํ์ต์ ์๋ฃํ๋ค.
์ด๋ฒ ์คํ๋ฆฐํธ์์๋ ์ฝ๋ ์์ฑ์ด ์๋ฃ๋ ์ ํ๋ฆฌ์ผ์ด์
์
ํด๋ผ์ด์ธํธ ์ฝ๋๋ฅผ AWS ์๋น์ค๋ฅผ ํตํด ๋ฐฐํฌํ๋ ์ค์ต์ ์งํํ๊ฒ ๋ค.
repository ์ฃผ์์ main ๋ธ๋์น๋ฅผ ์ด์ฉํ๋ค.
์ด๋ฒ ์ค์ต์์๋ ์ฝ๋์คํ
์ด์ธ ์์ ์ ๊ณตํ๋ ์์ ์ S3 ๋ฒํท์ ์ฌ์ฉํ์ฌ ํ๋ก ํธ์๋ ๋ฐฐํฌ ์ค์ต์ ์งํํ๋ค.
๋จผ์ AWS ์ฝ์์์ S3๋ฅผ ๊ฒ์ํ๋ค.
์๋ ์คํฌ๋ฆฐ์ท์ ์ฐธ๊ณ ํ์ฌ ์์ ์ github login id๋ก ๊ฒ์ํ๋ฉด ์์ ์ ๋ฒํท์ ๊ฒ์ํ ์ ์๋ค. EC2์ ๋ง์ฐฌ๊ฐ์ง๋ก S3 ๋ฒํท ์ด๋ฆ ๋ํ ๋ฉ์ผ๋ก ์ ๋ฌ ๋ฐ์ login์์ student๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ถ๋ถ์ด๋ฉฐ, ๋ค์ s3๊ฐ ๋ถ์ด ์๋ค. (ex. ์ ๋ฌ๋ฐ์ login์ด fe-student-0-kimploo๋ผ๋ฉด, S3 ๋ฒํท ์ด๋ฆ์ fe-0-kimploo-s3 ์ด๋ค.)
์ด๋ฒ ์ค์ต์์๋ ํด๋ผ์ด์ธํธ ๋ฒ๋ค์ ์
๋ก๋ํด์ผ ํ๋ค. ํด๋ผ์ด์ธํธ๋ฅผ ๋ฒ๋ค๋งํ ์ ์๋ ๊ณผ์ ๊ฐ ๋ฏธ๋ฆฌ ์ค๋น๋์ด ์๋ค. ๋ฐฐํฌ ๊ณผ์ ์ client ๋๋ ํ ๋ฆฌ๋ฅผ ์ ํด๋ก ํด์๋ค๋ฉด, ๋ฐฐํฌ ์ ์ ํํ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํด .env ํ์ผ์ ์์ฑํ๊ณ , ์๋ ํ์ผ๊ณผ ๊ฐ์ด ์์ฑํ๋ค. .env.example ํ์ผ์ ์ฐธ๊ณ ํ์ฌ REACT_APP_API_URL
์ ๊ฐ์ผ๋ก ์๊น ์ค์ตํ๋ EC2 ์๋ฒ์ ์ฃผ์๋ฅผ ๋ฃ๋๋ค.
.env ํ์ผ์ ๋ฐ๋ก ์ ๊ณตํ์ง ์๋ ์ด์ ๋, .env ํ์ผ์ ๊ฒฝ์ฐ ์ค์ ๋ณด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋
๊ฒฝ์ฐ๊ฐ ๋ง์์ .gitignore์ ํฌํจํ์ฌ ์ธ๋ถ์ ๊ณต๊ฐํ์ง ์๋ ๊ฒ์ด ์์น์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ npm install
, npm run build
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ค. create-react-app์ผ๋ก ๋ง๋ ํ๋ก์ ํธ๋ ์ด๋ ๊ฒ ๋ฐ๋ก ๋ฒ๋ค๋ง์ด ๊ฐ๋ฅํ์ฌ ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค. ์คํ ๊ฒฐ๊ณผ๋ build ๋๋ ํ ๋ฆฌ์์ ํ์ธํ ์ ์๋ค.
์ด์ ๋ถํฐ S3 ๋ฒํท์ ๋น๋ํ ํ์ผ๋ค์ ์
๋ก๋ํ๊ฒ ๋ค. ๋จผ์ build ๋๋ ํ ๋ฆฌ ๋ด ๋ชจ๋ ํ์ผ์ ๋ฒํท์ ๋ฃจํธ ๋ฃ๋๋ค.
ํด๋์ ํ์ผ์ ๊ตฌ๋ถํด์ ๋จ์ ๋ณ๋ก ์ ์
๋ก๋ํ๋๋ก ํ๋ค.
์ ๋ก๋๊ฐ ์ฑ๊ณตํ๋ค๋ ์ด๋ก์ ๋ฐ์ค๊ฐ ์์ ๋จ๋ ๊ฑธ ํ์ธํ๋ค๋ฉด, ๋ซ๊ธฐ๋ฅผ ๋๋ฌ ์์ ์ ๋ฒํท์ผ๋ก ๋์๊ฐ๋ค.
์ถ๊ฐ์ ์ผ๋ก, ์ ๋ก๋ ์ build ํด๋ ์์ฒด๋ฅผ ๋ฃ์ง ์๋๋ก ์ฃผ์ํด์ผ ํ๋ค.
build ํด๋ ์์ฒด๋ฅผ ๋ฃ๊ฒ ๋๋ฉด ์ดํ ์ ์ ์น ์ฌ์ดํธ ํธ์คํ
์ฃผ์๋ฅผ ํตํด ์ ๊ทผ ์,
์
๋ก๋ ๋ ๊ฐ์ฒด๋ค์ ์ฐพ์ ์ ์๊ฒ ๋์ด 404 Not Found ํ๋ฉด์ด ์ถ๋ ฅ๋๋ค.
๋ค์ ์ ๋ก๋๊ฐ ์ ์๋ฃ๋ ๋ฒํท์ผ๋ก ๋์์จ ํ, ์ง๊ธ๋ถํฐ๋ ๋ฒํท์ ์ธ๋ถ์์๋ ์ ๊ทผํ ์ ์๊ฒ๋ ์ธํ ์ ํด์ค์ผ ํ๋ค.
ํด๋น ๋ฒํท์ ํ์ฌ "private" ์ํ์ด๋ค. ํ๊ธ๋ก๋ "๋ฒํท ๋ฐ ๊ฐ์ฒด๊ฐ ํผ๋ธ๋ฆญ์ด ์๋" ์ํ๋ก ๋ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด ์ํ๋ก๋ ์ ์ ์น ํธ์คํ ์ด ํ์ฑํ ๋์ด ์๋๋ผ๋, ๋ฒํท์ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ 403 Access Denied ๋ผ๋ ํ๋ฉด์ด ์ถ๋ ฅ๋๋ค.
๋จผ์ ํผ๋ธ๋ฆญ ์์ธ์ค ์ฐจ๋จ ๋ถ๋ถ์ ์์ ํ๊ฒ ๋ค. ํผ๋ธ๋ฆญ ์์ธ์ค ์ฐจ๋จ ๋ฐ์ ํธ์ง ๋ฒํผ์ ๋๋ฅธ๋ค. ๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ ํ์ด์ง๊ฐ ๋ฌ๋ค. ๊ทธ๋ฆผ์ฒ๋ผ ์ฒดํฌ๋ฐ์ค๋ฅผ ํด๋ฆญํด ์ฐจ๋จ์ ํด์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ฉด ํ๋์ ํ์ธ์ ์ ๋ ฅํ๋ผ๋ ๋ชจ๋ฌ์ฐฝ์ด ๋ฌ๋ค. ํ์ธ์ด๋ผ๋ ๋จ์ด๋ฅผ ์ ๋ ฅํ๊ณ ํ์ธ์ ๋๋ฌ์ค๋ค.
๋ค์ ๊ถํ ์ค์ ํ์ด์ง๊ฐ ๋ฌ๋ค. ์๋ก๊ณ ์นจ์ ํด์ ๋๊ธฐํ๋ฅผ ์์ผ์ฃผ๋ฉด ์๊น์ ๋ฌ๋ผ์ง ์ ์ด ๋์ ๋๋ค. ๋ฒํท์ ํผ๋ธ๋ฆญ ์์ธ์ค ์ฐจ๋จ์ด ํด์ ๋์๊ธฐ ๋๋ฌธ์, ์ก์ธ์ค ๋ถ๋ถ์๋ "๊ฐ์ฒด๋ฅผ ํผ๋ธ๋ฆญ์ผ๋ก ์ค์ ํ ์ ์์" ์ด๋ผ๊ณ ์ํ๊ฐ ๋ณ๊ฒฝ์ด ๋์ด ์๊ณ ๋ชจ๋ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ ๋ถ๋ถ์ด "๋นํ์ฑ" ์ํ๋ก ๋ณ๊ฒฝ์ด ๋์ด ์์์ ํ์ธํ ์ ์๋ค.
์ด์ ๋ฒํท ์ ์ฑ ๋ ์์ ํ๋ค. ๋ฒํท ์ ์ฑ ์์ ํธ์ง ๋ฒํผ์ ๋๋ฌ์ฃผ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ฌ๋ค.
์ ์ฑ ์ ์ ๋ ฅํ๋ ํ๋์ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ค.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{์์ ์ s3 ๋ฒํท ์ด๋ฆ}/*"
}
]
}
๊ธ์ด์ด๋ "widrns15"์ ๋ฒํท ๋ช ์ ์ ๋ ฅํ๋ค. ์์ ๋ฒํท ARN์ ๋ณด๋ฉด ์ค๊ฐ์ fe๋ถํฐ s3 ๋ถ๋ถ์ด ๋ฒํท ๋ช ์์ ์ ์ ์๋ค.
๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ฉด ๋ค์ ๊ถํ ํ์ด์ง๋ก ๋์๊ฐ๋ค. ๋์๊ฐ๋ฉด ๋ฒํท ์ ์ฑ ์น์ ์ ๋ฃ์ด์ค ์ ์ฑ ์ ํ์ธํ ์ ์๋ค.
์ด์ ์์ฑ ํญ์ผ๋ก ๋ค์ด๊ฐ, ๋งจ ๋ฐ์ ์ ์ ์น ์ฌ์ดํธ ํธ์คํ
์น์
์ ํ์ธํ๋ค.
๋ฒํท ์น ์ฌ์ดํธ ์๋ํฌ์ธํธ๊ฐ ์์ฑ๋์ด ์๋ ๊ฑธ ํ์ธํ ์ ์๋ค. ํด๋น ๋งํฌ๋ก ์ ๊ทผํ๋ค.
์ ๊ทผํ๋ฉด ์๋ก์ด ์ฐฝ์ด ์ด๋ฆฐ๋ค. ๋ฐฐํฌ์ ์ฑ๊ณตํ๋ค๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ก๊ทธ์ธ ํ๋ฉด์ ์ด๋ฆ ๋ถ๋ถ์๋ ๊น์ฝ๋ฉ, ๋น๋ฐ๋ฒํธ ๋ถ๋ถ์๋ 1234๋ฅผ ์ ๋ ฅํ์ฌ ๋ก๊ทธ์ธ์ด ๋๋์ง ํ์ธํด๋ดค๋ค.
์ ์์ ์ผ๋ก ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋ก๊ทธ์ธ๊ณผ ๋ก๊ทธ์์์ด ๋๋ ๊ฒ์ ํ์ธํ๊ณ ,
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํด ์๋ต์ ์ ๋ณด๋ด์ฃผ๊ณ ์๋ ์ํ์์ ํ์ธํ ์ ์์๋ค.
๐ก ์๋ฒ๋ AWS EC2์, ํด๋ผ์ด์ธํธ๋ Vscode์.
cd/client
๋ก ํด๋ผ์ด์ธํธ ํด๋๋ก ๋ค์ด๊ฐ์nano
๋ก .env ํ์ผ์ ๋ง๋ค๊ณ ํ ๋ฒ์ ์์
์ ์๋ํ์ผ๋, ์คํจํด์ vscode๋ก ๊ตฌํํ๋ค.