๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ " ๊ต๊ณผ๋ชฉ์ ์งํํ์๋
์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค
Cloud Infrastructure
ํ๋์ ๋ฐ์ดํฐ์ผํฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ์์ฒ๋์ ์๋ฒ๊ฐ ์ฅ์ฐฉ๋์ด ์์
๋ฐ์ดํฐ ์ผํฐ ๋ด์ ์๋ฒ๋ ๋์ผ๋ก ๊ตฌ์ฑ๋จ
=> ๊ฐ์ ๋์์๋ ์ฑ๊ธ ๋คํธ์ํฌ ์ค์์น๋ฅผ ํตํด์ ์ฐ๊ฒฐ
=> ์ฌ๋ฌ ๋์ ๊ณ ์ฑ๋ฅ ๋คํธ์ํฌ ์ค์์น๋ก ์ฐ๊ฒฐ
AWS Infrastructure - Region & Availability Zone (AZ)
Region
๋ฌผ๋ฆฌ์ ์ง๋ฆฌ์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ตฌ์ฑ๋ ์์ ์ธํธ
(๋ฏธ๊ตญ ์๋ถ, ๋ฏธ๊ตญ ๋๋ถ, ์์์ ์์ธ, ์์์ ์ผ๋ณธ ์ง์ญ ๋ฑ..)
ํ๋์ Region์ ์ต์ 2๊ฐ ์ด์์ Availability Zone์ผ๋ก ๊ตฌ์ฑ๋จ
Availability Zone
ํ๋ ๋๋ ๊ทธ ์ด์์ ๋ฐ์ดํฐ ์ผํฐ๋ก ๊ตฌ์ฑ๋์ด ์์
- AZ ๊ฐ์๋ ์คํจ๊ฐ ์ ํ๋์ง ์์
=> ์ด๋ ํ AZ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด๋ ๋ค๋ฅธ AZ๋ ์๊ด ์๊ฒ ํจ ์ฆ, ์ฌ๋ฌ AZ๋ฅผ ๊ฑฐ์ณ ๊ฐ๋ฐํ๋ฉด ์์ ์ฑ์ด ์ฌ๋ผ๊ฐ - AZ ๋ด๋ถ๋ ์ด๊ณ ์ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, AZ ๋ด๋ถ ํต์ ์ AZ ๊ฐ ํต์ , Region ๊ฐ ํต์ ๋ณด๋ค ๋น ๋ฆ์ ๊ฐ์ ํจ
AWS Region ์ด๋ฆ ๋ถ์ฌ ๊ท์น์ '์ง์ญ์ฝ๋-๋ฐฉ์-๋ฒํธ-AZ ์ํ๋ฒณ' ์
(2023๋ 5์ ๊ธฐ์ค 31๊ฐ์ ๋ฆฌ์ , 102๊ฐ์ AZ)
ex. 'us-west-2' , 'ap-northeast-2'
Azure๋ AWS์ ์ ์ฌํ๊ฒ Region๊ณผ Availability Zone์ผ๋ก ๊ตฌ๋ถํ์ฌ ๊ณ ๊ฐ์ฉ์ฑ ์๋น์ค ์ ๊ณต
GCP์ ๊ฒฝ์ฐ Region ๊ฐ๋ ์ ์ฌ์ฉํ๋๋ฐ Availability Zone์ Zones๋ก ๋ช ์นญ
Amazon EC2
ํ์์ ๋ฐ๋ผ์ ์ฌ์ฉ์๋ ํ์ฉํ๊ณ ์ ํ๋ ์ปดํจํฐ ํน์ฑ์ ๋ฐ๋ผ์ ์ธ์คํด์ค๋ฅผ ์ ํ ํจ
ํน์ง์ ์ดํด๋ณด๋ฉด
1. ์ฌ์ฉํ๋ ๋งํผ ๊ณผ๊ธ ๋จ
- ์๋ฌด๋ฐ ์์
์ ํ์ง ์๊ณ ์ธ์คํด์ค๋ฅผ ์ผ๋๊ธฐ๋ง ํด๋ ๊ณผ๊ธ ๋จ
- CPU ํ์ฉ % ์ ๋ฐ๋ผ์ ๊ณผ๊ธ์ด ๋์ง๋ ์์
2. ๋ค์ํ ํ๋์จ์ด ํน์ฑ ๋ฐ ์ด์์ฒด์ ์ ์ ํ ๊ฐ๋ฅ
- Amazon Machine Image (AMI)
- ์ด์์ฒด์ ๋ฐ ์ํํธ์จ์ด๊ฐ ์ค์น๋ ์ด๋ฏธ์ง
- AMI๋ก ๋ถํฐ EC2 ์ธ์คํด์ค๊ฐ ์์ ๋จ (๊ฐ์ํ ๊ธฐ์ ์ ์ด์ฉ)
- ์ด์์ฒด์ ๋ฐ ์ํํธ์จ์ด๊ฐ ์ค์น๋ ์ด๋ฏธ์ง
์ปดํจํฐ ์ฌ์ฉ๋์ด ํ์ํ๋ฉด ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๊ณ , ํ์์์ผ๋ฉด ์ธ์ ๋ ์ง ์ธ์คํด์ค ์ญ์ ๊ฐ๋ฅ
EC2 ํ์ฉ์ ๊ตฌ์ฑ ์์๋ค
AMI (Amazon Machine Image)
- AWS์์ ์ธ์คํด์ค (์๋ฒ) ๊ตฌ๋์ ์ํ ํ
ํ๋ฆฟ
- ์๋์ฐ, ๋ฆฌ๋
์ค ์ด์์ฒด์ ํฌํจ (mac ๊ฐ๋ฅ)
- ์ฌ์ฉ์๊ฐ ์์์ AMI ์์ฑ ๊ฐ๋ฅ
- Quick start (AWS์์ ์ ๊ณตํด์ฃผ๋ ๊ธฐ์ด ์ด์์ฒด์ ํฌํจ)
- My AMIs (์ฌ์ฉ์ ์์ฑ AMI)
- AWS Marketplace (AWS ์ด์ธ ๋ค๋ฅธ ์
์ฒด๋ค์ด ๋ณธ์ธ ์๋น์ค๋ฅผ ์ ์ฌ์ฉํ๊ฒ๋ ๋ง๋ค์ด์ ์ ๊ณตํ๋ AMI)
- Community AMIs (์ฌ์ฉ์ ๊ฐ์ ๊ณต์ ํ๋ AMI)
์ธ์คํด์ค ํ์
์ฌ์ฉ์๊ฐ ์ํ๋ ํ๋์จ์ด ํน์ฑ์ ํ์ฉ ๊ฐ๋ฅํ๋๋ก ์ค์ ํด๋ ์ธํธ
=> ๋ฉ๋ชจ๋ฆฌ, CPU, ํ์ผ ์ ์ฅ์, ๋คํธ์ํฌ ์ฑ๋ฅ๋ฑ์ ์ค์ ์ด ๊ฐ๋ฅํจ
์ธ์คํด์ค ํ์ ์ ํฐ ์นดํ ๊ณ ๋ฆฌ (ํ์ ์ด ์๋ฐฑ ์ข ๋ฅ๊ฐ ์๊ธฐ ๋๋ฌธ)
- General
- Compute-optimized
- Memory-optimized
- Storage-optimaized
- Accelerated compting
์ธ์คํด์ค ํ์ , ์ง์ญ๋ณ๋ก ๊ฐ๊ฒฉ์ด ๋ค๋ฅผ ์ ์์
๋ณดํต ์ด๋ฆ์ ์ด๋ค ํ์ ์ธ์ง ๋ํ๋ด๋ Family, ๋์์๋ก ์ต์ ๋ฒ์ ์ ํ๋ํ๋ generation, ์ปค์ง์๋ก ๋ฉ๋ชจ๋ฆฌ, cpu ๋ ๋น๋กํด์ ์ฆ๊ฐํ๋ size๋ก ๊ตฌ์ฑ๋จ
ex. t2.micro ์ ๊ฐ์ด ํํ
AWS EC2 ๊ฐ๊ฒฉ ์ต์
- On-demand
- ์ฌ์ฉํ๋ ์ ๋งํผ ๊ณผ๊ธ ๋จ (์ด์์ฒด์ ์ ๋ฐ๋ผ ์ด๋น ๊ณผ๊ธ or ์๊ฐ๋น ๊ณผ๊ธ)
- ์ธ์คํด์ค ํ์
๋ง๋ค ๊ฐ๊ฒฉ์ด ๋ค๋ฆ (์ง์ญ๋ง๋ค๋ ๋ค๋ฆ)
- Reserved instance
- ์ฅ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํจ์ ๊ธฐ์ค์ผ๋ก ํ ์ธ ๋ฐ์ (ํ๋ ฅ์ ์ผ๋ก ์๋ฒ ์ฌ์ฉ X => ์๋ฒ ๊ฐ์๊ฐ ์ ์ง๋๋ ๊ฒฝ์ฐ ์ ๋ฉ๊ธ
- ์ ๋ฉ๊ธ์ ๋จผ์ ๋ด๋ ๊ธฐ๊ฐ์ ๋ฐ๋ผ์ ํ ์ธ ์ก์๊ฐ ๋ค๋ฆ
- ์ฅ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํจ์ ๊ธฐ์ค์ผ๋ก ํ ์ธ ๋ฐ์ (ํ๋ ฅ์ ์ผ๋ก ์๋ฒ ์ฌ์ฉ X => ์๋ฒ ๊ฐ์๊ฐ ์ ์ง๋๋ ๊ฒฝ์ฐ ์ ๋ฉ๊ธ
- Spot instance
- ๋จ์๋๋ ์์์ ์ผ ๊ฐ๊ฒฉ์ ํ์ฉ (ํน์ ์ง์ญ, ํน์ ์๊ฐ์ ์๋ฒ๊ฐ ๋จ์๋๋ฉด ์ธ๊ฒ ์ ๊ณตํด์ค)
- ์ฌ์ฉ์ค์ธ ์์์ ์ธ์ ๋ ์ง ์ข
๋ฃ๋ ์ ์์
(์ฌ๋์ด ๋ชฐ๋ฆฌ๋ฉด on-demand์ ์์ ๋ฐฐ์ ์ ์ํด ์ข ๋ฃ์ํด => ๊ฒฝ๋งค ๋ฐฉ์์ด๋ผ ์์ ๋์์ ธ์ ์ฌ์ฉ์๊ฐ ์ค์ ํ ์ต๋๊ฐ๊ฒฉ ๋์ด์๋ฉด ์ข ๋ฃ)
- ๋จ์๋๋ ์์์ ์ผ ๊ฐ๊ฒฉ์ ํ์ฉ (ํน์ ์ง์ญ, ํน์ ์๊ฐ์ ์๋ฒ๊ฐ ๋จ์๋๋ฉด ์ธ๊ฒ ์ ๊ณตํด์ค)
- Reserved Host(Instance)
- ํธ์คํธ ๊ธฐ๊ธฐ๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์์ ๊ณต์ ํ์ง ์์
- ๋ผ์ด์ผ์ค ๊ด๋ จ ๊ท์ ๋ฐ ๊ท์ ๋ง์กฑ (oracle ๊ฐ์ด ๋ผ์ด์ผ์ค ์ด์๋ก ์ฌ์ฉ ์ ์ฝ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ)
- HW๋ฅผ ๋ ์ ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฒฉ์ด ๋น์
๋คํธ์ํฌ ์ธํ
- VPC ์ค์
- Public IP ํ ๋น ์ฌ๋ถ ์ ํ
IAM Role
- ์คํ๋ ์ธ์คํด์ค๊ฐ ๋ค๋ฅธ AWS ์์์ ์ ๊ทผ์์ ๊ฐ์ง๋ ๊ถํ์ ์ ์
(EC2 ์ด๋ค๊ณ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ๊ฒ๋ง ์ฐ๋๊ฒ ์๋๋ผ ๋ค๋ฅธ cloud ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ) - Role์ attach๋ policy๊ฐ ์ ๊ทผ ๊ถํ์ ์ค์
- ์ธ์คํด์ค๊ฐ ์์ํ ํ์๋ ์ค์ ๊ฐ๋ฅ
User data
์ธ์คํด์ค๊ฐ ์์ํ ๋ ์คํํ๋ ๋ช ๋ น์ด๋ฅผ ์ง์ ํ๊ฒ ํด์ค
์ธ์คํด์ค๊ฐ ์์ํ ๋๋ผ๋ ์๋ฏธ๋ ์ฌ๋ถํ ์ด๋ ์ค์ง ํ ๋ค์ ์์ํ ๋๊ฐ ์๋๋ผ ์์ ์๋กญ๊ฒ ์์ํ ๋๋ฅผ ์๋ฏธํจ
์ฌ์ฉ ์ : ์ธ์คํด์ค๋ง๋ค ์คํํ ๋ช
๋ น์ด๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ (ex. ํ๋ฆฌ๋ฏธํฐ ์ ๋ฌ ๋ฑ), ๋ณ๋์ AMI ๋ก ๋ง๋ค๊ธฐ๋ณด๋ค ํ๋์ AMI๋ฅผ ๋ง๋ค๊ณ user data๋ฅผ ํตํด์ ์ธ์ ์ ๋ฌ์ด ๊ฐ๋ฅํจ
Storage ์ต์
- Root ๋ณผ๋ฅจ (๋ถํ
์ด ์งํ๋๋) ์ ์ฌ์ด์ฆ ์ง์ ์ด ๊ฐ๋ฅ - ๋ถํ
๋์คํฌ
- ์ถ๊ฐ์ ์ธ ๋์คํฌ ์ฅ์ฐฉ ๊ฐ๋ฅ (attach ๊ฐ๋ฅ)
- ์ํธํ ์ค์ ๊ฐ๋ฅ
- ๋ณผ๋ฅจ ํฌ๊ธฐ, SSD, HDD ๋ฑ์ ์ง์ ๊ฐ๋ฅ
- EBS ๋๋ ์ธ์คํด์ค ๋ก์ปฌ ์คํ ๋ฆฌ์ง ์ค์ ๊ฐ๋ฅ
์ธ์คํด์ค ์์ ์คํ ๋ฆฌ์ง๊ฐ ์๋ ๊ฒ์ด ์ธ์คํด์ค ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ด๊ณ ๋ฐ๋ก ์คํ ๋ฆฌ์ง๊ฐ ์์ ์ ๋ ์๋๋ฐ ๊ทธ๊ฒ์ด EBS์
์ธ์คํด์ค ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ๊ฒฝ์ฐ ์ผ๋ถ ์ธ์คํด์ค ํ์
์์๋ง ์ง์ํจ (storage-optimized)
์ธ์คํด์ค ๋ก์ปฌ ์คํ ๋ฆฌ์ง ๋ณผ๋ฅจ์ ๋ฐ์ดํฐ ์์์ฑ์ด ์์ (reboot ์์๋ง ์ง์)
ํด๋ผ์ฐ๋ ๋ฒค๋๋ค์ HW1์ ์๋ ์๋ ์ธ์คํด์ค๊ฐ ๋น ์ง๊ณ ์๋ฆฌ๊ฐ ๋๋ฉด ๋ ๋ค๋ฅธ ์ธ์คํด์ค๋ฅผ ์ฌ๋ฆด ์ ๋ ์์
=> ์ด ๋ง์ ์ธ์คํด์ค๋ฅผ ๊ป๋ค๊ฐ ๋ค์ ํค๋ฉด ๋ค๋ฅธ HW์์ ์๋ํ๋ค๋ ๋ง (๋ฐ์ดํฐ๊ฐ ๋ ๋ผ๊ฐ)
Key Pair
- ์ธ์คํด์ค์ SSH๋ก ์ ๊ทผํ๊ธฐ ์ํ ๋น๋์นญ ํค ์ง์
- Public, Private ํค๋ก ๊ตฌ์ฑ ๋จ
(์ํธํํ ๋๋ Public key๋ก ๋๊ตฌ๋ ๊ฐ๋ฅํ์ง๋ง ๋ณตํธํํ ๋๋ Private key๋ฅผ ์ด์ฉํ๋ ๋น๋์นญ ํค ์ํธํ) - RSA ํค๋ฅผ ํ์ฉํ ์ ๊ทผ
EC2 ํ์ด์ง์์ KeyPair ์์ฑ ๊ฐ๋ฅํจ
=> ์ฌ์ฉ์์ RSA ํค๋ฅผ EC2 ํ์ด์ง์์ KeyPair๋ก import ๊ฐ๋ฅ
ํ์ง๋ง, ์ฌ์ฉ์ KeyPair๋ก EBS encryption์ด ๋ถ๊ฐ๋ฅํ๊ณ KMS๋ฅผ ํตํด์ EC2 KeyPair ์์ฑ์ด ๋ถ๊ฐ๋ฅํจ
KMS (Key Management Service)๋ AWS์์ ์ํธํ ํค๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ์๋น๋ก EBS ์ํธํ, S3 ๊ฐ์ฒด ์ํธํ, ๋ฐ์ดํฐ ์ํธํ ๋ฑ์ ์ฌ์ฉ๋จ
=> ๋ก๊ทธ์ธ์ฉ EC2 KeyPair (SSH ํค ์)๋ฅผ ์์ฑํ๋ ๋ฐ๋ ์ฌ์ฉ๋์ง X
EC2 ์ธ์คํด์ค ์๋ช ์ฃผ๊ธฐ
AMI๋ฅผ ์ด์ฉํ์ฌ EC2๊ฐ ์์๋๋ฉด ๋๊ธฐ์ค์ ๋จธ๋ฌผ๋ค๊ฐ ์คํ์ค์ผ๋ก ๋ฐ๋๊ฒ ๋จ (์ด ๋ ๋ถํฐ ๋์์ค์ผ๋ก ํ๋จํ๊ณ ๊ณผ๊ธ)
์ด ๋ ์ฌ๋ถํ , ์ค์ง, ์ข ๋ฃ๋ก ๋์๊ฐ ์ ์์
์ฌ๋ถํ ์ ํ๊ฒ ๋๋ฉด ์ฌ๋ถํ ์ค์ด์๋ค๊ฐ ๋ค์ ์คํ์ค ์ํ๋ก ๋ฐ๋
์ข ๋ฃ(terminate)๋ฅผ ํ๊ฒ ๋๋ฉด CPU, RAM, DISK๊ฐ ๋ค ๋ ๋ผ๊ฐ๊ณ ์ข ๋ฃ์ค ์ํ๋ฅผ ๊ฑฐ์ณ ์ข ๋ฃ๋จ์ผ๋ก ๋ฐ๋
(๋ ์ด์ ๊ณผ๊ธ X)
=> Delete on termination์ด ์ค์ ๋์ด ์์ง ์์ผ๋ฉด EBS ๋ณผ๋ฅจ์ ์ญ์ ๋์ง ์๊ณ ์ ์ง๋จ
์ค์ง(์ต๋ ์ ์ ๋ชจ๋)๋ฅผ ํ๊ฒ ๋๋ฉด ์ค์ง์ค์ ๊ฑฐ์ณ ์ค์ง๋จ์ผ๋ก ๋ฐ๋
(์ธ์คํด์ค ๊ณผ๊ธ์ ์ผ์ด๋์ง ์๊ณ , EBS์ฌ์ฉํ๋ฏ๋ก DISK๋ ๋จ์์์)
=> Storage ๊ณผ๊ธ์ ๋ฐ์ํจ!
EC2 ์ธ์คํด์ค ์ต๋ ์ ์ ๋ชจ๋
EC2 ์ธ์คํด์ค์ ๊ตฌ๋์ ๋ฉ์ถ๋ ๋ฐฉ๋ฒ์๋ Stop(์ค์ง) ์ Shutdown (์ข ๋ฃ)์ด ์์
=> ๋๋ค ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ด์ฉ์ ์ ์ค ๋จ (ํ๋ฐ์ฑ)
์ต๋์ ์ ๋ชจ๋
- ์ธ์คํด์ค๋ด์ ๋ฉ๋ชจ๋ฆฌ (RAM)์ ์ ์ฅ๋ ๋ด์ฉ์ ์ ์ฅ ๊ฐ๋ฅ
- ๋ฉ๋ชจ๋ฆฌ ๋ด์ฉ ๋ฐ ํ๋ก์ธ์ค ์ฌ์์ ๊ฐ๋ฅ
- Amazon Linux2 ๋ฐ ํน์ ์ธ์คํด์ค๋ง ์ง์
- ์ํธํ๋ EBS ๋ฃจํธ ๋ณผ๋ฅจ ์ฌ์ฉ ๋ฐ 150GB RAM๊น์ง ๊ฐ๋ฅ (dump๊ฐ ๊ฐ๋ฅ)
=> RAM ๋ด์ฉ์ EBS ๋ฃจํธ ๋ณผ๋ฅจ์ dump - ์ธ์คํด์ค ์์์ ์ต๋์ ์ ๋ชจ๋ ํ์ฑํ ํ์
EC2 ์ธ์คํด์ค์ ๋ฉํ๋ฐ์ดํฐ ํ์ธ
EC2 ๋ฉํ๋ฐ์ดํฐ
- ํ์ฌ ๊ตฌ๋ ์ค์ธ ์ธ์คํด์ค์ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณต
- ๋์ ์ค์ธ EC2 ์ธ์คํด์ค์ ์ ์ํ์ฌ (SSH) ์์ ํตํด์ ์ ๋ณด ํ๋ ๊ฐ๋ฅ
- ์ ๋ณด ํ๋ ์ ๋ณด์ ๊ธฐ๋ฅ ์ ๊ณต
(๋ฉํ๋ฐ์ดํฐ๋ EC2 ์ธ์คํด์ค ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅ)
์์์ curl http://169.254.169.254/latest/meta-data/~ ๋ฅผ ํ๋ฉด ๋๋๋ฐ
curl http://169.254.169.254/latest/meta-data/ami-id ์ฒ๋ผ curl ์์ฒญ์ ๋ณด๋ด๋ฉด ํด๋น ์ธ์คํด์ค์ AMI ID๊ฐ ์ถ๋ ฅ๋จ
curl ๋ช ๋ น์ด๋ HTTP ์์ฒญ์ ๋ณด๋ด๋ ๋๊ตฌ์ธ๋ฐ ping ๊ณผ ๋น์ทํ ์ ์ด ์์ง๋ง, ping์ ICMP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋๊ณ , curl์ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ๋ ๋ฐ ์ฌ์ฉ๋จ
์ ๊ณต๋๋ ์ ๋ณด๋ค๋ก๋ ํผ๋ธ๋ฆญ IP ์ฃผ์, ํ๋ผ์ด๋น IP ์ฃผ์, ํผ๋ธ๋ฆญ ํธ์คํธ ์ด๋ฆ, ์ธ์คํด์ค ID, ๋ณด์ ๊ทธ๋ฃน, ๋ฆฌ์ , ๊ฐ์ฉ ์์ญ ๋ฑ์ด ์์
EC2 ์ธ์คํด์ค๋ก์ ์ ๊ทผ ์ ์ด
Security Group
- ํฌํธ ๊ธฐ์ค์ผ๋ก ํด๋น ์ธ์คํด์ค์ ์ ๊ทผ ๊ฐ๋ฅ ์ฌ๋ถ ์ง์
- ์ธ์คํด์ค๋น inbound/outbound ํธ๋ํฝ์ ๋ฐฉํ๋ฒฝ ์ญํ ๋ด๋น
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ inbound ํธ๋ํฝ์ ํ์ฉํ์ง ์์
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ outbound ํธ๋ํฝ์ ํ์ฉ ๋จ
- ์ฃผ์ ์๋น์ค (SSH, HTTP ๋ฑ) ๋ณ๋ก ํ์ํ ์๋น์ค๋ฅผ ๋ณ๋๋ก ํ์ฉ
- Incoming ์์ฒญ์ ๊ฒฝ์ฐ CIDR๋ก ํํ๋ ํน์ ์์ค ๊ธฐ๊ธฐ๋ก ๋ถํฐ์ ์ ๊ทผ ํ์ฉ ๊ฐ๋ฅ
=> ์ธ์คํด์ค์์ ๋๊ฐ๋๊ฑด (outbound) ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ์ฉ, ๋ค์ด์ค๋๊ฑด (inbound)๋ ์ง์ ์ค์ ํด์ค์ผํจ!
Azure Virtual Machines
AWS EC2์ ๋์๋๋ ์ปดํจํ ์๋น์ค
=> Azure VM์ด๋ผ๊ณ ๋ถ๋ฆ
Azure VM ์ธ์คํด์ค ํ์
Azure VM์ ์ธ์คํด์ค ํ์ ์ EC2์ ์ธ์คํด์ค ํ์ ๊ณผ ์ ์ฌํ๊ณ
์ด๋ฆ์ ๊ฒฝ์ฐ Family, size(vCPU ์), ์ถ๊ฐ๊ธฐ๋ฅ, ์ธ๋๋ก ๊ตฌ์ฑ๋จ
=> ex. D2as v5
(as๊ฐ ์ถ๊ฐ๊ธฐ๋ฅ notation)
Azure VM ๊ฐ๊ฒฉ ์ต์
EC2์ ๊ฐ๊ฒฉ ์ต์ ๊ณผ ๋น์ทํ์ง๋ง Reserved Host๊ฐ ์๊ณ Savings Plan์ด๋ผ๋ ์ต์ ์ด ์์
์ด Savings Plan์ 1๋
๋๋ 3๋
๋์ ๊ณ ์ ๋ ์๊ฐ๋น ๊ธ์ก์ ์ฝ์ , ํ ์ธ๋ ๊ฐ๊ฒฉ์ ์ ๊ณตํด์ค
=> Pay as you go ( = aws on-demand)์ ๋นํด ์ต๋ 65% ํ ์ธ
Reserved instance๋ ์๋ฅผ ๋ค์ด, ํน์ VM ์ ํ, ๋ฆฌ์ , ์ด์ ์ฒด์ ๋ฑ์ ์์ฝํ๊ณ , ๊ทธ์ ๋ง๋ ์๊ธ์ ๋ฏธ๋ฆฌ ์ง๋ถํ๋ค๊ณ ํ๋ฉด
Savings Plan์ ๋ฆฌ์์ค๋ฅผ ๊ณ ์ ํ์ง ์๊ณ ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์๋ ์๊ธ์ ๋ก 1๋ ๋๋ 3๋ ๋์ ์๊ฐ๋น ๊ธ์ก์ ๊ณ ์ ํ์ฌ ํ ์ธ๋ ์๊ธ์ ์ ๊ณตํจ
=> ์์ฝํ ๊ธ์ก ๋ด์์ ๋ค์ํ ๋ฆฌ์์ค๋ฅผ ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์์
๋คํธ์ํฌ ์ธํ
์ AWS ์ ๋์ผํ๊ณ
Resource Group IAM <-> AWS IAM ROLE
Cloud-init <-> AWS user data
(cloud-init ๋ช ๋ น์ด๋ ์ํธํ ๋์ง ์์)
Key-Pair <-> AWS Key-Pair
๊ฐ๊ฐ ์ด๋ ๊ฒ ๋์๋จ
Azure VM ์๋ช ์ฃผ๊ธฐ
Stopping๊ณผ Deallocating์ ์ฐจ์ด
Stopping : OS ๋ฑ ๋ชจ๋ ํ๋ก์ธ์ค๋ ์ข ๋ฃ๋์์ง๋ง ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ํ (์คํ ๋ฆฌ์ง ๊ด์ ์์ ๊ณผ๊ธ O)
Deallocated : ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ Azure์ ๋ฐํํ์ฌ ๊ณผ๊ธ X
GCP Compute Engine
GCP VM ์ธ์คํด์ค ํ์
๋ค๋ฅธ ํด๋ผ์ฐ๋ ๋ฒค๋์ ๋ค๋ฅด๊ฒ ์ฌ์ฉ์๊ฐ CPU ์ฝ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ฆ๋ฅผ ์ปค์คํ ํ๊ฒ ๋ง๋ค ์ ์์!
์ด๋ฆ์ Family, ์ธ๋, ์ ํ, size(vCPU์) ๋ก ๊ตฌ์ฑ๋จ
์ ํ์ standard, highmem, highcpu ๋ฑ์ด ์ฌ ์ ์๊ณ
์ปค์คํ ๋จธ์ ์ ํ์ด ์์
- ๊ธฐ์กด VM์ด ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ์ง ๋ชปํ ๊ฒฝ์ฐ ์ฌ์ฉ
- ์ฌ์ฉ์๊ฐ vCPU, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ํํ์ฌ ์ธ์คํด์ค ์์ฑ
- ์ค์ ๋ vCPU, ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ๋ผ ๊ณผ๊ธ
GCP๋ Storage ๊ณ์ด์ด X => Storage-optimized ์กด์ฌ X
GCP VM ๊ฐ๊ฒฉ ์ต์
AWS์ ์ ์ฌํ์ง๋ง
์ง์ ์ฌ์ฉํ ์ธ ์ด๋ผ๋ ์ต์ ์ด ์์
์ด๋ ๋ณ๋์ ์ ์ฑ ์ ์ฌ์ฉํ์ง ์๊ณ VM์ ์ค๋ซ๋์ ์ฌ์ฉํ๋ฉด ์๋์ ์ผ๋ก ์ต๋ 30%๋ฅผ ํ ์ธํด์ค
(1๋ฌ์ 25% ์ด์ ์ง์ ์ฌ์ฉํ๋ฉด ํ ์ธ)
=> ๋ค๋ฅธ ๋ฒค๋์ ๋ค๋ฅด๊ฒ ์ฝ์ ์ด ์๊ณ ๊ทธ๋ฅ ์ค๋ ์๋๊ณ ์ผ๋๋ฉด ํ ์ธ
๋ํ, ์ฝ์ ์ฌ์ฉ ํ ์ธ์ด๋ผ๊ณ ํด์ VM ํ์
(ex. n1-standard-1) ์ด ์๋ vCPU ์ฝ์ด์ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ Region ๋จ์๋ก ์ฝ์ ๊ตฌ๋งค
(1๋
ํน์ 3๋
์ฝ์ ๊ตฌ๋งคํ์ฌ ํ ์ธ)
=> ๋ค๋ฅธ ๋ฒค๋์ ๋ค๋ฅด๊ฒ ์ปค์คํ ๋ง์ด์ง์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ
GCP VM ๊ตฌ์ฑ์์
Startup Script <-> AWS user data ์ ๋์
IAM์ ํตํด VM ์ ๊ทผ ์ ์ด (์นํ์ด์ง์์ ์ฌ์ฉ์์ ์์ธ์ค๋ฅผ ์ ์ด ๊ฐ๋ฅ)
=> SSHํค๋ ์๋์ผ๋ก ์์ฑ ๊ฐ๋ฅํ๊ณ ์๋ ์์ฑ ์ํ ์ ์๋์ผ๋ก ์์ฑ
GCP VM ์๋ช ์ฃผ๊ธฐ
SUSPENDING๊ณผ TERMINATED๋ฅผ ์ ๊ตฌ๋ถํ๋ฉด ๋จ
Amazon Elastic Block Storage (EBS)
ํ์ผ ์ ์ฅ์ ์๋น์ค์ด๋ฉฐ, ๊ฐ EBS๋ EC2 ์ธ์คํด์ค์ ์ฅ์ฐฉ (attach) ์ด ๊ฐ๋ฅํจ!
- Block ๋จ์ ์ ์ฅ ์๋น์ค
=> Object ์ ์ฅ์๋ ์ ์ฒด ํ์ผ ๋จ์๋ก ์์ ์ด ๋์ง๋ง Block ์ ์ฅ์๋ ์ ์ฒด ํ์ผ์ค ์ผ๋ถ๋ง์ ์ ๋ฐ์ดํธ ๋ฐ ์ ์ฅ ๊ฐ๋ฅ! - ํ๋์ AZ ๋ด์์ ๋ณต์ ๋์ด ์์
(์ด๋ ์ ๋์ ์์ ์ฑ ํ๋ณด) - ๋คํธ์ํฌ๋ฅผ ํตํด์ EC2์ ์ฐ๊ฒฐ
- EC2 ๋ด ๋ก์ปฌ ์ ์ฅ์ ์๋
EC2 ์ธ์คํด์ค์ ๋ถํธ ๋ณผ๋ฅจ(SSD, HDD)์ด๋ ๋ฐ์ดํฐ ์ ์ฅ ์๋น์ค๋ก ์ฌ์ฉ๋จ
์ผ๋ฐ์ ์ธ ๋์คํฌ๊ฐ ๋ก์ปฌ์ ์ฝ๊ณ ์ธ ๋ 100~200 MB/sec ์ธ๋ฐ EBS์ Network ํต์ ์ด ์ด ์ ๋๋ ๋๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐํด์ ์ฐ๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์๋ ํฌ๊ฒ ์ฑ๋ฅ ์ฐจ์ด X
์ธ์คํด์ค ๋ก์ปฌ์ ์์์ ํ์ฉ๋๊ฐ ์ ๊ณ ์์๋ ๋คํธ์ํฌ๋ก ํต์ ํ๋๋ผ๋ ๊ฑฐ์ ๋น์ทํ ์ฑ๋ฅ์ด๋ผ๋ฉด ๋ฌด์กฐ๊ฑด EBS?
๊ณ ์ฑ๋ฅ ์คํ ๋ฆฌ์ง ๊ธฐ๋ฅ์ ์ฐ๊ณ ์ถ์ผ๋ฉด ๋ก์ปฌ์ ์ง์
=> ๋คํธ์ํฌ๊ฐ ์คํ ๋ฆฌ์ง ๋์ญํญ์ ๋ชป๋ฐ๋ผ๊ฐ๋ ๊ฒฝ์ฐ
EBS ๋ณผ๋ฅจ ํ์
EBS ์ง์ ๊ธฐ๋ฅ
๊ฒฐ๊ตญ DISK์..
์ค๋ ์ท
- ํน์ ์์ ์ ํ์ผ์ ๊ธฐ์ค์ผ๋ก ์์ฑ ๊ฐ๋ฅ (๋ถํ
๊ฐ๋ฅ)
=> ์ค๋ ์ท์ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด EBS ๋ณผ๋ฅจ์ ์์ฑํ ํ, ๊ทธ ๋ณผ๋ฅจ์ EC2 ์ธ์คํด์ค์ ๋ถํธ ๋ณผ๋ฅจ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ - ์ค๋
์ท์ผ๋ก ๋ถํฐ ์๋ก์ด ๋ณผ๋ฅจ ์์ฑ ๋ฐ EC2 ์ธ์คํด์ค์ ์ฅ์ฐฉ ๊ฐ๋ฅ
- ์ค๋ ์ท์ ์์ฑํ ๋ณผ๋ฅจ ์ฉ๋์ ๋ฐ๋ฅธ ๊ณผ๊ธ ๋ฐ์
์ํธํ
- ์ถ๊ฐ ์๊ธ ์์ด ์ํธํ ์ง์
- ์ํธํ/๋ณตํธํ์ ๋ํ ๋ถ๋ด์ ๋ฌด์ํ ์ ๋๋ผ๊ณ ๊ด๊ณ (์ค๋ฒํค๋๊ฐ ์๋ค๋ ๋ง)
ํ๋ ฅ์ฑ
- ์ฉ๋ ์ฆ๊ฐ ๊ฐ๋ฅ
- ๋ค๋ฅธ ์ ํ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ (์ค๋ ์ท ์์ฑ -> ๋ณผ๋ฅจ ์์ฑ ์ ์ํ๋ ํ์ SSD/HDD ์ ํ)
์๋ฅผ ๋ค์ด, ์๋๋ General Purpose SSD (gp3)๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ค๋ ์ท์ ๊ธฐ๋ฐ์ผ๋ก ์๋ก ์์ฑํ๋ ๋ณผ๋ฅจ์ Provisioned IOPS SSD (io2)์ ๊ฐ์ ๋ ๋์ ์ฑ๋ฅ์ ๋ณผ๋ฅจ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์
Azure Managed Disk & GCP Persistent Disk
ํ์ผ ์ ์ฅ์ ์๋น์ค๋ก ์ธ์คํด์ค์ ์ฅ์ฐฉ (attach) ์ด ๊ฐ๋ฅํจ
=> Block ๋จ์ ์ ์ฅ ์๋น์ค์
Amazon Simple Storage Service (S3)
Fully-managed object ์ ์ฅ ์๋น์ค๋ก ํ์ฅ์ฑ์ด ๋ณด์ฅ๋๋ฉฐ ํ์ผ์ ์์ ์ฑ์ 99.999999999% ๋ณด์ฅ
- ๋ธ๋ฝ ๋จ์๊ฐ ์๋ ์ค๋ธ์ ํธ ๋จ์๋ก ์ ์ฅ (EBS์ ์ฐจ์ด)
=> ํ์ผ ๊ทธ ์์ฒด๋ฅผ ์ ์ฅ - ๋ฒํท์ ์์ฑํ๋ฉฐ, ๋ฒํท์ ์ ์ธ๊ณ ๋ชจ๋ AWS ์ง์ญ์์ unique ํด์ผ ํจ
- EC2์ ๋ถํ
๋ณผ๋ฅจ์ผ๋ก๋ ํ์ฉ๋ ์ ์์
=> ์ด ๋๋ EBS๋ฅผ ํ์ฉํด์ผํจ (๋ฐ์ดํฐ๋ก๋ง ์ฌ์ฉ ๊ฐ๋ฅ) - ๋ฐ์ดํฐ ๋ณต์ ๋ AWS๊ฐ ๊ด๋ฆฌํจ
- AWS console, CLI, SDK (์ํํธ์จ์ด ๊ฐ๋ฐ ํคํธ) ๋ฅผ ํตํด์ ์ ๊ทผ ๊ฐ๋ฅ
- ์ค๋ธ์ ํธ์ ์ํ๋ณํ (create, delete, update) ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ ์ํฌ ์ ์์
S3 ์คํ ๋ฆฌ์ง ํด๋์ค
๊ฐ์ฒด์ ์ ์ฅ ๊ธฐ๊ฐ ๋ฐ ๋ณต์ ์ ๋์ ๋ฐ๋ผ์ ๋ค์ํ ๋ ๋ฒจ๋ก ์ค์ ๊ฐ๋ฅ
(๊ฐ ๋ ๋ฒจ๊ฐ ๊ฐ๊ฒฉ์ฐจ์ด๊ฐ ์์)
- Amazon S3 Standard
- Amazon S3 Intelligent - Tiering
(์ ๊ทผ ์ํ๋ ์ ๋ค์ ์ ๊ทผ ์๋๊ฐ ๋ฎ์ ๋์ ๋น์ฉ์ด ์ ์ - ํด๋ผ์ฐ๋ ๋ฒค๋๊ฐ ๊ฒฐ์ ํจ) - Amazon S3 Standard-Infrequent Access
(Intelligent์ ๋์ผํ๋ฐ ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํ ์ ์์) - Amazon S3 One Zone-Infrequent Access
(์ ์ค, ์ ๊ทผ ์๋๋ ์๊ด์์ผ๋ ๋น์ฉ์ ๋ฎ๊ฒ) - Amazon S3 Glacier
(๋ณด์ ์ฉ๋ - ์์นด์ด๋น)
=> ๋ํ ์ ์ ์ ์ ์ ์๋ฅ์ฒ๋ผ ์ ์ฅ๋ง ํ๋ ์ฉ๋๋ก ์ ๊ทผ ์๋ ๋ฎ๊ณ ๋น์ฉ๋ ๋ฎ๊ฒ ์ค์
Amazon S3 ํ์ฉ๋ฒ
์ค๋ธ์ ํธ๋ฅผ ์
๋ก๋ ํ๊ธฐ ์ํด์๋ ๋ฒํท์ ์์ฑํด์ผํจ
(๋ฉ์ธ AWS Region์ ์ ํ ํด์ผํจ)
=> ์์ฑ๋ ๋ฒํท์ ์ค๋ธ์ ํธ ์
๋ก๋
๋ฒํท : https://s3-ap-northeast-1.amazonaws.com/[bucket name]/
Region ์ฝ๋ ๋๋ ๊ธ๋ก๋ฒ ์ฃผ์๋ฅผ ์ ์ด์ฃผ๋ฉด๋๊ณ bucket name๋ ์ ์ด์ค์ผํจ
์ค๋ธ์ ํธ : https://s3-ap-northeast-1.amazonaws.com/[bucket name]/ Preview2.mp4
=> Key ๊ฐ์ผ๋ก ์ค๋ธ์ ํธ ํ์ผ๋ช
์ ์ ์ด์ฃผ๋ฉด ์ ๊ทผ ๊ฐ๋ฅ
bucket name์ ์์์ ๋งํ๋ฏ์ด ์ ์ธ๊ณ ๋ชจ๋ AWS ์ง์ญ์์ uniqueํ์ง๋ง ๋๊ตฐ๊ฐ ์ญ์ ํ๋ฉด ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํจ!
Amazon S3 ํน์ง๋ค
์ ์ฅ๋ ์ค๋ธ์ ํธ๋ HTTP๋ก ์ ๊ทผ ๊ฐ๋ฅํจ (ํผ๋ธ๋ฆญํ๊ฒ ์ค์ ๊ฐ๋ฅ)
์ฃผ์ ์ฌ์ฉ ์์ ๋ก๋
- ์ดํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ๋ ์ ์ ํ์ผ๋ค
- ์ ์ ์นํ์ด์ง ํธ์คํ
(html)
- ๋ฐ์ดํฐ ๋ฐฑ์
(๊ฐ์ฅ ์ ๋ ดํ ํ์ผ ์ ์ฅ๋ฒ)
- Data lake (๋น ๋ฐ์ดํฐ ๋ถ์์ ์ํ ์คํ ์ด์ง)
๊ฐ ์๊ณ
๊ฐ๊ฒฉ ๋ชจ๋ธ์ ์ดํด๋ณด๋ฉด
- ์ค๋ธ์ ํธ์ ์ ์ฅ๋ ํฌ๊ธฐ
- ๋ค๋ฅธ ์ง์ญ์ผ๋ก ํ์ผ์ด ๋๊ฐ๋ ๊ฒฝ์ฐ transfer ๋น์ฉ ๋ฐ์
- PUT, COPY, POST, LIST, GET ์์ฒญ ํ์
- S3๋ก ์
๋ก๋, ๊ฐ์ Region ๋ด์์ ํ์ผ ์ ์ก, CloudFront ๋ก์ ์ ์ก์ ๋ฌด๋ฃ
์ ๋ฐ๋ผ ๊ฐ๊ฒฉ์ด ์ฑ ์ ๋จ
Amazon S3 Glacier
๋ฐ์ดํฐ ์์นด์ด๋น (๋ณด์กด) ์๋น์ค
=> ๋ฐ์ด๋ ๋ด๊ตฌ์ฑ (์์ ์ฑ) ๋ณด์ฅ
๋งค์ฐ ์ ๋ ดํ ๋น์ฉ์ผ๋ก ์ฅ๊ธฐ๊ฐ ํ์ผ ๋ณด์กด์ ์ ํฉํจ
=> ๊ฒ์ ์๊ฐ์ ์๋ถ์์ ์์๊ฐ ์์๋จ
์๋ช ์ฃผ๊ธฐ ์ ์ฑ ์ค์ ๊ฐ๋ฅ
=> S3 ๊ฐ์ฒด์ ์์ฑ ์๊ฐ์ ๋ฐ๋ฅธ ์๋ ์์นด์ด๋น ๊ฐ๋ฅ
Azure Blob Storage
AWS S3์ ๋์๋๋ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ์๋น์ค
(๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ)
Google Cloud Storage
AWS S3์ ๋์๋๋ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ์๋น์ค
(์์ ์๊ด์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ํ ๋๋ง๋ค ๊ฒ์ํ ์ ์์)
=> AWS์ ์ ์ฌํ๋ ๊ฐ๊ฒฉ์ ์ธ ์ธก๋ฉด์์ ์ ๋ฆฌ
Relational Database (RDS)
ํด๋ผ์ฐ๋์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ณ ์ด์ํด์ฃผ๋ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค
๊ธฐ์กด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ์ ๋ฌธ์ ์ ์ผ๋ก๋
- ์๋ฒ ์ ์ง ๊ด๋ฆฌ ํ์
- ์ํํธ์จ์ด ์
๋ฐ์ดํธ ๋ฐ ๋ณด์ ํจ์น ์ ์ฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์
๋ฐ ๊ณ ๊ฐ์ฉ์ฑ ๋ณด์ฅ
- ํ์ฅ์ฑ ์ ์
- OS ์ค์น ๋ฐ ์ ๋ฐ์ดํธ
๊ฐ ์๋ค!
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฉ์ ์ฅ์
=> ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์ ๋นํด ๊ฐ๋ฐ์๊ฐ ์ ๊ฒฝ์จ์ผํ ๋ถ๋ถ์ด ์ค์ด๋ฌ
Amazon RDS ์ธ์คํด์ค
RDS๋ DB ์์ง (MySQL, PostgreSQL, MariaDB ...)์ ์๋ฒ ์์ ์น์ด์ ์ธ ์ ์๊ฒ ๊ด๋ฆฌํด์ค
(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ)
์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋์ํ๋ ์๋ฒ ์ธ์คํด์ค๋ EC2 ์์์ ๋์
=> CPU, ๋ฉ๋ชจ๋ฆฌ, ๋คํธ์ํฌ ์ฑ๋ฅ๋ฑ์ EC2 ์ธ์คํด์ค ํด๋์ค๋ฅผ ๋ฐ๋ผ๊ฐ
RDS์ DB ์ธ์คํด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด EBS ๋ณผ๋ฅจ์ ์ฌ์ฉํจ
=> ์ด ์คํ ๋ฆฌ์ง์ ํฌ๊ธฐ์ ์ฑ๋ฅ(์: SSD, ๋ง๊ทธ๋คํฑ ๋์คํฌ, ํ๋ก๋น์ ๋๋ IOPS ๋ฑ)์ ์ ํํ ์ ์์
Amazon Aurora DB
Cloud-native ๋ฐ์ดํฐ๋ฒ ์ด์ค
(cloud ๋ด์์๋ง ๊ตฌ๋ ๊ฐ๋ฅํ DB)
- MySQL, PostgreSQL ๊ณผ ํธํ์ฑ ์ ๊ณต
- RDS์ ๋ชจ๋ ์ฅ์ ์์
- ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ํ์ฉํ ๊ณ ๊ฐ์ฉ์ฑ ํ๋ณด
=> ๋ค์ค AZ์ ๋ณต์ฌ๋ณธ์ ๋๊ณ ์ด๋ฅผ S3์์ ๋ฐฑ์ ํด๋
(cloud-native๋ผ ์ด๋ ๊ฒ ๋ ๋์ ์์ ์ฑ, ํ์ฅ์ฑ์ด ๊ฐ๋ฅํจ)
ํด๋ผ์ฐ๋์์์ ๋ณด์ - IAM
AWS Identity and Access Management (IAM)
- AWS์์ ์ฌ์ฉ์ ๋ฐ ์์์ ๋ํ Authentication(์ธ์ฆ) ๊ณผ Authorization(๊ถํ ์ฒดํฌ) ์คํ
ํด๋ผ์ฐ๋ ์์์ ๋ํด์ ์์ฃผ ์ธ๋ถ์ ์ธ ์ ๊ทผ ๊ถํ ์ค์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ค
- ๋๊ฐ ์์์ ์ ๊ทผํ ์ ์๋๊ฐ
- ์ด๋ค ์์์ด ๋ค๋ฅธ ์๋น์ค์ ์ ๊ทผํ ์ ์๋๊ฐ
- ์์๋ค์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผ ํ ์ ์๋๊ฐ
=> ex. EC2 ์์์ ์ข ๋ฃํ๋ ๊ฒ์ A๋ผ๋ ์ฌ์ฉ์๋ง ๊ฐ๋ฅํ๊ฒ
๊ณผ๊ธ์ ๋ฐ๋ก ์์
IAM ํต์ฌ ์์
User : AWS๋ก authentication์ ์ํํ ์ฌ์ฉ์ ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ
Group : IAM user์ ์งํฉ์ฒด๋ก Group ๋ด์์๋ ๊ฐ์ ๊ถํ์ ๋ถ์ฌ ๋ฐ์
Policy : ํน์ ์์์ด ๋ค๋ฅธ ์ด๋ค ์์์ ์ ๊ทผํ ์ ์๋์ง ์ ์
=> ์ ๊ทผํ๋ ์ ๋๋ฅผ ์ ์
Role : AWS ์์๊ฐ ๋๋ ์ฌ์ฉ์๊ฐ permission์ ๋ถ์ฌํ ๋ ํ์ฉ
Policy๋ ๋ฌด์์ ํ ์ ์๋์ง(๊ถํ) ์ ์ํ๊ณ , Role์ ๋๊ตฌ์๊ฒ ์ด ๊ถํ์ ์ค์ง(๊ถํ์ ๋ถ์ฌ๋ฐ๋ ๋์)๋ฅผ ๋ํ๋!
AWS IAM User ํ์ฉ
AWS Management ์ฝ์ ์ ๊ทผ
- 12 ์๋ฆฌ account ID ๋๋ Alias
- IAM user name
- IAM password๋ก ์ ๊ทผ
Multi-Factor Authentication (MFA)
- ๊ฐํ๋ ๋ก๊ทธ์ธ ๋ณด์ ์คํ ๊ฐ๋ฅ
- IAM Username, password ์ด์ธ์ authentication code ๊ฐ ํ์
IAM User๋ฅผ ํตํ ์ธ์ฆ
IAM User๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ์ ๊ทผ ๋ฐฉ์์ ์ ํ ์ ์์
Programmatic access
=> ํ๋ก๊ทธ๋จ ๋๋ ์ฝ๋๋ฅผ ํ์ฉํ์ฌ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒํจ
=> Access key ID์ Secret access key๋ก ๊ตฌ์ฑ
=> AWS CLI (Command Line interface) : ๋ฆฌ๋ ์ค ์์ ํตํด์ ์ ๊ทผ
=> AWS SDK (Software Development Kit) : ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ์ฉํด์ ์ ๊ทผ
Authorization & Authentication
Authentication์ ์ธ์ฆ์ Authorization์ ์ด๋ค ์์ ์ ํ ์ ์๋์ง๋ฅผ ์ ์ํจ
IAM Policy๋ฅผ ์ด์ฉํ Authorization
IAM Policy๋ ์ธ๋ถ ์์ ๋ฐ ์ฌ์ฉ์์ ์ ๊ทผ ๊ถํ ์ ์ด๋ฅผ ํํํ ์ ์์
=> ์ด๋ค ์์์ด ์ด๋ค ์ฐ์ฐ์ ํ ์ ์๋์ง ์ ์ํจ
- ๋ชจ๋ ์ฐ์ฐ๋ค์ ๋ฌต์์ ์ผ๋ก ๋ชจ๋ ๊ฑฐ์ ๋จ
- ํ์ฉํ๊ณ ์ถ์ ์ฐ์ฐ์ ๋ช
์์ ์ผ๋ก ํ์ฉํด์ค์ผํจ
- ํน์ ์ฐ์ฐ์ด ๋ช ์์ ์ผ๋ก ๊ฑฐ์ ๋์ด์๋ค๋ฉด ์ ๋๋ก ํ์ฉ๋ ์ X
=> ์ต์ํ์ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ด ์ค์ํจ
IAM Policy ์ธ๋ถ ์ฌํญ
IAM Policy๋ ์ ๊ทผ ์ ์ด ๊ถํ์ ์ ์ํ๋ ๋ฌธ์์!
=> ์ธ๋ถ์ ์ธ ์ ๊ทผ ์ ์ด ํํ์ ๊ฐ๋ฅํ๊ฒํด์ค
๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์
- Identity-based policy
- Policy๋ฅผ IAM entity (User, group, role)์๊ฒ ํ ๋น
- Entity๊ฐ ์ํ ๊ฐ๋ฅํ actions๋ฅผ ์ ์
- Entity๊ฐ ์ํ ํ ์ ์๋ action์ ์ ์
- ํ๋์ policy๊ฐ ์ฌ๋ฌ entity์ ์ ์ ๊ฐ๋ฅ (์ฌํ์ฉ์ด ๊ฐ๋ฅํจ)
- ํ๋์ entity๊ฐ ์ฌ๋ฌ๊ฐ์ policy๋ฅผ ๊ฐ์ง ์ ์์
- Policy๋ฅผ IAM entity (User, group, role)์๊ฒ ํ ๋น
- Resource-based policy
- ์์ ์์ฒด์ ์ ์๋๋ policy (์ : AWS S3 bucket)
=> S3์ ์ ๊ทผํ ์ ์๋์ง ์๋์ง๋ฅผ ์ ์ํด๋์
- ์์ ์์ฒด์ ์ ์๋๋ policy (์ : AWS S3 bucket)
IAM Policy ๊ตฌ์ฑ ์์๋ค
Version : Policy ์ธ์ด์ ๋ฒ์ ํ์ (์ต์ : 2012-10-17)
Statement : Policy element ๋ค์ ์งํฉ์ฒด
(์ฌ๋ฌ๊ฐ์ statement๊ฐ ํฌํจ๋จ)
Sid : StatementID (optional - ๋์๋ง)
Effect : Allow ๋๋ Deny
Principal : ์ฌ์ฉ์ ID, user, role ๋ฑ์ด ํฌํจ ๋๋ฉฐ, Allow ๋๋ Deny๊ฐ ์ ์ฉ๋ ๊ฐ์ฒด
Action : Policy๊ฐ ์ ์ฉ๋ ๋ช
๋ น์ด ์ ์ (list๋ก ํํ๋จ)
Resource : policy๊ฐ ์ ์ฉ๋ AWS ์์๋ค์ ๋ํ ์ ์ (EC2 ์๋ฒ, RDS, S3 bucket, ...)
Condition : policy๊ฐ ์ ์ฉ๋ ์กฐ๊ฑด์ ์ ์ (optional)
Resource-based Policy
Identity-based policy์ ๋ฌ๋ฆฌ resource-based policy๋ ์์ (resource)์ ํ ๋น๋จ
=> Identity : user, group, role ๋ฑ
Resource-based policy์ ํน์ฑ
- ํน์ ๋ฆฌ์์ค๋ฅผ ์ ๊ทผ ํ ์ ์๋ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ด๊ณ ์ด๋ค action์ ํ ์ ์๋์ง ์ ์
- ํน์ AWS ์๋น์ค์์๋ง ์ฌ์ฉ๊ฐ๋ฅ (S3)
IAM ์์ ์ ๊ทผ ์ ์ด
IAM Groups
IAM Group์ IAM users๋ค์ ์งํฉ์ฒด
IAM Group์ ํตํด์ ์ฌ๋ฌ user๋ค์๊ฒ ๊ฐ์ permission์ ๋ถ์ฌ ๊ฐ๋ฅ
=> Permission ๋ถ์ฌ๋ policy๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋จ
(ํด๋น ๊ทธ๋ฃน์ ๋ชจ๋ user๊ฐ policy ์ ์ฉ)
ํ๋์ User๋ ์ฌ๋ฌ group์ ์์ ๊ฐ๋ฅํ๊ณ Default Group์ ์์
(Nested group๋ ์ง์ํ์ง ์์ => group ์์ group์ X)
IAM Roles
IAM Role์ permission(policy)์ ๊ฐ์ง๋ IAM identity์
IAM user์ ์ ์ฌํ์
- Permission policy๋ฅผ attach ํ ์ ์์
IAM user์ ๋ค๋ฅธ์
- ํน์ ์ฌ์ฉ์ ๋๋ ํ๋ช
์ ์ฌ์ฉ์์ ์ฐ๊ณ ๋์ง ์์
- ์ฌ์ฉ์ ์์ฉ์๋น์ค ๋ฑ์ ๋ถ์ฐฉ ๊ฐ๋ฅ (Assume ์ด๋ผ๋ ๋ช
์นญ ์ฌ์ฉ)
- Role์ ํตํด์ ์์์ ์ธ ๊ถํ ๋ถ์ฌ ๊ฐ๋ฅ
=> ๊ฐ์ AWS Account ๋ด์ ๋ค๋ฅธ IAM user ๊ฐ์ role์ ์ฌ์ฉ
=> AWS Service๊ฐ role์ ์ ์๋ permission ์ฌ์ฉ
(User๋ ๋ฐ๋ก policy๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์๋๋ฐ ์๋น์ค๋ ๊ทธ๋ด ์ X => role์ ํ ๋น!)
=> ์๋ก ๋ค๋ฅธ AWS Account์ IAM user ๊ฐ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
IAM Role ์ ์ฌ์ฉํ ์์ฉ ์์
EC2 ์ธ์คํด์ค์์ ๋์์ค์ธ ์์ฉ ํ๋ก๊ทธ๋จ์ด S3 ๋ฒํท์ ์ ๊ทผํ ํ์๊ฐ ์์
1. S3 ๋ฒํท์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ policy๋ฅผ ์์ฑ
2. ํด๋น policy๋ฅผ role์ attach
3. EC2 ์ธ์คํด์ค๊ฐ ํด๋น role์ assume
์์๋ฅผ ๋ฐ๋ผ๊ฐ
AWS ์์ Root ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ
AWS์ ๋ฃจํธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ ๊ฐ๋ฅํจ
- ๋ฃจํธ ๊ณ์ : ์ต์ด ๊ฐ์
ํ ์ด๋ฉ์ผ ์ฃผ์์ ๋น๋ฐ๋ฒํธ
=> ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์
AWS ๋ฃจํธ ๊ณ์ ์ผ๋ก๋ง ์คํ ๊ฐ๋ฅ ํ action
- ๋ฃจํธ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
- AWS Support plan ๋ณ๊ฒฝ
- Account ์ค์ ๋ณ๊ฒฝ (contact info, ํ์ฉ region ๋ฑ)
AWS ์์ ์ฌ๋ฐ๋ฅธ ๊ณ์ ๊ด๋ฆฌ
๊ณ์ ์ ์ฒ์ ๋ง๋ ํ ํ์ํ ์ฒซ ๋จ๊ณ
- IAM ๊ณ์ ์ ๋ง๋ค์ด์ Administrator Access Policy๋ฅผ ํด๋น ๊ณ์ ์ ๋ถ์ฌํด์ค
=> ์ ์ฒด ์ ๊ทผ ๊ฐ๋ฅ (*) - Root ๊ณ์ ์ผ๋ก logout ํ IAM ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ
Multi-Factor Authentication (MFA ์ฌ์ฉ)
- ๋ฃจํธ ๊ณ์ ๊ณผ IAM User ๋ชจ๋ MFA ์ฌ์ฉ์ด ์ถ์ฒ๋จ
- ์ํํธ์จ์ด ๊ธฐ๋ฐ MFA ํ ํฐ ๋ฐ์ (Google Authenticator - virtual) , ํ๋์จ์ด ๊ธฐ๋ฐ MFA ๊ธฐ๊ธฐ ์ฌ์ฉ ๊ฐ๋ฅ
Azure์์์ ๋ณด์ - ADD, IAM
Azure Active Directory (Entra ID)
=> ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ์ ID ๋ฐ ์์ธ์ค ๊ด๋ฆฌ ์๋น์ค
(Azure AD๋ ์ฌ์ฉ์, ํด๋ผ์ฐ๋ ๋ฆฌ์์ค์ ๋ํ ID๋ฅผ ์ธ์ฆํ๊ณ ๊ถํ์ ๋ถ์ฌํ๋๋ฐ ์ฌ์ฉ)
Azure Resource Groups IAM
=> Azure Resource Manager (ARM)์ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ๋ํ ์์ธ์ค ๊ถํ์ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉ
(IAM์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์, ๊ทธ๋ฃน ๋๋ ์๋น์ค ์ฃผ์ฒด์ ๋ํ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ๋ํ ์์ธ์ค ๊ถํ์ ๋ถ์ฌ)
Azure Active Directory (AD)
Azure Active Directory (AD) ๋ AWS IAM User, Group์ ๋์
=> ์ฌ์ฉ์ ์์ฑ, ์ฌ์ฉ์ ๊ถํ ์์ฑ
(๊ธฐ๋ณธ ๋ชจ๋ธ์ ๋ฌด๋ฃ์ด๋ ๊ณผ๊ธ ๋ชจ๋ธ๋ ์์)
Azure Active Directory Group
๋์ผํ ์์ธ์ค ๋ฐ ๊ถํ์ด ํ์ํ ์ฌ์ฉ์๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉ
=> AD IAM Group์ ํตํด์ ๊ฐ์ ์ญํ ์ ํ๋ user์๊ฒ ๊ฐ์ permission์ ๋ถ์ฌ๊ฐ๋ฅ
(Permission ๋ถ์ฌ๋ Policy๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋จ)
Azure Resource Groups IAM
Azure Resource Groups IAM ์ AWS IAM Role์ ๋์
=> Resource Group ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด ์๋น์ค
(๊ฐ์ ๋ฆฌ์์ค ๊ทธ๋ฃน ๋ด ์ด๋ค ์์์ด ๋ค๋ฅธ ์๋น์ค์ ์ ๊ทผํ ์ ์๋๊ฐ / ์์๋ค์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ ์๋๊ฐ)
๊ณผ๊ธ์ ๋ฐ๋ก ์์
Google Cloud IAM ์๋ ๋ฐฉ์
Google Cloud Identity and Access Management (IAM)์ AWS IAM์ ๋์
IAM์ Permission์ ์ฌ์ฉ์์๊ฒ ์ง์ ๋ถ์ฌํ์ง ์๊ณ ๊ถํ์ด ์ญํ ๋ก ๊ทธ๋ฃนํ, ์ญํ ์ ์ธ์ฆ๋ Principals(๊ตฌ์ฑ์)์๊ฒ ๋ถ์ฌ๋๋ค!
๊ณผ๊ธ์ ๋ฐ๋ก ์์
AWS Organization
AWS ๊ณ์ ์ ์ฌ๋ฌ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด์ ๊ด๋ฆฌํ๊ฒํด์ค
ํ๋์ Root ๊ณ์ , ๋ค์์ AWS Account๋ค, ๊ทธ๋ฃน์ ํํํ๋ Organization Unit (OU)๋ก ๊ตฌ์ฑ
(์ผ์ข
์ด Group ๊ฐ๋
)
Root ๊ณ์ ์์ ํตํฉ billing์ ์ง์ํด์ค
=> ํฐ ๊ธฐ์ ์์๋ ๊ฐ ๋ถ์๋ง๋ค ๋ค๋ฅธ AWS ๊ณ์ ์ ์ฌ์ฉํ ์ ์๋๋ฐ ์ด๋ฐ ๊ณ์ ๋ค์ ํ ์กฐ์ง(Organization)์ผ๋ก ๋ฌถ๊ณ , ๋ง์คํฐ ๊ณ์ ์ ํตํด ์ ์ฒด ๊ณ์ ์ ํต์ ํ ์ ์์
IAM ๊ณ์ ๊ฐ์๋ ์์๊ณต์ ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, Organization ๋ด ๋ค๋ฅธ ๊ณ์ ๊ฐ์๋ ๋ช ์์ ๊ณต์ ๊ฐ ํ์ํจ!
=> OU ๋จ์์ Policy๋ฅผ attachํ์ฌ ๊ฐ ๊ณ์ ์์ ์ ๊ทผ ํ ์ ์๋ ๊ถํ ๋ช ์ ๊ฐ๋ฅ
์ฌ์ฉ์๊ฐ์ ์ผ๋ง๋ ๋ ๋ฆฝ์ ์ด์ฌ์ผํ๋๊ฐ๋ฅผ ์๊ฐํด์ผํจ
=> IAM user์ ๊ฒฝ์ฐ ์ ๊ทผ์ ๋ชปํ๋๋ผ๋ ๋ด์ฉ์ ๋ณผ ์๋ ์์ง๋ง Organization์ ์์ ๋ ๋ฆฝ!
Azure Management Groups
Azure Management Groups๋ AWS์ Organization์ ๋์๋จ
Tenant ๋ผ๋ AWS์์์ Root๊ฐ ์๊ณ ํ์ ๊ณ์ธต์ธ Subscription์ ๊ทธ๋ฃนํํ์ฌ ๊ฐ์ ์ญํ ์ ๋ํ ์์ธ์ค ์ ์ฑ ๋ฑ์ ๊ด๋ฆฌํจ!
๊ฐ๊ฐ
Management Groups <-> AWS OU
Subscriptions <-> AWS User
Resource Groups : ๋ฆฌ์์ค๋ฅผ ํ๋์ ๊ทธ๋ฃน์ผ๋ก ๊ด๋ฆฌํ๊ธฐ์ํ ๋
ผ๋ฆฌ์ ๋ฌถ์
(๋ฆฌ์์ค๋ ํ๋์ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ์ํด์์)
Resources : ๊ฐ์๋จธ์ , ์คํ ๋ฆฌ์ง ๋ฑ Azure ์๋น์ค
๋ก ๊ตฌ์ฑ๋จ
Google Cloud Organization
Google Cloud์ AWS Organization์ ๋์๋๋ ๊ฐ๋ ์
๊ฐ๊ฐ
Organization <-> AWS Root
Folders <-> AWS OU
Projects : ๋ฆฌ์์ค ๋ถ๋ฆฌ๋ฅผ ์ํ ๊ณ์ธต
Resources : ๊ฐ์๋จธ์ , ์คํ ๋ฆฌ์ง, App Engine ๋ฑ GCP ์๋น์ค
'๐ Infra > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Cloud High Availability (1) | 2024.10.17 |
---|---|
Cloud Network (3) | 2024.10.16 |
Distributed System (5) | 2024.10.06 |
AWS EC2 ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํ์ ํด๊ฒฐ (Swap Memory) (1) | 2024.09.12 |
Docker๋ก EC2์ MySQL ๋์ฐ๊ธฐ (6) | 2024.09.03 |