AWS 배포 완벽 가이드 | Section 9, 10

김민지·2024년 12월 25일

Section 9 | Cloud Security 101

Virtual Private Network (VPC) & Subnets 알아보기

  • Virtual Private Network (VPC) ⊃ Available Zones ⊃ subnets

Load balancer 더 자세히 알아보기: listener rules & target groups

  • listener rules: HTTP로 들어온 걸 443, HTTPS로 redirect하는 규칙 등 경로에 따라서, 혹은 아예 다른 포트로 받는 등 다양한 규칙을 만들 수 있음
  • target groups: Load Balancer가 redirecting을 해주기 위해서 Private IP들의 리스트를 가지고 있음.
    서버를 생성/삭제할 때마다 결국은 target group을 업데이트해줘야 함

방화벽: Security Groups

  • Inbound (외부로부터 요청을 받을 때), Outbound (서버 내부에서 외부로 요청을 보낼 때)

IAM (Identity and Access Management) user 만들어서 권한 제한 해보기

  • AWS에 처음 로그인할 때 아래와 같이 Root user와 IAM user로 나뉜다. 예를 들면 깃허브 리포지토리 만들 때 처음 생성한 사람이 root user이고, 그 후 root user에게 각자 권한을 받아서 (예를 들어 A는 읽기 권한만, B는 쓰기, 레포 삭제 권한도 등등) 들어온 user들을 IAM user라고 한다고 비유할 수 있다.
  • 로그인 후 IAM 에 들어와서 User에 들어오기

  • 새로운 User 만들기: ecs 관련 모든 걸 총괄하는 admin을 만든다고 가정하고 이름도 ecs-admin이라고 지어보자





  • 순서대로 ID, username, PW
  • 로그아웃하고 IAM user로 로그인해보기
  1. 콘솔 로그인 URL로 접속하기
  2. 사용자이름, 콘솔암호 차례로 입력하고 로그인
  • 권한 중 AdministerAccess는 root user나 다름없이 모든 권한을 허용함
  • 이것저것 user 권한 상 제한되는 것들이 있음.. 이걸 어떻게 선택하지? 이후에 다시 root user로 들어가서 추가로 권한을 부여하면 됨.

Section 10 | Container Orchestration

Kubernetes vs Elastic Container Service (ECS) vs Elastic Beanstalk

  • Kubernetes: 오픈소스 made by 구글, 로컬에서 구현 가능
  • ECS: 로컬에서는 구현 불가, AWS에서 돌릴 때 Kubernetes에 비해 상대적으로 저렴 ✅
  • Elastic Beanstalk: 로컬에서는 구현 불가

AWS ECS : hello world

  • Docker Hub에 있는 Public image 중 하나인 Engine X (nginx)를 사용해서 ECS에 배포하기
  • 로컬 터미널에서 docker run -it -p 80:80 nginx으로 실행해보기
    (여기에서 80포트가 이미 window 시스템 프로세스에 의해 점유되어있다는 문구가 떠서 부득이하게 4000포트로 우회함. 터미널에서는 성공적으로 run 후 http//localhost:4000 에서도 연결 확인함.)

  • 이제는 AWS에서 해보자!
  1. AWS 창에서 ECS로 검색해서 들어가기
  2. 클러스터 → 클러스터 생성 누르기
  3. 클러스터 이름은 nginx-cluster1, 인프라는 AWS Fargate로 설정한 후 나머지는 디폴트로 두고 생성
  4. 생성된 클러스터로 들어와서 task definition 클릭 후 nginx-definition 이라는 이름의 task definition 생성
  5. 그 아래에 있는 컨테이너도 설정해주기: 이름 nginx만 설정하면 됨
  6. 아래와 같이 들어가서 task 설정하고 생성하기



  7. 배포 완료 확인하기

  • 그냥 종종 AWS 내부 네트워크 문제로 실패하기도 하나보다.. 스택 삭제하고 다시 시도하면 됨

Cloudwatch 이용해서 Task 단위 로그 확인하기 그리고 관련 주의사항!

  • Loggroup은 디폴트로 Task 생성하기 전에 무조건 있어야 함 (원래 있음 삭제하면 안됨)

AWS ECS: Service 사용해서 여러개의 Task 생성하고 Load balancer 연결해주기

  1. Cluster에 들어가서 Service 생성하기로 들어가기
  2. Service 생성하기


    loadBalancer 추가해줘야 함

  3. 생성완료된 것 확인!
  • 이전과 달리 이번에는 Task의 PublicIP로 접속해도 접속할 수 없음
  1. Load balancer로 접속해보자
  2. Security groups 추가하기

  3. 이제 아래의 도메인으로 접속하면 접속가능함

AWS ECS Cluster 삭제하기

  1. Service 삭제
  2. task 삭제 확인
  3. cluster 삭제

0개의 댓글