Study/Java

[TIL] 운영 μ „λž΅ (1)

hong- 2022. 8. 9. 10:46

🀘🏻 Proxy Server : ν”„λ‘μ‹œ μ„œλ²„

  - ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ™€ μ†Œν†΅ν•  λ•Œ μ„œλ²„μ— λ°”λ‘œ μ ‘κ·Όν•˜μ§€ μ•Šκ³  μžμ‹ μ„ 톡해 μ„œλ²„μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” λŒ€λ¦¬ μ„œλ²„

  - 일반 μ‚¬μš©μžλŠ” 지역이 μ œν•œλ˜μ–΄ μžˆλŠ” μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜κΈ° μœ„ν•΄ μš°νšŒν•˜κ±°λ‚˜ μΊμ‹œλ₯Ό 톡해 더 λΉ λ₯Έ μ΄μš©μ„ μœ„ν•΄ ν”„λ‘μ‹œ μ„œλ²„λ₯Ό μ‚¬μš©


πŸ“ν”„λ‘μ‹œ μ„œλ²„ μ’…λ₯˜

  β‘  Forward Proxy

  - ν”„λ‘μ‹œ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ— κ°€κΉŒμ΄ μžˆλŠ” 경우

  - ν΄λΌμ΄μ–ΈνŠΈ κ°€κΉŒμ΄μ— μœ„μΉ˜ν•œ ν”„λ‘μ‹œ μ„œλ²„λ‘œ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λŒ€μ‹ ν•˜μ—¬ μ„œλ²„μ— μš”μ²­ 전달

  - 주둜 캐싱을 μ œκ³΅ν•˜λŠ” κ²½μš°κ°€ λ§Žμ•„ μ‚¬μš©μžκ°€ λΉ λ₯Έ μ„œλΉ„μŠ€ 이용 κ°€λŠ₯ν•˜λ„λ‘ λ„μ™€μ€Œ


   πŸ“ Forward Proxy μž₯점

     β–Έ 캐싱을 ν†΅ν•œ λΉ λ₯Έ μ„œλΉ„μŠ€ 이용 κ°€λŠ₯

     - ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„κ°€ μ•„λ‹Œ ν”„λ‘μ‹œ μ„œλ²„μ™€ μ†Œν†΅

     - μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈκ°€ λ™μΌν•œ μš”μ²­μ„ λ³΄λ‚΄λŠ” 경우,

         μ²« 응닡을 ν•˜κ³  κ²°κ³Ό 데이터λ₯Ό μΊμ‹œμ— μ €μž₯ 해놓고 이후 μ„œλ²„μ— μž¬μš”μ²­μ„ 보내지 μ•Šμ•„λ„ λΉ λ₯΄κ²Œ 응닡 전달 κ°€λŠ₯

     β–Έ λ³΄μ•ˆ

     - ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ ν”„λ‘μ‹œ μ„œλ²„λ₯Ό 거친 ν›„ μ„œλ²„μ— μš”μ²­μ΄ λ„μ°©ν•˜κΈ° λ•Œλ¬Έμ— μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ˜ IP 좔적이 ν•„μš”ν•œ 경우

        ν΄λΌμ΄μ–ΈνŠΈμ˜ IPκ°€ μ•„λ‹Œ μ„œλ²„μ˜ IPκ°€ 전달됨

         → 즉, μ„œλ²„μ—κ²Œ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 숨길 수 있음


  β‘‘ Reverse Proxy

  - ν”„λ‘μ‹œ μ„œλ²„κ°€ μ„œλ²„μ— κ°€κΉŒμ΄ μžˆλŠ” 경우

  - μ„œλ²„μ— κ°€κΉŒμ΄ μœ„μΉ˜ν•œ ν”„λ‘μ‹œ μ„œλ²„λ‘œ μ„œλ²„λ₯Ό λŒ€μ‹ ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈμ— 응닡 제곡

  - λΆ„μ‚° 처리λ₯Ό λͺ©μ μœΌλ‘œ ν•˜κ±°λ‚˜ λ³΄μ•ˆμ„ μœ„ν•΄ ν”„λ‘μ‹œ μ„œλ²„λ₯Ό 이용


   πŸ“ Reverse Proxy μž₯점

     β–Έ λΆ„μ‚° 처리

     - ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ κ΅¬μ‘°μ—μ„œ μ‚¬μš©μžκ°€ λ§Žμ•„μ Έ μ„œλ²„μ— κ³ΌλΆ€ν•˜κ°€ 올 경우 λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•  수 있음

     - ν”„λ‘μ‹œ μ„œλ²„λ‘œ μš”μ²­μ΄ λ“€μ–΄μ˜€λ©΄ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„λ‘œ μš”μ²­μ„ λ‚˜λˆ„μ–΄ μ „λ‹¬ν•˜μ—¬ 처리

     β–Έ λ³΄μ•ˆ

     - ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ„œλ²„λ₯Ό 숨길 수 있음

     - ν΄λΌμ΄μ–ΈνŠΈ μž…μž₯μ—μ„œμ˜ μš”μ²­ λ³΄λ‚΄λŠ” μ„œλ²„κ°€ ν”„λ‘μ‹œ μ„œλ²„κ°€ λ˜λ―€λ‘œ μ‹€μ œ μ„œλ²„μ˜ IP μ£Όμ†Œκ°€ λ…ΈμΆœλ˜μ§€ μ•ŠμŒ


πŸ™ŒπŸ» Load Balancer : λ‘œλ“œλ°ΈλŸ°μ„œ

  - μ„œλ²„μ˜ κ³ΌλΆ€ν•˜λ‘œ 인해 μ›ν™œν•œ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜μ§€ λͺ»ν•˜λŠ” 경우 ν•΄κ²°ν•˜κΈ° μœ„ν•œ 방법

   β‘  Scale Up : μ„œλ²„μ˜ ν•˜λ“œμ›¨μ–΄ μ—…κ·Έλ ˆμ΄λ“œ

  - 물리적으둜 μ„œλ²„μ˜ 사양을 λ†’μ΄λŠ” ν•˜λ“œμ›¨μ–΄μ  방법

  - μ„œλ²„μ˜ 수λ₯Ό λŠ˜λ¦¬μ§€ μ•Šκ³  ν”„λ‘œκ·Έλž¨ κ΅¬ν˜„μ— μžˆμ–΄ λ³€ν™”κ°€ ν•„μš” μ—†μŒ

  - μ„œλ²„μ˜ 사양을 λ†’μ΄λŠ”λ° ꡉμž₯히 높은 λΉ„μš©μ΄ λ“€κ³  ν•˜λ“œμ›¨μ–΄μ˜ μ—…κ·Έλ ˆμ΄λ“œμ— ν•œκ³„κ°€ 있음

  - 사양을 늘린만큼 ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ΄ λ§Žμ•„μ§€λ©΄ μ„œλ²„μ— λ°œμƒν•˜λŠ” λΆ€ν•˜λŠ” μ—¬μ „νžˆ ν•΄κ²°ν•˜μ§€ λͺ»ν•œ 상황이 됨


   β‘‘ Scale Out : μ„œλ²„μ˜ 갯수λ₯Ό λŠ˜λ¦¬λŠ” 방법

  - μ„œλ²„μ˜ 갯수λ₯Ό 늘렀 ν•˜λ‚˜μ˜ μ„œλ²„μ— 쀄 λΆ€ν•˜λ₯Ό λΆ„μ‚°μ‹œν‚€λŠ” 방법

  - λ§Žμ€ μš”μ²­μ΄ μ˜€λ”λΌλ„ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„κ°€ λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μ„œλ²„μ˜ 사양을 높이지 μ•Šκ³ λ„ 비ꡐ적 μ €λ ΄ν•œ λ°©λ²•μœΌλ‘œ λΆ€ν•˜ 처리


  πŸ’‘ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„λ‘œ λΆ€ν•˜λ₯Ό μ²˜λ¦¬ν•˜λŠ” 경우, ν΄λΌμ΄μ–ΈνŠΈλ‘œ μš”μ²­μ„ μ–΄λŠ μ„œλ²„λ‘œ λ³΄λ‚΄μ„œ μ²˜λ¦¬ν•΄μ•Ό ν• κΉŒ?

    : λ‘œλ“œ λ°ΈλŸ°μ„œ

     - μš”μ²­μ„ μ—¬λŸ¬ μ„œλ²„μ— λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ꡐ톡정리 ν•΄μ€Œ

     - μ—¬λŸ¬ μ„œλ²„μ— ꡐ톡 정리λ₯Ό ν•΄μ£ΌλŠ” 기술 ν˜Ήμ€ ν”„λ‘œκ·Έλž¨μ„ λ‘œλ“œ λ°ΈλŸ°μ‹±μ΄λΌκ³  함


