[AWS] Amazon EC2 μΈμ€ν΄μ€ μμ± κ°μ΄λ
AWS(Amazon Web Services)μ ν΅μ¬ μλΉμ€ μ€ νλμΈ EC2(Elastic Compute Cloud) μΈμ€ν΄μ€λ₯Ό μμ±νλ λ°©λ²μ λν΄ λ¨κ³λ³λ‘ μμλ³΄κ² μ΅λλ€. EC2 μΈμ€ν΄μ€λ ν΄λΌμ°λμμ κ°μ μλ²λ₯Ό μ€νν μ μκ² ν΄μ£Όλ©°, λ€μν μ©λλ‘ νμ©ν μ μμ΅λλ€.
EC2λ Elastic Compute Cloudμ μ½μλ‘, Infrastructure as a Service (IaaS)λ₯Ό μ 곡ν©λλ€. EC2λ λ€μν κΈ°λ₯μ ν΅ν΄ μ μ°νκ³ νμ₯ κ°λ₯ν μ»΄ν¨ν νκ²½μ μ 곡ν©λλ€.
μ£Όμ κΈ°λ₯
EC2μ μ£Όμ κΈ°λ₯μ λ€μκ³Ό κ°μ΅λλ€
- κ°μ λ¨Έμ μλ (EC2): νμμ λ°λΌ κ°μ λ¨Έμ μ μλνμ¬ μ»΄ν¨ν μμμ νμ©ν μ μμ΅λλ€.
- κ°μ λλΌμ΄λΈμ λ°μ΄ν° μ μ₯ (EBS): Elastic Block Store(EBS)λ₯Ό μ¬μ©νμ¬ κ°μ λλΌμ΄λΈμ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬ν μ μμ΅λλ€.
- λΆν λΆμ° (ELB): Elastic Load Balancing(ELB)μ ν΅ν΄ μ¬λ¬ λ¨Έμ μ λΆνλ₯Ό λΆμ°μμΌ μ ν리μΌμ΄μ μ κ°μ©μ±κ³Ό νμ₯μ±μ λμΌ μ μμ΅λλ€.
- μ€ν μ€μΌμΌλ§ κ·Έλ£Ή (ASG): Auto Scaling Groups(ASG)μ μ¬μ©νμ¬ μλΉμ€μ μμμ λ§μΆ° μλμΌλ‘ μ»΄ν¨ν μμμ νμ₯νκ±°λ μΆμν μ μμ΅λλ€.
EC2λ₯Ό μ΄ν΄νλ κ²μ ν΄λΌμ°λμ μλ λ°©μμ μ΄ν΄νλ λ° νμμ μ λλ€.
ν΄λΌμ°λλ νμν λλ§λ€ μΈμ λ μ§ μ»΄ν¨ν μ λμ¬ν μ μμΌλ©°, EC2κ° λ°λ‘ κ·Έ μμμ λλ€.
EC2 ν¬κΈ° λ° κ΅¬μ± μ΅μ
EC2 μΈμ€ν΄μ€λ₯Ό μ€μ ν λ μ νν μ μλ λ€μν μ΅μ λ€μ΄ μμ΅λλ€:
- μ΄μ 체μ (OS): Linux, Windows λλ Mac OS μ€μμ μ νν μ μμ΅λλ€.
- μ»΄ν¨ν μ±λ₯ λ° μ½μ΄ μ (CPU): νμν μ²λ¦¬ λ₯λ ₯κ³Ό μ½μ΄ μλ₯Ό μ ννμ¬ μ»΄ν¨ν μ±λ₯κ³Ό μ½μ΄μ μμ μ‘°μ ν μ μμ΅λλ€.
- λ©λͺ¨λ¦¬ (RAM): λλ€ μ‘μΈμ€ λ©λͺ¨λ¦¬(RAM)μ ν¬κΈ°λ₯Ό μ νν©λλ€.
- μ€ν λ¦¬μ§ κ³΅κ°:
- λ€νΈμν¬ μ°κ²° μ€ν 리μ§: EBS(Elastic Block Store) λ° EFS(Elastic File System)λ₯Ό ν΅ν΄ λ€νΈμν¬μ μ°κ²°λ μ€ν 리μ§λ₯Ό μ¬μ©ν μ μμ΅λλ€.
- νλμ¨μ΄ μ€ν 리μ§: EC2 Instance Storeλ₯Ό μ¬μ©νμ¬ μΈμ€ν΄μ€μ μ§μ μ°κ²°λ νλμ¨μ΄ μ€ν 리μ§λ₯Ό μ¬μ©ν μ μμ΅λλ€.
- λ€νΈμν¬ μΉ΄λ: λ€νΈμν¬ μΉ΄λμ μλ λ° κ³΅μΈ IP μ£Όμλ₯Ό μ νν μ μμ΅λλ€.
- λ°©νλ²½ κ·μΉ: 보μ κ·Έλ£Ή(Security Group)μ μ€μ νμ¬ μΈμ€ν΄μ€μ λ°©νλ²½ κ·μΉμ κ΄λ¦¬ν©λλ€.
- λΆνΈμ€νΈλ© μ€ν¬λ¦½νΈ (μ΅μ΄ μ€ν μ ꡬμ±): EC2 User Dataλ₯Ό μ¬μ©νμ¬ μΈμ€ν΄μ€κ° μμλ λ μλμΌλ‘ μ€νλ μ€ν¬λ¦½νΈλ₯Ό μ μν μ μμ΅λλ€.
μ¬κΈ°μ μ€μν κ²μ, μνλ λλ‘ κ°μ λ¨Έμ μ μ ννμ¬ AWSμμ λΉλ¦΄ μ μλ€λ κ²μ λλ€.
EC2 User Data μ€ν¬λ¦½νΈμ λΆνΈμ€νΈλν
λΆνΈμ€νΈλνμ λ¨Έμ μ΄ μλλ λ λͺ λ Ήμ μμνλ κ²μ μλ―Έν©λλ€.
- λΆν μμ μ μλννκΈ° λλ¬Έμ λΆνΈμ€νΈλνμ΄λΌλ μ΄λ¦μ κ°κ² λ©λλ€.
- EC2 User Data μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ μΈμ€ν΄μ€λ₯Ό λΆνΈμ€νΈλνν μ μμ΅λλ€.
- λΆνΈμ€νΈλνμ΄λ, λ¨Έμ μ΄ μμλ λ λͺ λ Ήμ΄λ₯Ό μ€ννλ κ²μ μλ―Έν©λλ€.
- μ΄ μ€ν¬λ¦½νΈλ μΈμ€ν΄μ€κ° μ²μ μμλ λ λ¨ ν λ²λ§ μ€νλ©λλ€.
- EC2 User Dataλ λ€μκ³Ό κ°μ λΆνΈ μμ μ μλννλ λ° μ¬μ©λ©λλ€:
μ¬μ©μ λ°μ΄ν° μ€ν¬λ¦½νΈμ μμ μ λ μΆκ°ν μλ‘ λΆν μ μΈμ€ν΄μ€κ° ν μΌμ΄ λμ΄λ©λλ€.
-
- μ λ°μ΄νΈ μ€μΉ
- μννΈμ¨μ΄ μ€μΉ
- μΈν°λ·μμ μΌλ°μ μΈ νμΌ λ€μ΄λ‘λ
- κΈ°ν κ°λ₯ν λͺ¨λ μμ
EC2 User Data μ€ν¬λ¦½νΈλ λ£¨νΈ μ¬μ©μ κΆνμΌλ‘ μ€νλ©λλ€. → sudoλ‘ μ€νλ¨
EC2 μΈμ€ν΄μ€ νμ μμ.
Amazon EC2 Instance Comparison
instances.vantage.sh
μ ν리μΌμ΄μ μ κ°μ₯ μ ν©ν μΈμ€ν΄μ€λ₯Ό μ ννμ¬ μ£Όλ¬Έν ν΄λΌμ°λλ₯Ό μ¬μ©ν μ μμ΅λλ€.
EC2 μΈμ€ν΄μ€ μμ± μμ
λ¬΄λ£ ν΄λΌμ°λ μ»΄ν¨ν μλΉμ€ - AWS ν리 ν°μ΄
μ΄λ¬ν ν리 ν°μ΄ ννμ AWS μ κ· κ³ κ°μκ²λ§ μ 곡λλ©° AWS κ°μ μΌλ‘λΆν° 12κ°μ λμ μ ν¨ν©λλ€. 12κ°μμ λ¬΄λ£ μ¬μ© κΈ°κ°μ΄ λ§λ£λκ±°λ μ ν리μΌμ΄μ μ¬μ©λμ΄ ν리 ν°μ΄ λ²μλ₯Ό μ΄κ³Όν κ²½μ°
aws.amazon.com
AWSμμ EC2 μΈμ€ν΄μ€λ₯Ό μμ±νλ €λ©΄ λ€μ λ¨κ³λ₯Ό λ°λ¦ λλ€.
- AWS μ½μμ λ‘κ·ΈμΈν©λλ€.
- μλ¨ λ©λ΄μμ EC2 μλΉμ€λ₯Ό μ νν©λλ€.
- μ’μΈ‘ λ©λ΄μμ μΈμ€ν΄μ€(Instances)λ₯Ό μ νν ν, μΈμ€ν΄μ€ μμ(Launch Instances) λ²νΌμ ν΄λ¦ν©λλ€.
Tip: EC2 μΈμ€ν΄μ€λ₯Ό μμ£Ό μμ±νκ³ κ΄λ¦¬ν΄μΌ νλ κ²½μ°, ν νλ¦Ώμ 미리 λ§λ€μ΄ λλ©΄ μκ°μ μ μ½ν μ μμ΅λλ€.
μ ν리μΌμ΄μ λ° OS μ΄λ―Έμ§(Amazon Machine Image) μ ν
Amazon Machine Image(AMI)λ EC2 μΈμ€ν΄μ€λ₯Ό μμνλ λ° νμν μ΄μ 체μ , μ ν리μΌμ΄μ μλ² λ° μ ν리μΌμ΄μ μ΄ ν¬ν¨λ ν νλ¦Ώμ λλ€. AWSλ λ€μν AMIλ₯Ό μ 곡νλ©°, μ¬μ©μκ° μ§μ 컀μ€ν°λ§μ΄μ§ν AMIλ μ¬μ©ν μ μμ΅λλ€.
- AMI μ ν: AWSμμ μ 곡νλ λ€μν AMI μ€μμ μνλ OS λ° μ ν리μΌμ΄μ
μ΄ ν¬ν¨λ AMIλ₯Ό μ νν©λλ€.
- Amazon Linux: AWSμμ μ§μ κ°λ°ν 리λ μ€ λ°°ν¬νμΌλ‘, AWS μλΉμ€μμ νΈνμ±μ΄ λ°μ΄λ©λλ€.
- Ubuntu, Windows, Red Hat λ±: λ€μν μ΄μ 체μ λ₯Ό μ νν μ μμ΅λλ€.
Tip: νλ‘μ νΈ μꡬμ¬νμ λ§λ AMIλ₯Ό μ ννμ¬ μΈμ€ν΄μ€λ₯Ό μ΅μ ννμΈμ.
μλ₯Ό λ€μ΄, μΉ μλ²λ₯Ό ꡬμΆνλ €λ©΄ Amazon Linux 2 AMIλ₯Ό μ νν μ μμ΅λλ€.
μΈμ€ν΄μ€ μ ν μ ν
EC2 μΈμ€ν΄μ€ μ νμ CPU, λ©λͺ¨λ¦¬, μ€ν λ¦¬μ§ λ° λ€νΈμν¬ μ±λ₯μ λ°λΌ λ€μν μ΅μ μ΄ μ 곡λ©λλ€.
μ¬μ©νλ €λ μ ν리μΌμ΄μ μ μꡬμ¬νμ λ§λ μΈμ€ν΄μ€ μ νμ μ ννλ κ²μ΄ μ€μν©λλ€.
- μΈμ€ν΄μ€ μ ν μ ν: AWSλ μ¬λ¬ κ°μ§ μΈμ€ν΄μ€ ν¨λ°λ¦¬λ₯Ό μ 곡νλ©°, κ° ν¨λ°λ¦¬λ νΉμ μ©λμ μ΅μ νλμ΄ μμ΅λλ€.
- μΌλ° μ©λ: t3, m5 λ±. κ· ν μ‘ν μ»΄ν¨ν , λ©λͺ¨λ¦¬, λ€νΈμν¬ μμμ μ 곡ν©λλ€.
- μ»΄ν¨ν μ΅μ ν: c5 λ±. κ³ μ±λ₯ CPUκ° νμν μμ μ μ ν©ν©λλ€.
- λ©λͺ¨λ¦¬ μ΅μ ν: r5 λ±. λμ©λ λ©λͺ¨λ¦¬κ° νμν μμ μ μ ν©ν©λλ€.
- μ€ν λ¦¬μ§ μ΅μ ν: i3 λ±. κ³ μ μ€ν 리μ§κ° νμν μμ μ μ ν©ν©λλ€.
Tip: μΈμ€ν΄μ€ μ νμ μ μ€νκ² μ ννμ¬ λΉμ©μ μ΅μ ννκ³ , μ ν리μΌμ΄μ μ±λ₯μ κ·ΉλννμΈμ.
ν€ νμ΄ μμ±
ν€ νμ΄(Key Pair)λ EC2 μΈμ€ν΄μ€μ μμ νκ² μ κ·ΌνκΈ° μν μΈμ¦ λ°©λ²μ λλ€. νΌλΈλ¦ ν€μ νλΌμ΄λΉ ν€λ‘ ꡬμ±λμ΄ μμΌλ©°, νλΌμ΄λΉ ν€λ λ‘컬μ μμ νκ² λ³΄κ΄ν΄μΌ ν©λλ€.
- ν€ νμ΄ μ ν: κΈ°μ‘΄ ν€ νμ΄λ₯Ό μ ννκ±°λ μ ν€ νμ΄λ₯Ό μμ±ν©λλ€.
- μ ν€ νμ΄ μμ±: μ 보λ₯Ό μ λ ₯νκ³ ν€ νμ΄ μμ±(Create key pair) λ²νΌμ ν΄λ¦νλ©΄ .pem ν€ νμΌμ΄ μμ±λ©λλ€.
- EC2 μΈμ€ν΄μ€μ μ κ·ΌνκΈ° μν΄μλ .pem νμΌμ΄ νμνλ―λ‘, μμ±λ ν€ νμΌμ μμ νκ² λ³΄κ΄νμΈμ.
λ€νΈμν¬ μ€μ (보μ κ·Έλ£Ή)
보μ κ·Έλ£Ή(Security Group)μ EC2 μΈμ€ν΄μ€μ λν κ°μ λ°©νλ²½ μν μ νλ©°, μΈμ€ν΄μ€λ‘ λ€μ΄μ€κ³ λκ°λ νΈλν½μ μ μ΄ν©λλ€.
보μ κ·Έλ£Ή μ€μ
- SSH νΈλν½ νμ©: μΈμ€ν΄μ€μ μ격μΌλ‘ μ κ·ΌνκΈ° μν΄ SSH(ν¬νΈ 22) νΈλν½μ νμ©ν©λλ€.
- μ μ κ°λ₯ μμΉ μ ν: 보μ κ°νλ₯Ό μν΄ νΉμ IP μ£Όμλ λ²μλ§ νμ©ν μ μμ΅λλ€.
μ¬λ¬ μΈμ€ν΄μ€μ λμΌν 보μ κ·Έλ£Ήμ μ€μ νλ©΄, λμΌν νΈλν½ κ·μΉμ 곡μ νκ² λμ΄ κ΄λ¦¬κ° μ©μ΄ν©λλ€.
μ€ν λ¦¬μ§ κ΅¬μ±
μ€ν 리μ§(Storage)λ μΈμ€ν΄μ€μ μ°κ²°λλ λμ€ν¬ 곡κ°μ μλ―Έν©λλ€.
EC2 μΈμ€ν΄μ€μ μ€ν 리μ§λ₯Ό μ μ νκ² κ΅¬μ±νλ κ²μ λ°μ΄ν°μ μμ μ±κ³Ό μ±λ₯μ ν° μν₯μ λ―ΈμΉ©λλ€.
ec2 μΈμ€ν΄μ€ μ’ λ£ μ μ storage 보쑴 κ°λ₯ → μλ‘ μμ±ν μΈμ€ν΄μ€μ μ°κ²° κ°λ₯
μ€ν λ¦¬μ§ κ΅¬μ± (κ³ κΈ) → μ’ λ£μ μμ μ΅μ μ‘΄μ¬ (μλμ€λ‘ λ³κ²½μ, μ’ λ£μ stoarge 보쑴)
- μ€ν λ¦¬μ§ κ΅¬μ±: κΈ°λ³Έμ μΌλ‘ λ£¨νΈ λ³Όλ₯¨μ΄ μ€μ λμ΄ μμ§λ§, νμμ λ°λΌ μΆκ° λ³Όλ₯¨μ μμ±ν μ μμ΅λλ€.
- μ’ λ£ μ μ€ν λ¦¬μ§ λ³΄μ‘΄: μΈμ€ν΄μ€λ₯Ό μ’ λ£ν λ μ€ν 리μ§λ₯Ό μμ ν μ§ λ³΄μ‘΄ν μ§λ₯Ό μ νν μ μμ΅λλ€. "μλμ€(No)"λ‘ μ€μ νλ©΄ μ€ν 리μ§κ° 보쑴λ©λλ€.
- μΈμ€ν΄μ€λ₯Ό μ’ λ£νκΈ° μ μ μ€ν 리μ§λ₯Ό 보쑴νλλ‘ μ€μ νλ©΄, λ°μ΄ν°λ₯Ό μμ§ μκ³ μλ‘μ΄ μΈμ€ν΄μ€μ μ°κ²°ν μ μμ΅λλ€.
κ³ κΈ μΈλΆ μ 보
κ³ κΈ μΈλΆμ 보 λΆλΆ νλ¨μ μ¬μ©μ λ°μ΄ν°κ° μμ΅λλ€.
μ¬μ©μ λ°μ΄ν°λ μ€ν¬λ¦½νΈ, μ¦ μ½κ°μ λͺ λ Ήμ EC2 μΈμ€ν΄μ€μ μ 곡νλ κ±°κ³ μ, EC2 μΈμ€ν΄μ€λ₯Ό μ²μ μμ±ν λλ§ μ€νλ©λλ€.
첫 λ²μ§Έ μμ±ν λ λ°λ‘ μ¬κΈ° μλ μ΄ λͺ λ Ήλ€μ μ λ¬ν©λλ€.
- μλμ μ½λλ₯Ό μ¬μ©μ λ°μ΄ν° λΆλΆμ λ£μ΅λλ€.
- μ΄ λ΄μ©λ€μ μΈμ€ν΄μ€κ° μ²μμΌλ‘ μ€νλ λ, μΈμ€ν΄μ€μ μ 체 μλͺ μ£ΌκΈ° μ€μ λ¨ ν λ²λ§ μ€νλλκ²μ μλ―Έ
- λͺ κ°μ§λ₯Ό μ λ°μ΄νΈνκ³ HTTP μΉ μλ²λ₯Ό λ¨Έμ μ μ€μΉνκ³ λ€μμΌλ‘ HTML νμΌμ μ°κ² λ©λλ€, κ·Έ νμΌμ΄ μΉ μλ²κ° λ κ²μ λλ€.
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
νκ·Έ μΆκ°
νκ·Έ(Tag)λ AWS 리μμ€λ₯Ό μλ³νκ³ κ΄λ¦¬νλ λ° λμμ μ£Όλ ν€-κ° μμ λλ€.
μΈμ€ν΄μ€μ νκ·Έλ₯Ό μΆκ°νλ©΄, 리μμ€ κ΄λ¦¬λ₯Ό λ³΄λ€ μ²΄κ³μ μΌλ‘ ν μ μμ΅λλ€.
- νκ·Έ μΆκ°: νμν κ²½μ° νκ·Έλ₯Ό μΆκ°ν©λλ€.νκ·Έλ 리μμ€ κ΄λ¦¬λ₯Ό μ©μ΄νκ² νκ³ , λΉμ© ν λΉμ λͺ ννκ² ν μ μλλ‘ λμμ€λλ€. ν€λ λΆμ, κ°μ κ°λ°νκ³Ό κ°μ΄ μ§μ ν μ μμ΅λλ€.
μΈμ€ν΄μ€ κ²ν λ° μμ±
- μ€μ κ²ν : λͺ¨λ μ€μ μ΄ μ¬λ°λ₯Έμ§ νμΈν©λλ€.
- μΈμ€ν΄μ€ μμ: "μΈμ€ν΄μ€ μμ(Launch)" λ²νΌμ ν΄λ¦νμ¬ μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€.
μΈμ€ν΄μ€ μν νμΈ
μΈμ€ν΄μ€κ° μμ±λ κ²μ νμΈ
μΈμ€ν΄μ€κ° μμ±λκ³ λλ©΄ μΈμ€ν΄μ€ μνκ° "μ€ν μ€(Running)"μΌλ‘ νμλ©λλ€. μ΄λ μΈμ€ν΄μ€κ° μ±κ³΅μ μΌλ‘ μ€νλμμμ μλ―Έν©λλ€.
νλ¨μ μΈμ€ν΄μ€ μ 보μμ λ³Όμ μλκ²
- κ³΅μ© IPv4 μ£Όμ → EC2 μΈμ€ν΄μ€ μ κ·Όμ μν μ£Όμ, λλ μ¬μ€ IPv4 μ£Όμλ μμ. AWS λ€νΈμν¬μμ λ΄λΆμ μΌλ‘ μΈμ€ν΄μ€μ μ κ·Όνλ λ°©λ².
Tip: μΈμ€ν΄μ€ μνκ° "μ€ν μ€"μΈμ§ νμΈνμ¬ μ μμ μΌλ‘ μ€νλμλμ§ κ²μ¦νμΈμ.
μΈμ€ν΄μ€ μ 보 νμΈ
- μΈμ€ν΄μ€ ID ν΄λ¦: μΈμ€ν΄μ€ IDλ₯Ό ν΄λ¦νλ©΄ μΈμ€ν΄μ€μ λν μμΈ μ 보λ₯Ό λ³Ό μ μμ΅λλ€.
- λ€νΈμνΉ ν: μΈμ€ν΄μ€μ Public IPμ Private IPλ₯Ό νμΈν μ μμ΅λλ€.
Tip: λ€νΈμνΉ νμμ IP μ£Όμλ₯Ό νμΈνμ¬ μΈμ€ν΄μ€μ μ κ·Όν μ μλ μ£Όμλ₯Ό νμ νμΈμ.
AWS EC2 μΈμ€ν΄μ€λ ν΄λΌμ°λμμ μ μ°νκ² μλ²λ₯Ό μ΄μν μ μκ² ν΄μ£Όλ κ°λ ₯ν λꡬμ λλ€. μ΄λ² κ°μ΄λλ₯Ό ν΅ν΄ EC2 μΈμ€ν΄μ€λ₯Ό μμ±νκ³ μ€μ νλ κ³Όμ μ λ¨κ³λ³λ‘ μ΅νμ΅λλ€. μ¬λ°λ₯Έ AMI μ ν, μΈμ€ν΄μ€ μ ν κ²°μ , 보μ κ·Έλ£Ή μ€μ λ±μ ν΅ν΄ ν¨μ¨μ μ΄κ³ μμ ν μΈνλΌλ₯Ό ꡬμΆν μ μμ΅λλ€.
μ°Έκ³ μλ£
- AWS 곡μ λ¬Έμ - EC2 μμ κ°μ΄λ: Launching an Instance
- AWS 곡μ λ¬Έμ - AMI: Amazon Machine Images
- AWS 곡μ λ¬Έμ - 보μ κ·Έλ£Ή: Security Groups for Your VPC
- AWS 곡μ λ¬Έμ - ν€ νμ΄: Key Pairs
- AWS 곡μ λ¬Έμ - νκ·Έ: Tagging Your Amazon EC2 Resources