νλ‘μ νΈμμ AWS IAMμ μ¬μ©ν΄μΌ νλ μ΄μ μ΄λ²μ νλ‘μ νΈλ₯Ό μ§ννλ©΄μ AWSλ‘ μΈνλΌλ₯Ό ꡬμΆνκ² λμμ λ€λ₯Έ κΈμμλ λ€λ€μ§λ§ AWS λ£¨νΈ κ³μ μ μ΄μ©νλ κ²μ κ·Έλ κ² μ’μ λ°©λ²μ΄ μλ(νΉνλ AWS κ΄λ ¨ μμ
μ νλ μ¬λμ΄ μ¬λ¬λͺ
μΈ κ²½μ°) 보μ λ¬Έμ λ£¨νΈ κ³μ μ λͺ¨λ κΆνμ κ°μ§κ³ μμ΄μ 리μ€ν¬κ° λ무 νΌ=> μ΄ λΆλΆμ λν΄μλ λ£¨νΈ κ³μ μ MFAλ₯Ό μ€μ νκ³ μ΄κΈ° IAM κ³μ μ λ§λ ν μ¬μ©νμ§ μλ κ²μ΄ AWS Best PracitceλΌκ³ ν¨νμλ€ κ°μ κ°λ³ κ³μ μ κ°μ§ μ μμ (+ μ μ°ν κΆν κ΄λ¦¬)IAMμΌλ‘ κ° νμμκ² κ°λ³ AWS κ³μ μ λΆμ¬ν μ μκ³ IAM User, IAM Roleμ μ¬μ©νμ¬ νμν κΆνλ§ λΆμ¬ν μ μμ=> μ‘°κΈ λ μ ννλ νλμ AWS κ³μ μ΄κ³ κ³μ λ΄μμ κ°λ³..
κ΅λ―Όλνκ΅μμ "ν΄λΌμ°λ μ»΄ν¨ν
" κ΅κ³Όλͺ©μ μ§ννμλμ΄κ²½μ© κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€ Decoupling Modules Decoupling Modulesλ μ 체 μμ€ν
μ λ
립μ μΈ μ»΄ν¬λνΈλ‘ λμμΈ νλ κ²μ => κ° μ»΄ν¬λνΈ κ°μ μ’
μμ±μ μ΅μνν¨μΌλ‘ νΉμ μ»΄ν¬λνΈμμ λ°μν λ¬Έμ κ° λ€λ₯Έ κ³³μΌλ‘ μ νλλ κ²μ λ°©μ§ν΄μΌν¨ Tightly coupled : ν μμ© μλ²μ λ¬Έμ κ° λͺ¨λ μΉμλ²μ λ¬Έμ λ₯Ό λ―ΈμΉ μλ μμLoosely coupled : λ‘λλ°Έλ°μκ° μμ© μλ²μ μ€ν¨λ₯Ό κ°λ €μ€(λ‘λ λ°Έλ°μλ health checkλ₯Ό μ€νν¨)μμ€ν
μ΄ loosely coupled λ μλ‘ μμ€ν
μ νμ₯μ±μ 보μ₯νλ κ²μ΄ μ¬μμ§ λͺ¨λμ decoupling νλ λ°©λ² μλ²λ₯Ό λ§λ€μ§ λ§κ³ ..
κ΅λ―Όλνκ΅μμ "ν΄λΌμ°λ μ»΄ν¨ν
" κ΅κ³Όλͺ©μ μ§ννμλμ΄κ²½μ© κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€ κ΅¬λμ€μΈ μλ²μ λ¬Έμ λ°μ μ ν΄κ²° λ°©μ => κ°λ₯ν λͺ¨λ κ³³μμ μμμ μμ, μ’
λ£, μ€μ μ μλνλ₯Ό νλ κ²μ κΆμ₯ μλμΌλ‘ κ΄λ¦¬λλ μμλ€μ μ€μμΌλ‘ μμ€ν
μ μμ μ±, μΌκ΄μ±, ν¨μ¨μ±μ λμ΄λλ‘ ν΄μΌν¨ DevOps Development : μλΉμ€ κ°λ° Operations : μλΉμ€ μ΄μ© ν΄λΌμ°λ μλΉμ€μ λ±μ₯ λ° μΉ μλΉμ€ 보νΈνμ λ°λ₯Έ Developmentμ Operationsμ κ²½κ³ λͺ¨νΈ μΉ μλΉμ€μ λΉ λ₯Έ κ°μ μ£ΌκΈ°λ‘ μΈν κ°λ¨ν λ¦΄λ¦¬μ¦ μ¬μ΄ν΄ νμ=> μ½λλ₯Ό νμ©ν μλΉμ€ λ°°ν¬ λ³΄νΈν (IaC) Infrastructure-as-Code (μ½λλ₯Ό μ΄μ©ν μμ κ΄λ¦¬) μλΉ..
κ΅λ―Όλνκ΅μμ "ν΄λΌμ°λ μ»΄ν¨ν
" κ΅κ³Όλͺ©μ μ§ννμλμ΄κ²½μ© κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€ AWS High Availability (κ³ κ°μ©μ±) Fault-toleranceμ Scalability κ΄μ μμ μ΄ν΄λ³΄μ κ³ κ°μ©μ± (High Availability)λ? μλΉμ€λ₯Ό μ΄μ©νλ μ¬λμ΄ κ΄λ¦¬λ₯Ό νμ§ μμλ μλΉμ€κ° λμνμ§ μλ μκ°μ μ΅μνν΄μ μ¬μ©μμκ² μμΈ‘λ μ±λ₯μ μ 곡ν΄μ€ μ μλ μ²λ κ³ κ°μ©μ±μ ꡬν μμλ€ Fault tolerance μμ©μμ μ체μμ λ¬Έμ κ° λ°μμμλ μ¬μ©μμκ² μν₯μ μ ννμ§ μλ λ₯λ ₯=> faultκ° failureκ° λμ§ μκ²λ°±μ
μλ²μ ꡬλ λ± Scalability μμ€ν
μ λμμΈμ λ°κΎΈμ§ μκ³ λ μ¦κ°νλ μμ²μ μ²λ¦¬ν μ μλ λ₯λ ₯ μ¬μ©μ ..
κ΅λ―Όλνκ΅μμ "ν΄λΌμ°λ μ»΄ν¨ν
" κ΅κ³Όλͺ©μ μ§ννμλμ΄κ²½μ© κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€ AWSμ Regionλ€ us-west-2, ap-southeast-1 μ²λΌ λμ΄ μλ κ²μ λ³Ό μ μμ => 보ν΅μ μ«μ 1λ‘ κ°μλ‘ ν° λμλ₯Ό μλ―Ένλ©° μ£Όμ RegionλΆν° κΈ°λ₯μ΄ λ°°ν¬λ¨ AWSμμ Regionμ μ νν λ κ³ λ € μ¬νλ€ λ²λ₯ μ μ μ½ μ¬ν=> νΉμ λ°μ΄ν°λ λ³Έκ΅μ λ λμλ μλ¨ λ±μ μ μ½ μ¬ν κ³ λ €μ£Όμ μ¬μ©μμ κ°κΉμ΄ κ³³μ μμΉ=> μλ΅μκ° μΈ‘λ©΄μμ λ°λΌλ΄μΌν¨μ§μλ³λ‘ κ°μ©ν μλΉμ€κ° λ€λ¦=> μ£Όλ‘ λ―Έκ΅ μλΆ(us-west-2) λ° λλΆ (us-east-1) Region λΆν° μλ‘μ΄ μλΉμ€κ° κ°λ₯ν΄μ§Region λ³λ‘ κ°κ²©μ΄ λ€λ¦=> λ°μ΄ν°μΌν°μ μ₯λΉ κ°κ²©λ±μ κ³ λ €ν΄λ³΄λ©΄..
κ΅λ―Όλνκ΅μμ "ν΄λΌμ°λ μ»΄ν¨ν
" κ΅κ³Όλͺ©μ μ§ννμλμ΄κ²½μ© κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€ Cloud Infrastructure νλμ λ°μ΄ν°μΌν°μλ μΌλ°μ μΌλ‘ μμ²λμ μλ²κ° μ₯μ°©λμ΄ μμ λ°μ΄ν° μΌν° λ΄μ μλ²λ λμΌλ‘ ꡬμ±λ¨ => κ°μ λμμλ μ±κΈ λ€νΈμν¬ μ€μμΉλ₯Ό ν΅ν΄μ μ°κ²° => μ¬λ¬ λμ κ³ μ±λ₯ λ€νΈμν¬ μ€μμΉλ‘ μ°κ²° AWS Infrastructure - Region & Availability Zone (AZ) Region 물리μ μ§λ¦¬μ μμΉλ₯Ό κΈ°μ€μΌλ‘ ꡬμ±λ μμ μΈνΈ(λ―Έκ΅ μλΆ, λ―Έκ΅ λλΆ, μμμ μμΈ, μμμ μΌλ³Έ μ§μ λ±..) νλμ Regionμ μ΅μ 2κ° μ΄μμ Availability ZoneμΌλ‘ ꡬμ±λ¨ Availability Zone νλ λλ ..
κ΅λ―Όλνκ΅μμ "ν΄λΌμ°λ μ»΄ν¨ν
" κ΅κ³Όλͺ©μ μ§ννμλ μ΄κ²½μ© κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€ ν΄λΌμ°λ μ»΄ν¨ν
μλΉμ€μ λμ€ν μ°μ ν΄λΌμ°λ μ»΄ν¨ν
μ λν΄ μμμΌ νλλ° ν΄λΌμ°λ μ»΄ν¨ν
μ μ»΄ν¨ν
μ νλμ¨μ΄ κ΄μ μ΄ μλ μννΈμ¨μ΄ κ΄μ μμ νμ©νκ² ν΄μ£Όλ κ²μ΄λ€! ν΄λΌμ°λ μ»΄ν¨ν
μλΉμ€μ νΉμ§ μ»΄ν¨ν° μμμ μ΄κΈ° ꡬ맀 μμ΄ νμ ν λ λ§λ€ λμ¬ ν μ¬μ©νλ μλΉμ€μΈν°λ·μ ν΅ν μλΉμ€ μ 곡μ
체 μ»΄ν¨ν°λ‘ μ°κ²°κ³ΌκΈμ μκ°λΉ μ΄λ£¨μ΄ μ§ (ex. CPU 4μ½μ΄, 16κΈ°κ° λ©λͺ¨λ¦¬λ μκ°λΉ 20μΌνΈ : μ κΈ°μΈμ λΉκ΅)μ»΄ν¨ν
μμμ μ μ§λ³΄μ, κ΄λ¦¬ λΆλ΄μ λμ΄ μ€μ»΄ν¨ν
μμ λΏ μλλΌ λ€μν ννμ μ¬μ©μ μΉνν μλΉμ€κ° μ 곡λκ³ μμ μ΄λ κ² ν΄λΌμ°λ μλΉμ€ μ 곡 μ
체λ μμ λ° νμ μν..
νλ‘μ νΈλ₯Ό λ°°ν¬νλ μ€ AWS EC2μμ λ©λͺ¨λ¦¬ λΆμ‘± νμμΌλ‘ ssh μ μμ΄ μλλ μν©μ΄ λ°μνλ€...(ν리ν°μ΄ μ¬μ©μ€) ν리ν°μ΄λ‘ μ¬μ©νκ² λλ t2.micro μΈμ€ν΄μ€ μ νμ λ¨μ΄ 1GBμ΄κΈ° λλ¬Έμ λ©λͺ¨λ¦¬ λΆμ‘±νμμ΄ μΌμ΄λ μ μλ€! => swap fileμ μ΄μ©νμ¬ swap memory ν λΉμ ν΄λ³΄μ!(νμ¬ μμ±ν EC2λ ubuntu νκ²½μ) EC2 λ¨μ΄ κ°λ μ°ΌκΈ° λλ¬Έμ μ€μ λμ€ν¬μ μ©λμ μ΄μ©νμ¬ λΆμ‘±ν λ©λͺ¨λ¦¬λ₯Ό λ체ν 곡κ°μ swap memory λΌκ³ ν¨! => λ³΄ν΅ swap memoryλ ν λΉλ λ©λͺ¨λ¦¬μ 2λ°°λ₯Ό μΆμ²νκ³ μλ€κ³ ν¨! μ€μ λ©λͺ¨λ¦¬λ RAMμ λμ νλ κ²μ΄ μλλΌ, RAMμ΄ λΆμ‘±ν λ μμλ‘ μ¬μ©νλ λΉμ λ©μ»€λμ¦μΌλ‘ μκ°νλκ² μ’μ=> λμ€ν¬μ μ μ₯λ μ€μ λ©λͺ¨λ¦¬λ R..
EC2μ mysqlμ dockerλ₯Ό μ΄μ©ν΄μ μ¬λ €λ³΄μ https://hanjungyo.tistory.com/74 [Spring Boot] Dockerλ₯Ό μ΄μ©ν΄ EC2μ λ°°ν¬ν΄λ³΄κΈ°EC2 μΈμ€ν΄μ€ μμ± λ°©λ²μ μ΄μ ν¬μ€ν
μ μ°Έκ³ ν΄μ£ΌμΈμ!λ‘컬μμ Docker μ€μ Jar νμΌ λΉλνκΈ° λ³΄ν΅ λΉλλ₯Ό ν λ ./graldew clean build λ₯Ό λ§μ΄ λ΄€μν
λ° μ΄λ²μλ ./gradlew clean bootJarλ₯Ό ν΅ν΄ Spring Bhanjungyo.tistory.com EC2μ dockerκ° μ€μΉλμ΄μμ§ μλ€λ©΄ μ λ§ν¬μ docker μ€μΉνκΈ° λΆλΆμ μ°Έκ³ EC2μ sshλ‘ μ μμ νκ³ MySQL Docker Image λ€μ΄λ‘λ sudo docker pull mysql // μ μΌ μ΅μ λ²μ λ€μ΄λ‘λ// ..
μλμ°μμ vscodeλ₯Ό μ¬μ©νμ¬ κ°λ°μ€μΈλ°ν°λ―Έλμμ EC2 μλ²(ubuntu)μ μ μνλ €κ³ λͺ
λ Ήμ΄λ₯Ό μ³€λλ°....!!!! Permissions for 'key.pem' are too openμλ¬κ° λ°μ....π« μ λ§ 2μκ°μ λ ꡬκΈλ§μ νκ±° κ°μλ° μ°μ λ°μ μμΈμ μλμ°μμ ubuntu EC2λ‘ μ°κ²°ν μμ pemνμΌμκΆνμ΄ λ무 λκ² λΆμ¬ λμ΄ EC2μμ ν€λ₯Ό κ±°λΆνλ κ²μ΄μλ€ => μλμ°μμ μ€μ λ 보μ κΆνμ΄ μλμΌλ‘ pemνμΌμ μ μ©λμ΄ μ€μ λ λͺ¨λ μ¬μ©μκ° pemμ κΆνμ κ°κΈ° λλ¬Έ ν΄κ²° λ°©λ²μ 2μκ° λμ μ°Ύμ κ±°μΉκ³ λ κ½€ κ°λ¨..? νμ 1. pem νμΌμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ λλ¬ μμ±μ λ€μ΄κ° ν 보μνμμ κ³ κΈμ ν΄λ¦ 2. μμ μ¬μ© μν¨μ ν΄λ¦("μ΄ κ°μ²΄μμ μμλ μ¬..