πŸ“λ‘œλ“œ λ°ΈλŸ°μ„œ μ’…λ₯˜

  : ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ–΄λ–€ 것을 κΈ°μ€€μœΌλ‘œ λΆ„μ‚°μ‹œν‚€λƒμ— 따라 λ„€ κ°€μ§€ μ’…λ₯˜λ‘œ λ‚˜λ‰¨

   β‘  L2 : 데이터 전솑 κ³„μΈ΅μ—μ„œ Mac μ£Όμ†Œλ₯Ό λ°”νƒ•μœΌλ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±

   β‘‘ L3 : λ„€νŠΈμ›Œν¬ κ³„μΈ΅μ—μ„œ IP μ£Όμ†Œλ₯Ό λ°”νƒ•μœΌλ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±

   β‘’ L4 :전솑 κ³„μΈ΅μ—μ„œ IP μ£Όμ†Œμ™€ Port λ₯Ό λ°”νƒ•μœΌλ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±

   β‘£ L7 : μ‘μš© κ³„μΈ΅μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°”νƒ•μœΌλ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±


πŸ‘πŸ» Auto Scaling : μ˜€ν†  μŠ€μΌ€μΌλ§

  - Scale-Out λ°©μ‹μœΌλ‘œ μ„œλ²„λ₯Ό 증섀할 λ•Œ μžλ™μœΌλ‘œ μ„œλ²„(λ¦¬μ†ŒμŠ€)λ₯Ό κ΄€λ¦¬ν•΄μ£ΌλŠ” κΈ°λŠ₯

  - ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ΄ λ§Žμ•„μ Έ μ„œλ²„μ˜ 처리 μš”κ΅¬λŸ‰μ΄ μ¦κ°€ν•˜λ©΄ μƒˆ λ¦¬μ†ŒμŠ€λ₯Ό μžλ™μœΌλ‘œ μΆ”κ°€

    + λ°˜λŒ€λ‘œ 처리 μš”κ΅¬λŸ‰μ΄ 쀄어듀면 λ¦¬μ†ŒμŠ€λ₯Ό κ°μ†Œμ‹œμΌœ μ μ ˆν•œ λΆ„μ‚° ν™˜κ²½μ„ λ§Œλ“€μ–΄μ€Œ

  πŸ“ Auto Scaling μž₯점

    β–Έ 동적 μŠ€μΌ€μΌλ§

     - μ‚¬μš©μžμ˜ μš”κ΅¬ μˆ˜μ€€μ— 따라 λ¦¬μ†ŒμŠ€λ₯Ό λ™μ μœΌλ‘œ μŠ€μΌ€μΌλ§ ν•  수 있음

     - μŠ€μΌ€μΌμ—… ν•  수 μžˆλŠ” μ„œλ²„μ˜ μˆ˜λŠ” μ œν•œμ΄ μ—†μŒ

       → ν•„μš”ν•œ 경우 μ„œλ²„ 두 λŒ€μ—μ„œ 수백~수만 λŒ€μ˜ μ„œλ²„λ‘œ μ¦‰μ‹œ μŠ€μΌ€μΌ μ—… ν•  수 있음

    β–Έ λ‘œλ“œ λ°ΈλŸ°μ‹±

     - λ¦¬μ†ŒμŠ€λ₯Ό λ™μ μœΌλ‘œ μŠ€μΌ€μΌμ—… ν˜Ήμ€ μŠ€μΌ€μΌλ‹€μš΄ν•¨

     - λ‘œλ“œ λ°ΈλŸ°μ„œμ™€ ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ λ‹€μˆ˜μ˜ EC2 μΈμŠ€ν„΄μŠ€μ—κ²Œ μ›Œν¬ λ‘œλ“œλ₯Ό 효과적으둜 λΆ„λ°°ν•  수 μžˆμ–΄ μ‚¬μš©μžκ°€ μ •μ˜ν•œ

        κ·œμΉ™μ— 따라 μ›Œν¬λ‘œλ“œλ₯Ό 효과적으둜 관리 κ°€λŠ₯

    β–Έ νƒ€κ²Ÿ νŠΈλž˜ν‚Ή

     - μ‚¬μš©μžλŠ” νŠΉμ • νƒ€κ²Ÿμ— λŒ€ν•΄μ„œλ§Œ Auto Scaling ν•  수 있으며 μ‚¬μš©μžκ°€ μ„€μ •ν•œ νƒ€κ²Ÿμ— 맞좰 EC2 μΈμŠ€ν„΄μŠ€ 수 μ‘°μ •

    β–Έ ν—¬μŠ€ 체크와 μ„œλ²„ ν”Œλ¦Ώ 관리

     - Auto Scaling을 μ΄μš©ν•˜λ©΄ EC2 μΈμŠ€ν„΄μŠ€μ˜ ν—¬μŠ€ 체크 μƒνƒœλ₯Ό λͺ¨λ‹ˆν„°λ§ ν•  수 있음

     - ν—¬μŠ€ 체크 κ³Όμ •μ—μ„œ λ¬Έμ œκ°€ κ°μ§€λ˜λ©΄ μžλ™μœΌλ‘œ λ‹€λ₯Έ μΈμŠ€ν„΄μŠ€λ‘œ ꡐ체


   πŸ’‘ μ„œλ²„ ν”Œλ¦Ώ : Server Fleet

    - λ‹€μˆ˜μ˜ EC2 μ„œλ²„μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν˜ΈμŠ€νŒ…ν•˜λŠ” 경우 이듀 일련의 EC2 μ„œλ²„ μ§‘ν•©

    - Auto Sacling은 μ μ •μˆ˜μ€€μ˜ μ„œλ²„ ν”Œλ¦Ώ μš©λŸ‰μ„ μœ μ§€ν•˜λŠ”λ° 도움을 쀌


 β–ͺ️   EC2 Auto Scaling ν™œμš©

    - 였직 EC2 μ„œλ²„λΌλŠ” λ¦¬μ†ŒμŠ€λ§Œμ„ λŒ€μƒμœΌλ‘œ 함

   πŸ“ μ‹œμž‘ ν…œν”Œλ¦Ώ : Launch Configuration

     - Auto Scaling으둜 μΈμŠ€ν„΄μŠ€λ₯Ό ν™•μž₯ λ˜λŠ” μΆ•μ†Œν•˜λ €λ©΄ μ–΄λ–€ μ„œλ²„λ₯Ό μ‚¬μš©ν• μ§€ κ²°μ •ν•΄μ•Ό 함

       → μ΄λŠ” μ‹œμž‘ ν…œν”Œλ¦Ώμ„ 톡해 κ°€λŠ₯

       → AMI 상세 정보, μΈμŠ€ν„΄μŠ€ νƒ€μž…, ν‚€ νŽ˜μ–΄, μ‹œνλ¦¬ν‹° κ·Έλ£Ή λ“± μΈμŠ€ν„΄μŠ€μ— λŒ€ν•œ λͺ¨λ“  정보λ₯Ό λ‹΄κ³  있음

     - λ§Œμ•½ μ‹œμž‘ ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜μ§€ μ•Šκ³  μƒμ„±ν•˜μ§€ μ•ŠμœΌλ©΄ μ‹œμž‘ ꡬ성을 생성할 수 있음

    πŸ’‘ μ‹œμž‘ ꡬ성

       - EC2 Auto Scaling이 μ‚¬μš©μžλ₯Ό μœ„ν•΄ μƒμ„±ν•˜λŠ” EC2 μΈμŠ€ν„΄μŠ€ μœ ν˜•μ„ μ§€μ •ν•œλ‹€λŠ” μ μ—μ„œ μ‹œμž‘ ν…œν”Œλ¦Ώκ³Ό λΉ„μŠ·

       - μ‚¬μš©ν•  AMI의 ID, μΈμŠ€ν„΄μŠ€ μœ ν˜•, ν‚€ νŽ˜μ–΄, λ³΄μ•ˆ κ·Έλ£Ή λ“±μ˜ 정보λ₯Ό ν¬ν•¨μ‹œμΌœ μ‹œμž‘ ꡬ성 생성


   πŸ“ Auto Scaling κ·Έλ£Ή 생성

    - Auto Scaling 그룹은 μŠ€μΌ€μΌμ—… 및 μŠ€μΌ€μΌλ‹€μš΄ κ·œμΉ™μ˜ λͺ¨μŒ

    - μΈμŠ€ν„΄μŠ€ μ‹œμž‘λΆ€ν„° μ‚­μ œκΉŒμ§€ λͺ¨λ“  λ™μž‘μ— λŒ€ν•œ κ·œμΉ™κ³Όμ •μ±…μ„ λ‹΄κ³  있음


   πŸ“ Scaling μœ ν˜•

    β‘  μΈμŠ€ν„΄μŠ€ 레벨 μœ μ§€

      - κΈ°λ³Έ μŠ€μΌ€μΌλ§ κ³„νšμ΄λΌκ³ λ„ 함

      - 항상 μ‹€ν–‰ μƒνƒœλ₯Ό μœ μ§€ν•˜κ³ μž ν•˜λŠ” μΈμŠ€ν„΄μŠ€μ˜ 수λ₯Ό μ§€μ •ν•  수 있음

      - μΌμ •ν•œ 수의 μΈμŠ€ν„΄μŠ€κ°€ ν•„μš”ν•œ 경우 μ΅œμ†Œ, μ΅œλŒ€ 및 μ›ν•˜λŠ” μš©λŸ‰μ— λ™μΌν•œ 값을 μ„€μ • κ°€λŠ₯

    β‘‘ μˆ˜λ™ μŠ€μΌ€μΌλ§

      - κΈ°μ‘΄ Auto Scaling 그룹의 크기λ₯Ό μˆ˜λ™μœΌλ‘œ λ³€κ²½ν•  수 있음

      - μ‚¬μš©μžκ°€ 직접 μ½˜μ†”, API, CLI 등을 μ΄μš©ν•΄ μˆ˜λ™μœΌλ‘œ μΈμŠ€ν„΄μŠ€λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•΄μ•Ό 함

    β‘’ 일정별 μŠ€μΌ€μΌλ§

      - 예츑 μŠ€μΌ€μΌλ§ νŠΈλž˜ν”½μ˜ λ³€ν™”λ₯Ό 예츑 κ°€λŠ₯

      - νŠΉμ • μ‹œκ°„λŒ€μ— μ–΄λŠ μ •λ„μ˜ νŠΈλž˜ν”½μ΄ μ¦κ°€ν•˜λŠ”μ§€ νŒ¨ν„΄μ„ νŒŒμ•…ν•˜κ³  μžˆλ‹€λ©΄ 일정별 μŠ€μΌ€μΌλ§ μ‚¬μš© μΆ”μ²œ

    β‘£ 동적 μŠ€μΌ€μΌλ§

      - μˆ˜μš” 변화에 λŒ€μ‘ν•˜μ—¬ 그룹의 μš©λŸ‰μ„ μ‘°μ •ν•˜λŠ” 방법

      - Cloud Watchκ°€ λͺ¨λ‹ˆν„°λ§ν•˜λŠ” μ§€ν‘œλ₯Ό μΆ”μ ν•˜μ—¬ 경보 μƒνƒœμΌ λ•Œ μˆ˜ν–‰ν•  μŠ€μΌ€μΌλ§ κ·œμΉ™μ„ 정함