TIL 63: [๋ฐฐํฌ] Amazon Web Service
์ค๋์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ฐฐํฌ์ ์ด์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐฐํฌํ์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ (RDS)
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ํฌ๊ฒ RDS์ MySQL on EC2, ๋ ๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ฉด RDS๋ ์๋์ผ๋ก ์ฌ๋ฌ ๊ฐ์ replica๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ์ถ์ฒ ์ฌ๋ก๋ ์๋์ ๊ฐ์ต๋๋ค.
- ๋น์ฆ๋์ค ๋ณธ์ฐ์ ๊ฐ์น์ ์ง์คํ๋ ค๋ ๊ฒฝ์ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์ ๋ฌด๋ฅผ ์ํ์ง ์๋ ๊ฒฝ์ฐ
- ํ์ฌ ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์ญ๋์ด ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ ๋ณต์ ๋์ด ์๋ ๊ฒฝ์ฐ
- ๋ฐฑ์ ๋ฐ ๋ณต์ ์๋ํ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ
๋ฐ๋ฉด, MySQL on EC2๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋์ ๊ฐ์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์ ์์ ํ ํต์ ๊ถ์ ์ํ๋ ๊ฒฝ์ฐ
- ๋ฐฑ์ , ๋ณต์ , ํด๋ฌ์คํฐ๋ง ๋ฑ์ ๋ํ ์์ ํ ํต์ ๊ถ์ ์ํ๋ ๊ฒฝ์ฐ
- ๊ธฐ์ ์ RDBMS ์์ง์ ์ฃผ์ ๊ธฐ๋ฅ์ด RDS์ ๋ง์ง ์๋ ๊ฒฝ์ฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ RDS ์ธ์คํด์ค๋ฅผ ์์ฑํด์ ์ฐ๊ฒฐํ๋ฉด ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฒ ์คํ๋ฆฐํธ์์๋ MySQL ํด๋ผ์ด์ธํธ๋ฅผ ํ์ฉํด์ DB ์ธ์คํด์ค๋ฅผ ์ฐ๊ฒฐํ์ต๋๋ค. ๋ฐ๋ผ์ ํฐ๋ฏธ๋์ ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ MySQL์ ํตํด DB ์ธ์คํด์ค์ ์ ์ํ์ต๋๋ค. ์ฌ๊ธฐ์ ํฌํธ๋ฒํธ๊ฐ 3306์ด ์๋๋ผ 13306์ผ๋ก ํ ์ด์ ๋ ํฌํธ ๋ฒํธ ๋ ธ์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ ๋๋ค.
mysql -u [๋ง์คํฐ ์ด๋ฆ] --host [์๋ํฌ์ธํธ ์ฃผ์] -P 13306(ํฌํธ๋ฒํธ) -p
์ ์ ํ EC2 ์ธ์คํด์ค์์ ์คํ๋๊ณ ์๋ ์๋ฒ๋ฅผ ํ๊ฒฝ๋ณ์๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํด์ฃผ์์ต๋๋ค.
์ถ๊ฐ ์ ๋ฆฌ
EC2 ์ฌ์ฉ์ ๋ฐ์ดํฐ - ์ธ์คํด์ค๊ฐ ์์๋ ๋ ์คํ๋๋ ์คํฌ๋ฆฝํธ
EBS(Elastic Block Store) - EC2 ์ธ์คํด์ค๋ฅผ ์ํ ์๊ตฌ์คํ ๋ฆฌ์ง๋ก, EC2 ์๋ช ์ฃผ๊ธฐ์ ๋ฌด๊ดํ๊ฒ ๋ณด๊ด์ด ๊ฐ๋ฅํ๋ฉด ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋์คํฌ
ํ๋ผ์ด๋น IP๋ฅผ ๊ฐ์ง ์ปดํจํฐ๋ฅผ ์ธํฐ๋ท์ ์ฐ๊ฒฐํ๋ ค๋ฉด NAT๊ณผ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด์ ์ฐ๊ฒฐ๋์ด ์์ด์ผ ํฉ๋๋ค
IAM(Identiy and Access Management)์ด๋ AWS ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ ํ๊ฒ ์ ์ดํ ์ ์๋ ์น ์๋น์ค์ ๋๋ค. IAM์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋๋ก ์ธ์ฆ(๋ก๊ทธ์ธ) ๋ฐ ๊ถํ ๋ถ์ฌ(๊ถํ ์์)๋ ๋์์ ์ ์ดํฉ๋๋ค. AmazonEC2FullAccess ์ ์ฑ ์ด ํฌํจ๋ IAM ์ญํ ์, ํน์ IAM ์ฌ์ฉ์๋ก ํ์ฌ๊ธ EC2์ ๋ํ ์ ์ฒด ์ ๊ทผ ๊ถํ์ ์ฃผ๊ณ ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
๋ณด์ ๊ทธ๋ฃน ๊ท์น์, ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ท์น์ ์์ฑํ ์ ์์ ๋ฟ, ๊ฑฐ๋ถํ๋ ๊ท์น์ ์์ฑํ ์ ์์ต๋๋ค. ์์๋ฐ์ด๋์ ํธ๋ํฝ์ ์ ์ดํ๊ณ ์ถ๋ค๋ฉด, ๊ธฐ๋ณธ ๋ณด์ ๊ทธ๋ฃน default๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ , ์ํ๋ ์์๋ฐ์ด๋ ๊ท์น์ด ์ ์ฉ๋ ์๋ก์ด ๋ณด์ ๊ทธ๋ฃน์ ๋ง๋ค๋ฉด ๋ฉ๋๋ค. ๋ณด์๊ทธ๋ฃน์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ธ๋ฐ์ด๋ ํธ๋ํฝ์ ์ฐจ๋จํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก EC2๋ ์ธํฐ๋ท์ ๋ ธ์ถ๋์ด์ผ ํ๊ณ RDS๋ ์จ๊ฒจ์ ธ์ผ ํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์ค์งํ๊ณ , ๋ค์ ์์ํ๋ฉด ํผ๋ธ๋ฆญ IPv4 ์ฃผ์๋ ๋ณ๊ฒฝ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ ฅ์ (Elastic) IP๋ฅผ EC2 ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ฉด, EC2 ์ธ์คํด์ค์ IP ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค EIP๋ ํด๋น EC2 ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋์ด, ๋ ๊ฐ์ EIP๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋ง๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฏ๋ก, ๊ณ ์ฑ๋ฅ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๊ตฌ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ถ์ฒ๋ฉ๋๋ค. ํ๋ผ์ด๋น IP ์ฃผ์๋ ์ธํฐ๋ท์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ IP ์ฃผ์๊ฐ ์๋๋๋ค.
cloudfront: S3์์์ global CDN
load balancer: ํธ๋ํฝ์ด ๊ณผ๋ํด์ง๋ ๊ฒฝ์ฐ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์์์ ๋๋์ด ์ค๋๋ค. ์๋ฒ์์ฒด์ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค.