โ˜๏ธ๐Ÿ—๏ธ AWS์—์„œ ์ธํ”„๋ผ ํ™˜๊ฒฝ ๊ตฌ์„ฑํ•˜๊ธฐ

๊ณ ๋ฐ์ดยท2025๋…„ 7์›” 16์ผ

aws

๋ชฉ๋ก ๋ณด๊ธฐ
3/5

1๏ธโƒฃ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์„ฑ๋„

architecture


2๏ธโƒฃ ์ž‘์—… ์ˆœ์„œ

[STEP 1] vpc ์ƒ์„ฑ

ec2๋Š” ์ƒ์„ฑํ•œ ํ›„ vpc ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ vpc ๋จผ์ € ๋งŒ๋“ค๊ธฐ

[STEP 2] ์„œ๋ธŒ๋„ท ์ƒ์„ฑ

์•ˆ์ •์„ฑ์„ ์œ„ํ•ด 2๊ฐœ ์ด์ƒ์˜ AZ์— ๋‚˜๋ˆ ์„œ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
์ตœ์†Œ ๊ตฌ์„ฑ์€ ํ•œ AZ์— public, private ํ•˜๋‚˜์”ฉ

[STEP 3] ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์ƒ์„ฑ

๋งŒ๋“ค๊ณ  target vpc์— ์—ฐ๊ฒฐ

[STEP 4] ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์ƒ์„ฑ

ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉด ๋˜์ง€๋งŒ ์šฐ์„  public, private์œผ๋กœ ๋‚˜๋ˆ ์„œ ๊ตฌ์„ฑํ•จ

public subnet ์—ฐ๊ฒฐ
public route table์€ igw์—์„œ ๋ผ์šฐํŒ… ๋˜๋„๋ก ์„ค์ •

public subnet์— public route table ์—ฐ๊ฒฐ

[STEP 5] ๋ณด์•ˆ ๊ทธ๋ฃน ์ƒ์„ฑ

inbound/outbound๋ฅผ white list ๋ฐฉ์‹์œผ๋กœ ์„ค์ •

[STEP 6] EC2 ์ƒ์„ฑ

๋„คํŠธ์›Œํฌ ์„ค์ •์—์„œ vpc, subnet, security group ๋“ฑ ์ง€์ •
public์œผ๋กœ ์‚ฌ์šฉํ•  EC2์—์„œ๋Š” ํผ๋ธ”๋ฆญ IP ์ž๋™ ํ• ๋‹น ํ™œ์„ฑํ™”

private ec2์— web server ์„ค์น˜

โ‘  NAT Gateway๋ฅผ ํ†ตํ•œ ๋ฐฉ๋ฒ•(์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ O)(๊ถŒ์žฅ)
๋น„์šฉ์ด ๋“œ๋ฏ€๋กœ ์„ค์น˜ํ•˜๊ณ  ๋ฐ”๋กœ ์‚ญ์ œํ•ด๋„ ๋จ

โ‘ก ์„ค์น˜ํŒŒ์ผ ๋ณต์‚ฌ(์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ X)
1. bastion host๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ public ec2์—์„œ ์˜์กด์„ฑ์žˆ๋Š” ํŒจํ‚ค์ง€๊นŒ์ง€ ์ „๋ถ€ ๋‹ค์šด๋กœ๋“œ
1) sudo dnf download --resolve --alldeps <package name>
2) sudo dnf install <package name> --downloadonly --downloaddir=<download path> --setopt=keepcache=1

2. ํŒจํ‚ค์ง€๋ฅผ private ec2์œผ๋กœ ๋ณต์‚ฌ
scp -i <key file name> <rpm files> ec2-user@<private ec2 ip addr>:<dest path>

3. ์„ค์น˜ํ•˜๊ธฐ
1) ์บ์‹œ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉ
sudo dnf localinstall *.rpm -C
2) ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ์™„์ „ ์ฐจ๋‹จ
sudo dnf localinstall *.rpm --disablerepo="*"
3) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐฑ์‹  ์—†์ด ๋กœ์ปฌ RPM๋งŒ ์„ค์น˜
sudo dnf localinstall *.rpm --nogpgcheck --assumeyes
4) ์˜์กด์„ฑ ๋ฌด์‹œํ•˜๊ณ  ์„ค์น˜
sudo rpm -ivh *.rpm --nodeps --force

[STEP 7] ๋Œ€์ƒ ๊ทธ๋ฃน ์ƒ์„ฑ

ํ•˜๋‚˜์˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์—์„œ ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„๋ฐฐ๋  ๋Œ€์ƒ EC2๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์ฃผ๊ธฐ

[STEP 8] ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์ƒ์„ฑ

application load balancer -> HTTP(S) ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ

  • ์ฒด๊ณ„
    - ์ธํ„ฐ๋„ท ๊ฒฝ๊ณ„
    ์ธํ„ฐ๋„ท์—์„œ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•จ
    - ๋‚ด๋ถ€
    ๋‚ด๋ถ€์—์„œ ์ „๋‹ฌ๋œ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•จ

[STEP 9] Route53 ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ (๋„๋ฉ”์ธ ์—ฐ๊ฒฐ)

๋ ˆ์ฝ”๋“œ ์ƒ์„ฑํ•ด์„œ ๋ณ„์นญ ์ฒดํฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๋Œ€์ƒ์— ์ธํ„ฐ๋„ท ๊ฒฝ๊ณ„์šฉ LB ์—ฐ๊ฒฐ

[STEP 10] Subnet Group ์ƒ์„ฑ

[STEP 11] RDS ์ƒ์„ฑ

private subnet์— ์ƒ์„ฑํ•˜๊ธฐ

์ ‘์†ํ•  ๋•Œ๋Š” ssh ํ„ฐ๋„๋ง์œผ๋กœ public ec2๋ฅผ ํ†ตํ•ด ์ ‘์†
bastion host์—์„œ port forwarding์„ ํ†ตํ•ด private subnet์— ์žˆ๋Š” DB์— ์ ‘์†
ssh -i <key file path> -L 3306:<db endpoint>:3306 ec2-user@<bastion host ip>


3๏ธโƒฃ ๋ช…๋ช… ๊ทœ์น™

์šฉ๋„์— ๋”ฐ๋ฅธ ์ ‘๋‘์‚ฌ

๊ตฌ๋ถ„์ ‘๋‘์‚ฌ
๊ฐœ๋ฐœdev-
ํ…Œ์ŠคํŠธuat-
์šด์˜prod-

key ๋ช…๋ช… ๊ทœ์น™

[์ธ์Šคํ„ด์Šค ์ด๋ฆ„] + -key

  • key file ๋ณด๊ด€ ํด๋”๋ช…
    .ssh(์ˆจ๊น€ํด๋”)
    ๋ฆฌ๋ˆ…์Šค์—๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ๋˜์–ด ์žˆ์Œ
    ์œˆ๋„์šฐ๋Š” ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•จ

  • ์„œ๋ฒ„ ์ ‘์†
    ssh -i <key file path> ec2-user@<public IPv4 addr>
    ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ์Œ๋”ฐ์˜ดํ‘œ(") ์•ˆ์— ๋„ฃ๊ณ  ์ƒ๋Œ€๊ฒฝ๋กœ๋Š” ๋”ฐ์˜ดํ‘œ ์—†์ด ์ž…๋ ฅ

  • ์„œ๋ฒ„๋กœ ํŒŒ์ผ ๋ณต์‚ฌ
    scp -i โ€ช<key file path> <file to be copied> ec2-user@<public IPv4 addr>:/<dest path>

  • ์„œ๋ฒ„๋กœ ํ‚ค ํŒŒ์ผ ๋ณต์‚ฌํ•œ ํ›„ ๊ถŒํ•œ ๋ณ€๊ฒฝ
    chmod 400 <key file name>

  • ๋ณด์•ˆ๊ทธ๋ฃน ์„ค์ • ์ž˜ ์ ์šฉ๋๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ๋ฉด
    netstat -an | grep :22


4๏ธโƒฃ ์„œ๋กœ ๋‹ค๋ฅธ VPC๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ

1. VPC Peering

์„œ๋ธŒ๋„ท๊ณผ ์„œ๋ธŒ๋„ท ์—ฐ๊ฒฐ
๊ฐ ์„œ๋ธŒ๋„ท์— ์—ฐ๊ฒฐ๋œ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ํŽธ์ง‘ํ•ด์•ผ ํ•จ
์—ฐ๊ฒฐ๋œ ์„œ๋ธŒ๋„ท์ด ์†ํ•œ VPC IPv4 CIDR ๋ธ”๋ก ์ถ”๊ฐ€
๋Œ€์ƒ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ(์ฝค๋ณด๋ฐ•์Šค์—์„œ ๋งŒ๋“ค์–ด๋†“์€ ํ”ผ์–ด๋ง ์„ ํƒ)

2. Transit Gateway

๋„คํŠธ์›Œํฌ ์ค‘์•™ ํ—ˆ๋ธŒ ์„œ๋น„์Šค

  1. ์ด๋ฆ„์€ ์—ฐ๊ฒฐ๋œ vpc ์ด๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ง€์–ด์ฃผ๊ธฐ
  2. ์ƒ์„ฑ ํ›„ transit gateway์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ํŽธ์ง‘
    1) transit gateway์™€ transit gateway ์—ฐ๊ฒฐ(์–‘๋ฐฉํ–ฅ)
    ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๋‹ค๋ฅธ vpc ๋“ฑ๋กํ•˜๊ณ  ๋‚ด๊ฐ€ ๋งŒ๋“  transit gateway ์—ฐ๊ฒฐ
    2) transit gateway attachment ์ƒ์„ฑ(๋‹จ๋ฐฉํ–ฅ)
    transit gateway์™€ vpc ์—ฐ๊ฒฐ

3. Peering vs. Transit Gateway

VPC Peering ๋ฐฉ์‹์—์„œ๋Š” n๊ฐœ์˜ VPC๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด n(n-1)/2๊ฐœ์˜ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค์–ด์•ผ ํ•จ.
Transit Gateway๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  VPC๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” Transit Gateway๋ฅผ ๋ช‡ ๊ฐœ๋ฅผ ํ—ˆ๋ธŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๋ง ๋ณต์žก๋„ ์™„ํ™”


5๏ธโƒฃ Monitoring

  1. Log Group ์ƒ์„ฑ
  2. ์„œ๋ธŒ๋„ท > ํ”Œ๋กœ์šฐ ๊ทธ๋ฃน ์ƒ์„ฑ

6๏ธโƒฃ Network Manager

๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ > Reachability Analyzer ์—์„œ
๋ฆฌ์†Œ์Šค ํฌ์ธํŠธ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
๊ฒฝ๋กœ ์†Œ์Šค(์ถœ๋ฐœ์ง€) - ๊ฒฝ๋กœ ๋Œ€์ƒ(๋„์ฐฉ์ง€)์— ์›ํ•˜๋Š” ์ธ์Šคํ„ด์Šค, GW, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ์ž…๋ ฅํ•˜์—ฌ ๊ฒฝ๋กœ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์–ด๋””์„œ ์—ฐ๊ฒฐ์ด ๋ง‰ํžˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ


7๏ธโƒฃ ๋ฆฌ์†Œ์Šค ์‚ญ์ œํ•˜๋Š” ์ˆœ์„œ

์˜์กด์„ฑ๋•Œ๋ฌธ์— ๋จผ์ € ์ง€์šธ ์ˆ˜ ์—†๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์–ด์„œ ์ˆœ์„œ๋ฅผ ์ง€์ผœ์ฃผ๋Š” ๊ฒŒ ์ข‹์Œ
RDS(+์„œ๋ธŒ๋„ท ๊ทธ๋ฃน), S3, ECS(+ECR), EC2, Cognito, CloudFront

VPC ์—”๋“œํฌ์ธํŠธ โ†’
๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ, ๋Œ€์ƒ ๊ทธ๋ฃน โ†’
Auto Scaling ๊ทธ๋ฃน โ†’
Security Group โ†’
ํƒ„๋ ฅ์  IP โ†’
route table โ†’
Internet GW โ†’
transit GW โ†’
Subnet โ†’
VPC

profile
๋‹ค์น˜์ง€ ์•Š๊ฒŒ ๋‹ค์น˜ ๋‹ค์น˜์ง€ ์•Š๊ฒŒ

0๊ฐœ์˜ ๋Œ“๊ธ€