얼마 전 새롭게 시작한 스터디에서 프로젝트를 올릴 서버가 필요해졌고
사다리를 탄 결과 내가 aws계정을 담당하게 되었다
aws관련해서 보안, 과금 이슈는 이전부터 들어왔기 때문에
초기에 공부를 해서 제대로 설정을 해두자라는 생각이 들어 자료를 찾아보았다
처음에는 한 기업의 유료 서비스일뿐이라고 생각했지만
그 내용은 관련 책이나 자격증이 있을 정도로 방대했고
결국 유튜브에서 초기 설정에 관한 강의를 찾아 정리하기로 하였다
참고한 영상:
https://www.youtube.com/watch?v=JjiYqBl2328&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=1
클라우드 컴퓨팅이란 IT리소스를 인터넷을 통해 온디맨드로 제공하고
사용한 만큼만 비용을 지불하는 것을 말한다
온디맨드: 수요에 반응함
데이터 센터란 서버가 모여있는,
어플리케이션의 서버를 호스팅하는 실제 시설을 뜻한다
데이터 센터에는 몇 가지 문제가 있었는데
데이터 센터의 문제점
이런 문제로 인하여 기업들은 클라우드 환경을 구축하기 시작한다
타지를 갈 때, 숙소를 내가 직접 지을지, 호텔에 머물지를 선택하는 것과 비슷하다
내가 숙소를 짓는다면 굉장한 자원과 시간이 들어가는데 비해
호텔은 비용만 지불하면 필요한 만큼 숙박을 제공받을 수 있다
또한 서버를 공동구매하는 효과로 비용이 절감되고
서버의 사용량을 수요에 따라 유연하게 조절하여, 필요한 만큼만 사용할 수 있다는 장점이 있다
자격증 따면 좋다는 내용
클라우드 컴퓨팅의 분류 유형은 크게 두가지로 나눌 수 있다
클라우드에서 무엇을 제공하는지에 따라 나누는 클라우드 컴퓨팅 모델
클라우드 컴퓨팅을 어떻게 제공하는지에 따라 나누는 클라우드 컴퓨팅 배포 모델이 있다
Infrastructure as a Service의 약자
Network, Storage, Computing을 제공,
OS와 APP은 직접 설치하여 사용해야 한다
가상의 컴퓨터를 임대하는 것과 비슷하다
예)EC2
Platform as a Service의 약자
Network, Storage, Computing, OS+runtime환경을 제공,
APP은 직접 설치하여 사용해야 한다
예) Firebase, Google App Engine 등
Software as a Service의 약자
Network, Storage, Computing, OS+runtime환경, APP을 모두 제공
서비스 자체를 제공하기 때문에 별도의 세팅 없이 서비스 이용이 가능하다
예)Gmail, DromBox, Slack, Google Docs등
AWS 서비스가 제공되는 서버의 물리적 위치
각 리전에는 고유의 코드가 부여되고 리전별로 가능한 서비스가 다르다
리전별로 지연 속도, 관련 법률, 제공하는 서비스가 다르기 때문에 적절한 리전을 선택하는 것이 좋다
리전의 하부 단위이다
리전은 반듯이 2개 이상의 가용영역으로 구성되어 있다
하나 이상의 데이터 센터로 구성되어 있다
리전간의 연결은 매우 빠른 전용 네트워크로 연결되어 있다
재해를 대비하여 반둣이 물리적으로 일정 거리 이상, 100km이내에 위치한다
사용자마다 가용 영역과 연결된 데이터 센터가 다르다
CDN등을 빠르게 제공하기 위한 기다
전 지역에 제공되는 글로벌 서비스와
특정 리전에서 제공되는 서비스는 다음과 같다
글로벌 서비스: cloudFront, IAM, Route53, WAF
리전 서비스: 대부분의 서비스, S3(S3은 글로벌 서비스이나 데이터는 리전에 종속됨)
aws의 모든 리소스는 ARN이라는 고유의 아이디가 부여된다
aws계정에는 크게 두 종류가 있다
첫 번째로, 계정 생성 시 만들어지는, 모든 권한에 접근 가능한 루트 계정
두 번째로, 부여한 권한만을 사용할 수 있는 IAM계정이 있다
IAM 계정은 루트 계정을 만들 때 주어진 아이디로 로그인한다
IAM계정은 외부로부터 탈취당했을 때,
IAM계정 삭제를 통한 제어가 가능하지만 루트 계정은 조치가 어렵다
따라서 루트 계정의 사용은 최소화하는 것이 좋다
따라서 루트 계정으로 관리용 IAM계정을 만들고
그것을 통해 IAM계정들을 관리하여
루트 계정의 사용을 줄이는 것이 가장 좋은 방법이다
단 빌링 관련 권한은 별도로 루트 계정에서의 허용이 필요하다
보안을 위하여 구글OTP사용을 통해
루트 계정과 관리용 IAM계정에 MFA를 설정해줘야 한다
로그인 후 리전을 항상 서울로 바꿔줘야 한다
메뉴창 > 보안 자격 증명 > MFA설정을 들어간 뒤
모바일 기기를 사용한 보안 인증을 위하여 가상 MFA 디바이스를 선택한다
선택 후 계속 버튼을 누르면 QR코드를 확인할 수 있는 창이 나온다
그 QR코드를 통해 구글OTP앱과 연결이 가능하다
이 때 QR코드는 이미지 파일로 안전한 곳에 저장해주는 것이 좋다
휴대폰을 분실할 시 QR코드가 없다면 계정에 관한 조치를 취하기 매우 어려워지기 때문에
이 때 저장해둔 QR코드를 사용할 수 있다
죄측 슬라이드에서 대시보드를 클릭한다
우측 메뉴의 계정 별칭을 원하는 별칭으로 변경한다
죄측 슬라이드에서 사용자를 클릭한다
사용자 이름을 입력하고 엑세스키, 암호를 체크 후 비밀번호를 입력한다
이 때 비밀번호 재설정 필요칸을 체크하면
첫 로그인 시 비밀번호 변경이 가능하므로
다른 사람에게 IAM계정을 생성할 때 체크해주면 좋다
권한 설정에서 최상단에 있는 항목을 체크하면
해당 계정에 빌링 기능을 제외한 모든 권한을 부여할 수 있다
생략
사용자 추가 성공 시
엑세스 키 ID와 비밀 엑세스 키를 확인할 수 있는 창이 나온다
재발급이 번거로으므로 .csv를 다운받는 것이 좋다
⭐️비밀 엑세스 키가 노출되면 계정이 노출되는 것이므로 절때 외부로 노출되서는 안된다
관리자 IAM계정 또한 MFA설정을 해주어야 한다
사용자에서 생성한 admin계정을 클릭한 뒤
보안 자격 증명을 들어가 MFA설정을 해준다
IAM계정의 QR코드는 탈취당할 시 삭제처리가 가능하기 때문에
QR코드를 저장할 필요는 없다
IAM을 사용하면 AWS서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있다
AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 엑세스를 허용 및 거부할 수 있다
IAM의 특징:
IAM의 구성:
모든 것은 정책으로 구분되며,
상세한 내용까지 권한 부여가 가능하다
IAM 모범 사용 사례: