μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- binarySearch
- λμ κ³νλ²
- algoritm
- Swift
- GCD
- algorithm
- discardableResult
- GroupBy
- SwiftUI νν 리μΌ
- μ΄μ§νμ
- νλ‘κ·Έλλ¨Έμ€
- IOS
- μ°μνμ€λΆλΆμμ΄μν©
- κΈ°μ΄λ¬Έλ²
- 0μ΄λμ΄μλκΈΈ
- duno
- concurrency
- HAVIT
- URLSession
- κ³ λμ kit
- SwiftUI
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- SQL
- APPJAM
- dfs
- Til
- DynamicProgramming
- SOPT
- BFS
- SwiftUI Tutorials
- Today
- Total
suvera-dev π₯¦
AWS λ°°ν¬μλν κ΅¬μΆ _ 4. ECS μμ± λ° ELB μ°κ²° / ECR image λ°°ν¬ λ³Έλ¬Έ
AWS λ°°ν¬μλν κ΅¬μΆ _ 4. ECS μμ± λ° ELB μ°κ²° / ECR image λ°°ν¬
suvera 2023. 7. 14. 01:15μ΄λ² νλ‘μΈμ€λ λ€μκ³Ό κ°λ€.
- ECS μμ± : Cluster, Service, Task Definition
- ELB μμ± , μ°κ²°
- EC2 μΈμ€ν΄μ€ μμ± : Auto Scaling Group
μμνκΈ° μ μ κ°λ¨ν κ°λ μ μ 리νκ³ λμ΄κ°μ.
1. EC2 : κ°μ μλ²μΈ EC2 μΈμ€ν΄μ€λ₯Ό νλ‘λΉμ λνκ³ μ€νν μ μμ΅λλ€. EC2 μΈμ€ν΄μ€λ κ°μ μ»΄ν¨ν°λ‘, λ€μν μ΄μ 체μ μ μννΈμ¨μ΄λ₯Ό μ€νν μ μμ΅λλ€. EC2 μΈμ€ν΄μ€λ κ°μ νλΌμ΄λΉ ν΄λΌμ°λ(VPC) λ΄μμ μ€νλλ©°, μΈν°λ·μ ν΅ν΄ μ‘μΈμ€ν μ μμ΅λλ€.
2. Auto Scaling Group : μ€ν μ€μΌμΌλ§ κ·Έλ£Ήμ EC2 μΈμ€ν΄μ€μ κ·Έλ£Ήμ λλ€. μ΄ κ·Έλ£Ήμ μ¬μ©μκ° μ μν 쑰건μ λ°λΌ EC2 μΈμ€ν΄μ€λ₯Ό μλμΌλ‘ νλ‘λΉμ λνκ³ μ‘°μ νμ¬ μ ν리μΌμ΄μ μ κ°μ©μ±κ³Ό νμ₯μ±μ 보μ₯ν©λλ€. μλ₯Ό λ€μ΄, νΈλν½μ΄ μ¦κ°νλ©΄ μ€ν μ€μΌμΌλ§ κ·Έλ£Ήμ νμμ λ°λΌ EC2 μΈμ€ν΄μ€λ₯Ό μλμΌλ‘ μΆκ°νμ¬ μ ν리μΌμ΄μ μ μ±λ₯μ μ μ§ν©λλ€. λ§μ°¬κ°μ§λ‘ νΈλν½μ΄ κ°μνλ©΄ μΈμ€ν΄μ€λ₯Ό μλμΌλ‘ μ€μ¬ λΉμ©μ μ κ°ν μ μμ΅λλ€.
⇒ μ¬μ©μλ μμμΉ λͺ»ν μλΉμ€ λΆνμ ν¨κ³Όμ μΌλ‘ λμνκ³ , μ΅λν μ λ ΄ν λΉμ©μΌλ‘ μμ μ μ΄κ³ μμΈ‘ κ°λ₯ν μ±λ₯μ μ μ§ν μ μλ€.
3. ECS (Amazon Elastic Container Service): Amazon Elastic Container Service(ECS)λ AWSμμ μ 곡νλ κ΄λ¦¬ν 컨ν μ΄λ μ€μΌμ€νΈλ μ΄μ μλΉμ€μ λλ€. ECSλ₯Ό μ¬μ©νλ©΄ Docker 컨ν μ΄λλ₯Ό μ€ννκ³ κ΄λ¦¬νλ μμ μ λ¨μνν μ μμ΅λλ€. ECSλ ν΄λ¬μ€ν°, μμ μ μ, μλΉμ€ λ±μ κ°λ μ μ¬μ©νμ¬ μ»¨ν μ΄λλ₯Ό λ°°ν¬νκ³ νμ₯νλ κΈ°λ₯μ μ 곡ν©λλ€.
- EC2μ Fargate λκ°μ λ°°ν¬ λͺ¨λΈμ μ§μ !
EC2 μΈμ€ν΄μ€λ₯Ό μ¬μ©νλ κ²½μ°:
- ECS ν΄λ¬μ€ν°: ECS ν΄λ¬μ€ν°λ EC2 μΈμ€ν΄μ€μ λ Όλ¦¬μ κ·Έλ£Ήμ λλ€. μ΄ ν΄λ¬μ€ν°λ 컨ν μ΄λλ₯Ό μ€νν EC2 μΈμ€ν΄μ€λ₯Ό κ΄λ¦¬ν©λλ€. ν΄λ¬μ€ν°λ μ¬λ¬ κ°μ EC2 μΈμ€ν΄μ€λ‘ ꡬμ±λ μ μμΌλ©°, κ° μΈμ€ν΄μ€λ 컨ν μ΄λλ₯Ό μ€ννλ νΈμ€νΈ μν μ μνν©λλ€.
- μμ μ μ(Task Definition): μμ μ μλ 컨ν μ΄λνλ μ ν리μΌμ΄μ μ μ€νμ νμν μ 보λ₯Ό μ μνλ JSON νμΌμ λλ€. μμ μ μμλ μ€νν 컨ν μ΄λ μ΄λ―Έμ§, ν¬νΈ 맀ν, νκ²½ λ³μ λ±μ μ λ³΄κ° ν¬ν¨λ©λλ€.
- μλΉμ€(Service): μλΉμ€λ ECS ν΄λ¬μ€ν°μμ μμ μ μλ₯Ό κΈ°λ°μΌλ‘ 컨ν μ΄λλ₯Ό μ€ννλ λ° μ¬μ©λ©λλ€. μλΉμ€λ 컨ν μ΄λμ κ°μ©μ±κ³Ό νμ₯μ±μ κ΄λ¦¬νλ©°, νμμ λ°λΌ μλμΌλ‘ μΈμ€ν΄μ€λ₯Ό μΆκ°νκ±°λ μ κ±°νμ¬ μ ν리μΌμ΄μ μ μ±λ₯κ³Ό κ°μ©μ±μ μ μ§ν©λλ€.
AWS Fargateλ₯Ό μ¬μ©νλ κ²½μ°:
- AWS Fargate: AWS Fargateλ μλ²λ¦¬μ€ 컨ν μ΄λ μ€ν νκ²½μΌλ‘, EC2 μΈμ€ν΄μ€λ₯Ό μ§μ νλ‘λΉμ λνκ±°λ κ΄λ¦¬ν νμ μμ΄ μ»¨ν μ΄λλ₯Ό μ€νν μ μμ΅λλ€. Fargateλ₯Ό μ¬μ©νλ©΄ 컨ν μ΄λμ ν λΉλ 리μμ€λ§ μ§λΆνλ©΄ λλ―λ‘ λμ± νΈλ¦¬ν©λλ€. ECS ν΄λ¬μ€ν°μ μμ μ μ κ°λ μ EC2 μΈμ€ν΄μ€λ₯Ό μ¬μ©νλ κ²½μ°μ λμΌνκ² μ μ©λ©λλ€.
4. Load Balancer : μλ²μ κ°ν΄μ§λ νΈλν½μ μ¬λ¬λμ μλ²μκ² κ· λ±νκ² λΆμ°μμΌμ£Όλ μν μ νλ κ²
μλ²κ° νλμΌ λ νΈλν½μ΄ μ μΌλ©΄ μλ²λ 무μ¬ν μλ΅μ ν΄μ€ κ²μ λλ€.
νμ§λ§ νΈλν½μ΄ μλ² νκ°λ‘λ κ°λΉν μ μλ μμ΄ λλ μκ° μλ²λ λ€μ΄λ κ²μ΄κ³ , μλΉμ€ λν μλμ λ©μΆ κ²μ λλ€.
μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ ν¬κ² λ κ°μ§ λ°©λ²μ΄ μλλ°μ.
μλ²μ μΈμ€ν΄μ€ μ±λ₯μ μ¬λ¦¬λ μ€μΌμΌ-μ (Scale-up) κ³Ό μλ²λ₯Ό μ¬λ¬λλ‘ λλ μ νΈλν½μ μ²λ¦¬νλ μ€μΌμΌ-μμ(Scale-out) λ°©μμ΄ μμ΅λλ€. μ€λ ν¬μ€ν νλ μ΄ λ‘λ λ°Έλ°μλ λ°λ‘ μ€μΌμΌ-μμ λ°©μμ λλ€.
κ·Έλ¦¬κ³ λ‘λ λ°Έλ°μλ μ§μμ μΌλ‘ IPμ£Όμκ° λ°λκΈ° λλ¬Έμ λλ©μΈ κΈ°λ°μΌλ‘ μ¬μ©ν΄μΌ νλ€λ νΉμ§μ΄ μμ΅λλ€.
μ₯μ )
- λΉμ© μ κ°
- 무μ€λ¨ μλΉμ€ μ 곡
- HTTP, HTTPS λ₯Ό μ΄μ©ν μΉ μλ²λ₯Ό λμΈ κ² → ALB
ALB
ALBμ κ²½μ°λ λ€νΈμν¬ λ μ΄μ΄7μ νλ‘ν μ½μ λν λΆνλ§ μ²λ¦¬ν μ μμ΅λλ€. ELBμ λ€λ₯΄κ² κ²½λ‘λ ν¬νΈλ±μ λ°λΌ λ€λ₯Έ νκ²κ·Έλ£ΉμΌλ‘ 맡νν μ μμ΅λλ€. ν¬νΈ λ¨μλ‘ μ°κ²°ν΄μ€ μ μκΈ° λλ¬Έμ λ컀μμ μ μ©νκ² μλν μ μκ³ νλμ λμκ·Έλ£Ήμ λ λ§μ 컨ν μ΄λλ₯Ό λ£μ μ μμ΄ λΉμ©μ μ΅μ νν μ μμ΅λλ€. EC2 μΈμ€ν΄μ€, AWS λλ€, IPλ‘λ μ°κ²°μ΄ κ°λ₯νκ³ νΉμ ν μμ²μ λν΄μλ μλ²μμ΄ μλ΅λ©μΈμ§λ₯Ό μμ±ν μ μμ΅λλ€.
ELBμ κ²½μ° λ€νΈμν¬ λ μ΄μ΄ 4μ λ€νΈμν¬ λ μ΄μ΄7μ λν λΆνλ₯Ό μ μ΄ν μ μμ΅λλ€. κ·Έλ¦¬κ³ μλ²μ κΈ°λ³Έμ£Όμκ° λ°λλ©΄ λ‘λλ°Έλ°μλ₯Ό μλ‘ μμ±ν΄μΌνλ©° νλμ μ£Όμμ νλμ νκ²κ·Έλ£ΉμΌλ‘ 보λ΄κ² λ©λλ€. λ°λΌμ νκ²κ·Έλ£Ήμ΄ λ§μμ§μλ‘ λ λ§μ μμ λ‘λλ°Έλ°μκ° νμνκ³ λΉμ©λ κ·Έλ§νΌ λ λ€μκ°κ² λ©λλ€.
1. EC2 μΈμ€ν΄μ€ SSH μ κ·Όμ μν ν€νμ΄ μμ±
EC2 - λ€νΈμν¬ λ° λ³΄μ - ν€νμ΄
μ΄λ¦ : ec2-key
2. ECS Cluster μμ±
- μλ‘μ΄ νκ²½μμλ μ§μλμ§ μλ κΈ°λ₯μ΄ μμ΄μ κΈ°μ‘΄ μ½μλ‘ μ νν΄μ€λ€.
- μΌμͺ½ μλ¨μ μ€μμΉ λ²νΌμ λλ₯΄λ©΄ λλ€.
- ν΄λ¬μ€ν° μμ±
2λ²μ§Έ Linux + λ€νΈμνΉ μ ν
μ΄λ¦ : ecs-cluster
νλ‘λΉμ λ λͺ¨λΈ : μ¨λ맨λ μΈμ€ν΄μ€
μ ν : t3.medium !!! ( t2λ insufficient memory μλ¬κ° λλ€κ³ ν¨. t3.microλ μλλ€μ©. λμ κ³ΌκΈ μ£Όμ. )
κ°μ : 2
EC2 AMI ID : Linuxe 2 AMI
λ³Όλ₯¨ ν¬κΈ° : 30
ν€ νμ΄ : ec2-key
- VPC : HLI-VPC
- μλΈλ· : Public Subnet 2a / 2b ( privateμ EC2λ₯Ό λλ κ²½μ° μΈν°λ· κ²μ΄νΈμ¨μ΄λ₯Ό νκ³ λκ° μκ° μμΌλ―λ‘ NATλ₯Ό μμ±ν΄μ€μΌν¨. )
- νΌλΈλ¦ IP μλ ν λΉ : νμ±νλ¨
- 보μκ·Έλ£Ή : ecs-ec2-sg
- IAMμ ecsInstanceRoleμ κ°κ³ μμ
μμ± μλ£ !
3. ELB μμ±
- μλΉμ€μ μμ μ μμ±ν΄μΌνλλ°, μμ μ μμμ λ‘λλ°Έλ°μλ₯Ό μ νν΄μΌνκΈ° λλ¬Έμ λ¨Όμ μμ±ν΄λ³΄μ.
- EC2 μ½μ -> λ‘λλ°Έλ°μ -> μμ±
HTTP, HTTPS λ₯Ό μ΄μ©ν μΉ μλ²λ₯Ό λμΈ κ²μ΄κΈ° λλ¬Έμ ALBλ₯Ό μ ννλ€. μμΈν μ€λͺ μ μμ κ°λ λΆλΆμ μλ€ !
μμ± λ²νΌμ λλ₯΄λ©΄ ELBμ μλ λ°©μλ μ€λͺ μ΄ λμ΄μλ€.
μ΄λ¦ : lb-testλ‘ μ€μ
λ€νΈμν¬ λ§€νμμλ
κΈ°μ‘΄μ κ³μ μ ννλ HLI-VPC μ ν, public μλΈλ· 2κ°λ₯Ό 맀ν !
μ΄μ μ μμ±ν΄λ lb 보μκ·Έλ£Ή μ ν !
-> 리μ€λμ λν΄ μ μν κ·μΉμ λ°λΌ λ‘λ λ°Έλ°μκ° λ±λ‘λ λμμΌλ‘ μμ²μ λΌμ°ν νλ λ°©λ²μ΄ κ²°μ λλ€κ³ μ νμλ€. μμ 리μ€λμ λΌμ°ν νκΈ° μν΄μλ λμ κ·Έλ£Ήμ΄ μμ΄μΌνλ―λ‘, μλ νλμμΌλ‘ λμ΄μλ λμκ·Έλ£Ή μμ±μ λλ¬μ€λ€.
μΈμ€ν΄μ€λ₯Ό μ νν΄μ£Όκ³ ,
λμ κ·Έλ£Ή μΈν μ μλμ κ°μ΄ μ§ννλ€.
μκΉ μ μ μμ±ν EC2 μΈμ€ν΄μ€λ₯Ό λμμΌλ‘ λ±λ‘νκΈ° μν΄ -> μλμ 보λ₯ μ€μΈκ²μΌλ‘ ν¬ν¨μ ν΄λ¦ !
λμ κ·Έλ£Ή μμ± ν λ€μ λ‘λλ°Έλ°μ μΈν νλ©΄μΌλ‘ λμμ¨λ€.
μλ‘κ³ μΉ¨νλ©΄ μμ±ν λμκ·Έλ£Ήμ μ νν μ μλ€.
4. μμ μ μ ( Task Definition ) μμ±
ECS -> μμ μ μ -> μμ±
μ΄λ¦ : ecs-task-def
μν : ecsTaskExecutionRole
λ€νΈμν¬ λͺ¨λ : λΈλ¦¬μ§
μλ 컨ν μ΄λ μΆκ° λ²νΌ ν΄λ¦
μ΄λ¦ : container-test
μ΄λ―Έμ§ : 리ν¬μ§ν 리μ μλ μ΄λ―Έμ§ URL μ λ ₯
ν¬νΈλ§€ν : νΈμ€νΈ ν¬νΈ 0, 컨ν μ΄λ ν¬νΈ 80
μμ μ μ μμ± μλ£ !
5. μλΉμ€ ( Service) μμ±
ν΄λ¬μ€ν° μλμ μλΉμ€ μμ± λ²νΌ !
μλΉμ€ μ ν :
- Replicaλ μ€μ ν μμ κ°μλ§νΌ taskλ₯Ό 볡μ νλ€λ μλ―Έ
- Daemon μ ν΄λ¬μ€ν°μ μ°κ²°λ μΈμ€ν΄μ€ 1κ°λΉ νλμ taskλ§ μ€ννλ€λ μλ―Έ
β
- Replica , 2 : λ±λ‘λ taskλ₯Ό 볡μ ν΄μ 2κ°μ taskλ₯Ό μ€ννλ€λ μλ―Έ !
λ°°ν¬ λ°©μ : λ‘€λ§ μ λ°μ΄νΈ
λ°°μΉ ν νλ¦Ώ : AZ κ· ν λΆμ°
λ‘λλ°Έλ°μ μ°κ²° -> λ‘λ λ°Έλ°μμ μΆκ° λ²νΌ
- νλ‘λμ 리μ€λ ν¬νΈ : 80:HTTP
- λμ κ·Έλ£Ή μ΄λ¦ : μ΄μ μ λ§λ€μλ κ·Έλ£Ή μ ν
μλΉμ€λ μμ± μλ£ !
EC2 μ½μμμ λμκ·Έλ£Ήμ κ°λ³΄λ©΄ ECS-EC2 μΈμ€ν΄μ€ 2κ°κ° μ°κ²°λμ΄ μκ³ , ν¬νΈλ νΈμ€νΈ λμ ν¬νΈ 맀νμ ν κ²μ λ³Ό μ μλ° !
( μνλ©λ ν¬νΈ 32768 ~ 61000 λμ μμ ν¬νΈ )
6. λ°°ν¬ λμλμ§ νμΈνκΈ° !
μλΉμ€ : Replica μ νμΌλ‘ 1κ°μ μλΉμ€κ° μ‘ν°λΈ μν, 2κ°μ μμ μ΄ μ€νλκ³ μμ.
EC2 μ½μ -> λ‘λλ°Έλ°μ -> μμΈμμ νλ¨μ DNS μ΄λ¦μ 볡μ¬ν΄μ λΈλΌμ°μ μ λΆμ¬λ£μ΄λ³΄μ !
λ°°ν¬κ° λ κ²μ νμΈν μ μλ€ !
* μμ μ μ μμ±μ μ°Έκ³
- λ€νΈμν¬ λͺ¨λ μ΅μ μλ λΈλ¦¬μ§, νΈμ€νΈ, awsvpc, none κ° μλ€.
1. λΈλ¦¬μ§ : κ°μ λ€νΈμν¬ λΈλ¦¬μ§λ₯Ό μ¬μ©νμ¬ νΈμ€νΈμ 컨ν μ΄λμ λ€νΈμνΉ μ¬μ΄μ λ μ΄μ΄λ₯Ό λ§λ¬.
νΈμ€νΈ ν¬νΈλ₯Ό 컨ν μ΄λ ν¬νΈμ λ€μ 맀ννλ ν¬νΈ 맀νμ λ§λ€ μ μμ.
μ μ ν¬νΈ 맀νμ μ¬μ©νλ©΄ 컨ν μ΄λ ν¬νΈμ 맀νν νΈμ€νΈ ν¬νΈλ₯Ό λͺ μμ μΌλ‘ μ μν μ μμ΅λλ€. μμ μλ₯Ό μ¬μ©νμ¬ νΈμ€νΈμ ν¬νΈ 80μ΄ μ»¨ν μ΄λμ ν¬νΈ 3000 μ 맀νλ©λλ€. 컨ν μ΄λνλ μ ν리μΌμ΄μ κ³Ό ν΅μ νλ €λ©΄ ν¬νΈ80 λ‘ νΈλν½μ Amazon EC2 μΈμ€ν΄μ€μ IP μ£Όμλ‘ λ³΄λ λλ€. 컨ν μ΄λνλ μ ν리μΌμ΄μ μ κ΄μ μμ 보면 ν¬νΈ 3000μ μΈλ°μ΄λ νΈλν½μ΄ νμλ©λλ€.
νΈλν½ ν¬νΈλ§ λ³κ²½νλ €λ κ²½μ° μ μ ν¬νΈ 맀νμ΄ μ ν©ν©λλ€. κ·Έλ¬λ μ΄κ²μ μ¬μ ν ββhostλ€νΈμν¬ λͺ¨λ λ₯Ό μ¬μ©νλ κ²κ³Ό λμΌν λ¨μ μ΄ μμ΅λλ€. κ° νΈμ€νΈμμ νμ€ν¬ μΈμ€ν΄μ€νλ₯Ό νλλ§ μ€νν μ μμ΅λλ€. μ΄λ μ μ ν¬νΈ 맀νμ μ¬μ©νλ©΄ λ¨μΌ 컨ν
μ΄λλ§ ν¬νΈ 80μ 맀νν μ μκΈ° λλ¬Έμ
λλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ €λ©΄ λ€μ λ€μ΄μ΄κ·Έλ¨κ³Ό κ°μ΄ λμ ν¬νΈ 맀νκ³Ό ν¨κ» bridgeλ€νΈμν¬ λͺ¨λλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€
ν¬νΈ 맀νμμ νΈμ€νΈ ν¬νΈλ₯Ό μ§μ νμ§ μμΌλ©΄ Dockerκ° μμ ν¬νΈ λ²μμμ μ¬μ©νμ§ μλ μμμ ν¬νΈλ₯Ό μ ννκ³ μ΄λ₯Ό 컨ν μ΄λμ κ³΅μ© νΈμ€νΈ ν¬νΈλ‘ ν λΉνλλ‘ ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄ 컨ν μ΄λμ 3000ν¬νΈμμ μμ λκΈ°νλ Node.js μ ν리μΌμ΄μ μλ Amazon EC2 νΈμ€νΈ 47760μ κ°μ μμμ λμ λ²νΈ ν¬νΈκ° ν λΉλ μ μμ΅λλ€ . μ΄λ κ² νλ©΄ νΈμ€νΈμμ ν΄λΉ 컨ν μ΄λμ μ¬λ¬ 볡μ¬λ³Έμ μ€νν μ μμ΅λλ€. λν κ° μ»¨ν μ΄λλ νΈμ€νΈμμ μ체 ν¬νΈλ₯Ό ν λΉν μ μμ΅λλ€. 컨ν μ΄λμ κ° λ³΅μ¬λ³Έμ 3000ν¬νΈμμ νΈλν½μ μμ ν©λλ€ . κ·Έλ¬λ μ΄λ¬ν 컨ν μ΄λλ‘ νΈλν½μ 보λ΄λ ν΄λΌμ΄μΈνΈλ μμλ‘ ν λΉλ νΈμ€νΈ ν¬νΈλ₯Ό μ¬μ©ν©λλ€.
ν¬νΈ 맀νμ νΈμ€νΈ ν¬νΈ 0κ³Ό 컨ν
μ΄λ ν¬νΈ 80μ μλ―Έ
→ λ€νΈμν¬ λͺ¨λ : λΈλ¦¬μ§
→ νΈμ€νΈμ 컨ν μ΄λ μ¬μ΄μ λ€νΈμνΉμ μν λ μ΄μ΄λ₯Ό λ§λ€κ³ , νΈμ€νΈ ν¬νΈλ₯Ό λ€μ 컨ν μ΄λ ν¬νΈλ‘ 맀ννλ ν¬νΈλ§€νμ λ§λλ λ°©μ.
νΈμ€νΈ ν¬νΈλ₯Ό 0( μμ )μΌλ‘ μ§μ νλ©΄ 컨ν μ΄λμ νΈμ€νΈ ν¬νΈκ° λμ μΌλ‘ μμ±λ¨
μ΄λ¬ν λμ ν¬νΈ 맀νμ μ¬μ©ν κ²½μ°, μνλ©ν ν¬νΈ ( 32768~ 61000) λ²μμ ν¬νΈκ° μλμΌλ‘ ν λΉλλ©° μ΄λ albμ μ€μ ν΄ λμ νκ² κ·Έλ£Ήμ ν¬νΈλ 무μλλ€.
컨ν μ΄λ ν¬νΈ 80μ, νΈμ€νΈλ‘λΆν° λ€μ 컨ν μ΄λ ν¬νΈλ‘ 맀νν λ 80μλ§ λ§€ννλλ‘ μ μ ν¬νΈ 맀νμ μ€μ νλ κ²μ μλ―Έ !!
νΈμ€νΈ ν¬νΈ : λμ ν¬νΈ 맀νμΌλ‘ ꡬμ±
컨ν μ΄λ ν¬νΈ : μ μ ν¬νΈλ§€νμΌλ‘ ꡬμ±
2. νΈμ€νΈ : νΈμ€νΈ λͺ¨λλ₯Ό μ¬μ©νλ©΄ 컨ν μ΄λμ λ€νΈμνΉμ΄ 컨ν μ΄λλ₯Ό μ€ννλ κΈ°λ³Έ νΈμ€νΈμ μ§μ μ°κ²°λ©λλ€. λ€νΈμν¬ λͺ¨λλ₯Ό μ¬μ© νλ©΄ host컨ν μ΄λλ κΈ°λ³Έ νΈμ€νΈ Amazon EC2 μΈμ€ν΄μ€μ IP μ£Όμλ₯Ό μ¬μ©νμ¬ ν¬νΈ 3000μμ νΈλν½μ μμ ν©λλ€.
μ΄ λ€νΈμν¬ λͺ¨λλ₯Ό μ¬μ©νλ λ°λ μλΉν λ¨μ μ΄ μμ΅λλ€. κ° νΈμ€νΈμμ μμ μΈμ€ν΄μ€νλ₯Ό νλλ§ μ€νν μ μμ΅λλ€. μ΄λ 첫 λ²μ§Έ μμ λ§ Amazon EC2 μΈμ€ν΄μ€μ νμ ν¬νΈμ λ°μΈλ©ν μ μκΈ° λλ¬Έμ λλ€. hostλ€νΈμν¬ λͺ¨λ λ₯Ό μ¬μ©ν λ 컨ν μ΄λ ν¬νΈλ₯Ό λ€μ 맀νν λ°©λ²λ μμ΅λλ€ . μλ₯Ό λ€μ΄ μ ν리μΌμ΄μ μ΄ νΉμ ν¬νΈ λ²νΈλ₯Ό μμ ν΄μΌ νλ κ²½μ° ν¬νΈ λ²νΈλ₯Ό μ§μ λ€μ 맀νν μ μμ΅λλ€. λμ μ ν리μΌμ΄μ ꡬμ±μ λ³κ²½νμ¬ ν¬νΈ μΆ©λμ κ΄λ¦¬ν΄μΌ ν©λλ€.
3. awsvpc:
awsvpcλ€νΈμν¬ λͺ¨λμμ Amazon ECS λ κ° μμ μ λν ENI(νλ ₯μ λ€νΈμν¬ μΈν°νμ΄μ€)λ₯Ό μμ± λ° κ΄λ¦¬νκ³ κ° μμ μ VPC λ΄μμ μ체 νλΌμ΄λΉ IP μ£Όμλ₯Ό λ°μ΅λλ€. μ΄ ENIλ κΈ°λ³Έ νΈμ€νΈ ENIμ λ³κ°μ λλ€. Amazon EC2 μΈμ€ν΄μ€κ° μ¬λ¬ μμ μ μ€ννλ κ²½μ° κ° μμ μ ENIλ λΆλ¦¬λ©λλ€.
μμ μμμ Amazon EC2 μΈμ€ν΄μ€λ ENIμ ν λΉλ©λλ€. ENIλ νΈμ€νΈ μμ€μμ λ€νΈμν¬ ν΅μ μ μ¬μ©λλ EC2 μΈμ€ν΄μ€μ IP μ£Όμλ₯Ό λνλ λλ€. κ° μμ μλ ν΄λΉ ENIμ κ°μΈ IP μ£Όμλ μμ΅λλ€. κ° ENIκ° λΆλ¦¬λμ΄ μκΈ° λλ¬Έμ κ° μ»¨ν μ΄λλ 80νμ€ν¬ ENIμ ν¬νΈμ λ°μΈλ©ν μ μμ΅λλ€. λ°λΌμ ν¬νΈ λ²νΈλ₯Ό μΆμ ν νμκ° μμ΅λλ€. 80λμ μμ ENIμ IP μ£Όμμ μλ ν¬νΈλ‘ νΈλν½μ λ³΄λΌ μ μμ΅λλ€ .
4. μμ : ν¬νΈ 맀ν λΆκ° , μΈλΆμ μ°κ²° X
* μ°Έκ³ : λ°°ν¬ μ λ΅ - Rolling, Blue/Green, Canary
1. Rolling
- Rolling λ°°ν¬λ μλ²λ₯Ό ν λμ© κ΅¬ λ²μ μμ μ λ²μ μΌλ‘ κ΅μ²΄ν΄κ°λ μ λ΅μ΄λ€. μλΉμ€ μ€μΈ μλ² ν λλ₯Ό μ μΈμν€κ³ κ·Έ μ리μ μ λ²μ μ μλ²λ₯Ό μΆκ°νλ€. μ΄λ κ² κ΅¬ λ²μ μμ μ λ²μ μΌλ‘ νΈλν½μ μ μ§μ μΌλ‘ μ ννλ€. μ΄μ κ°μ λ°©μμ μλ² μμ μ μ½μ΄ μμ κ²½μ° μ μ©νλ λ°°ν¬ μ€ μΈμ€ν΄μ€μ μκ° κ°μ λλ―λ‘ μλ² μ²λ¦¬ μ©λμ 미리 κ³ λ €ν΄μΌ νλ€.
2. Blue/Green
- Blue/Green λ°°ν¬λ μ λ²μ μ λ°°ν¬νκ³ μΌμ ν μ ννμ¬ λͺ¨λ μ°κ²°μ μ λ²μ μ λ°λΌλ³΄κ² νλ μ λ΅μ΄λ€. ꡬ λ²μ , μ λ²μ μλ²λ₯Ό λμμ λλν ꡬμ±νμ¬ λ°°ν¬ μμ μ νΈλν½μ΄ μΌμ ν μ νλλ©° λΉ λ₯Έ λ‘€λ°±μ΄ κ°λ₯νκ³ , μ΄μνκ²½μ μν₯μ μ£Όμ§ μκ³ μ€μ μλΉμ€ νκ²½μΌλ‘ μ λ²μ ν μ€νΈκ° κ°λ₯νλ€. λ¨, μ΄λ° ꡬμ±μ μμ€ν μμμ΄ λλ°°λ‘ νμνμ¬ λΉμ©μ΄ λ λ§μ΄ λ°μνλ€.
3. Canary
- 'Canary'λΌλ μ©μ΄μ μ΄μμ μλ©΄ μ΄ν΄κ° λ μ½λ€. Canaryλ μΉ΄λ리μ λΌλ μλ₯Ό μΌμ»«λ λ§μΈλ°, μ΄ μλ μΌμ°ννμ λ° μ λ κ°μ€μ λ§€μ° λ―Όκ°νλ€κ³ νλ€. κ·Έλμ κ³Όκ±° κ΄λΆλ€μ΄ μ΄ μλ₯Ό μμ λκ³ κ΄μ°μμ μΌμ νλ€κ° μΉ΄λ리μκ° κ°μκΈ° μ£½κ² λλ©΄ λνΌλ₯Ό νλ€κ³ νλ€. Canary λ°°ν¬λ μΉ΄λ리μ μμ²λΌ μνμ λΉ λ₯΄κ² κ°μ§ν μ μλ λ°°ν¬ κΈ°λ²μ΄λ€. μ§μ ν μλ² λλ νΉμ userμκ²λ§ λ°°ν¬νλ€κ° μ μμ μ΄λ©΄ μ 체λ₯Ό λ°°ν¬νλ€. μλ²μ νΈλν½μ μΌλΆλ₯Ό μ λ²μ μΌλ‘ λΆμ°νμ¬ μ€λ₯ μ¬λΆλ₯Ό νμΈν μ μκ³ , μ΄λ° μ λ΅μ A/B ν μ€νΈκ° κ°λ₯νλ©°, μ±λ₯ λͺ¨λν°λ§μ μ μ©νλ€. νΈλν½μ λΆμ°μν¬ λλ λΌμ°ν μ λλ€νκ² ν μ μκ³ , μ¬μ©μλ‘ λΆλ₯ν μ μλ€.
[μμ½]
- Blue/Green: ν μ€νΈν΄λ³΄κ³ νΈλν½μ νλ²μ μ νν¨. λ‘€λ°±μ΄ λΉ λ¦
- λμΌν μμ instanceλ‘ μ΄λ£¨μ΄μ§ μλ‘μ΄ Server Groupμ μμ±
- μ κ· Server Groupμ΄ μ μμνκ° λλ©΄ LBλ μ κ· Server Groupμ νΈλν½μ λΆμ°ν¨.
* Blue ꡬμμ μ€μ μ΄μμλ²μ΄κ³ , Green ꡬμμμ μ κ·λ²μ ν μ€νΈλ₯Ό νκ³ , λ¬Έμ κ° μμΌλ©΄ Blue ꡬμμ ν₯νλ Request λ₯Ό Green ꡬμμΌλ‘ ν₯νκ²ν¨. κ·Έλ¬λ©΄ μ΄μ Green ꡬμμ΄ μ€ μ΄μμλ²κ° λκ³ Blue ꡬμμ ν μ€νΈμλ²κ° λ¨. (ꡬμ swap)
- Rolling: Blue/Green κ³Ό λμΌνλ λ¨, μΈμ€ν΄μ€λ³ λλ κ·Έλ£Ήλ³λ‘ Rolling
- Canary: νΈλν½μ λΆμ°μμΌ μ νν¨
- κ°μ₯ μμ κ°μμ μΈμ€ν΄μ€λ₯Ό κ΅μ²΄μν€κ³
- μλ‘μ΄ λ²μ μΌλ‘ νΈλν½μ λΆμ°μν¨λ€ (1~5%)
- μλ‘μ΄ λ²μ μ μ΄μκ° μμλκΉμ§ ν μ€νΈλ₯Ό μ§ννκ³
- νΉμ μκ°κΉμ§ μ΄μκ° μμΌλ©΄ λ°°ν¬λ₯Ό λλ €κ°λ€.