SKN10-15-6

최수헌·2025년 4월 19일
post-thumbnail

오늘은 AWS 하는 날~

오늘하는거 강사님 강의자료에 다 나와있는거임.
하다 막히면 그거 보는거 좋을듯.

Preview

  1. AWS 기초
  2. IAM
  3. AWS CLI
  4. Aurora and RDS
  5. 삭제 및 정리
  6. CI/CD

AWS 기초

AWS 왜 생김?

아마존이라는 물건 파는 외국 회사가 있었음.
아마존의 매출은 블랙프라이데이 때 가장 높았음.
그러면 아마존에 접속하는 사람이 많아지니까 서버를 증설해야했음.
근데 1년에 2주인 블랙프라이데이를 위해서 서버를 와장창 늘리자니 너무 비효율 적인것 같음.
필요한 상황에서는 증설하고, 필요없는 상황에서는 축소할 수 있는 클라우스 컴퓨팅 시스템을 만든거임.

처음에는 EC2 만 서비스 했었음.
점점 사용자들의 요구사항이 많아지면서 S3, IAM 등의 서비스가 추가되었음.

AWS 왜 씀?

단편적인 예

우리가 서비스 하나 만들었음.
작은 물리적인 서버하나 마련해서 배포했음.
그런데 폭풍적인 인기를 끌어서 현재 서버로는 감당할 수 없는거임.
아무래도 서버를 증설해야 할 것 같음.
그런데 너무 위험성이 큰 것 같음.
물리적인 서버 증설했다가 나중에 이용자가 줄어들면 어떻게 해야할지 모르겠음.
증설했다 하더라도 이걸 관리하기 쉽지 않을것 같음.

이런 상황에서 AWS는 컴퓨팅 자원을 임대를 해주는 서비스임.
필요한 상황에서는 증설하고, 필요없는 상황에서는 축소할 수 있게된거임.

글로벌 배포 편리

현재 AWS의 컴퓨팅 시스템은 전 세계에 퍼져있음.
그 말인즉, 한국의 서비스를 전 세계 어디로든지 딸깍 한 번으로 바로 배포할 수 있는거임.
삼성도 글포벌 배포하려고 AWS 사용함.

무료인 서비스 짱 많음.

Lambda 월 100만 요청 무료 -> 일단 혼자서는 절대 다 못 씀.
Amazon Cloud Front -> Apache 유료로 사용하는 것보다 이게 더 나음.
1년 무료 서비스들 -> 계정 돌려쓰면 이론상 평생 무료임.
등...

서버관리 알아서 해줌.

물리적인 서버를 직접 운영하면 서버관리자가 따로 있어야 하지만,
AWS 클라우드 컴퓨팅을 사용하면 AWS에서 완벽하게 서버를 관리해주기 때문에 우리는 그냥 어플리케이션 개발에 집중할 수 있음.

이게 AWS 리전임. 리전은 하나 이상의 개별 데이터 센터가 있음.
각 데이터 센터는 약 100km 정도 떨어져서 위치하고 이론상 위치를 알 수 없음.
데이터 센터에 테러 같은 상황이 발생할 수 있기 때문에 이름과 위치를 숨기고 그것마저도 분산 되어있는거임.

IAM

AWS의 다양한 서비스에 접근하는 권한을 제어할 수 있는 조금 특별한 서비스임.
IAM을 사용하는 가장 큰 이유는 보안임.
이거 잘 다뤄야 해킹 안 당함.

사람은 그룹을 통해 권한을 부여받고,
어플레케이션은 역할을 통해 권한을 부여받음.

root 계정

내 AWS 계정의 가장 최상위의 계정이라고 생각하면 됨.
root 계정은 보통 계정, 비용을 관리하는 최상위 계정이라고 생각하면 됨.
root 계정으로 다른 admin 계정을 만들 수 있음.
이 root 계정은 admin 계정의 어플리케이션에 접근할 수 있는 권한을 제어할 수 있음.
만약 admin 계정이 해킹 당하더라도 접근할 수 있는 어플리케이션의 제약이 있고, 사용자는 root 계정으로 해당 admin 계정을 삭제할 수 있음.
근데 root 계정 해킹 당하면 답없음.

role 부여

위 그림처럼 Role이라는 것에 권한을 부여하고, Role을 사용자에게 부여하는것이 맞음.
권한을 바로 사용자에게 부여하는것은 보안, 관리적으로 쉽지 않은길이 될 거임.

AWS CLI

대충 VScode나 Cursor와 같은 에디터에서 내 AWS 계정에 접속할 수 있게 해주는 기능임.

IAM의 사용자에서 액세스 키를 만들고 aws configure 파일에 등록해주면 에디터와 연결할 준비가 된거임.
에디터에서도 AWS Toolkit이라는 Extension을 설치해야함.

아래 처럼 PowerShell에서 등록해주면 됨.

이러면 아래 경로에 관련 파일이 생김.

아래 처럼 에디터에서도 확인하고 수정할 수 있음.
나는 액세스키 2개 입력해서 2개 등록되어있음.

내가 만든 뭔가가 있다면 왼쪽 사이드바에서 확인할 수 있음.

Aurora and RDS

AWS RDS로 MySQL 서버를 만들고 우리 컴퓨터의 DBeaver에 연결해볼거임.
대충 RDS 하나 만들어줌.

들어가보면 엔드포인트라인게 있음.

Server Host, Username, Password를 입력해줌.

이거 입력해도 아직은 Test Connection이 연결되지 않을거임.
왜냐하면 RDS의 방화벽을 뚫어주지 않았기 때문임.

다시 AWS로 돌아와서 EC2의 보안 그룹을 보면 이미 하나 있을거임.
이거는 그냥 AWS 계정이 생성되었을 때부터 있던거임.


여기에서 뭔가 인바운드 규칙(들어가는 규칙)을 추가해줘야 우리 컴퓨터에서 접근할 수 있음.


우리 DB는 MYSQL이고, 3306포트로 들어오는 모든 IP(0.0.0.0)를 허용해줌.


인바운드 규칙이 추가된 것을 볼 수 있음.

이제 DBeaver에서 Test Connection을 해보면 연결 될 거임.

삭제 및 정리

아까 추가해준 인바운드 규칙 삭제해줌.

Aurora and RDS도 삭제해줌.
이 때, 최종 스냅샷 생성 체크박스가 있는데 DB를 삭제해도 안에 저장되어있는 내용을 어딘가에 백업해두는 거임.
우리는 데이터 저장해놓은거 없으니까 그냥 체크박스 해제하고 삭제해주면 됨.

CI/CD

설명적을 틈이 없음.
그냥 강의자료 보는게 좋음.

0개의 댓글