이전에 진행했던 프로젝트에서 클라우드 서비스를 Heroku에 올려서 배포하는 Paas 방식을 사용했습니다. 코드만 작성하면 배포 관련된 부분은 Heroku에서 관리 해줬기 때문에 편리하긴 했지만, 서버가 현재 어떻게 작동하고 있는지 확인하기 어렵고 통제를 할 수 있는 권한이 매우 적은 단점이 있었습니다.
이에 처음부터 Infra를 구축하고자 Sass 서비스를 찾아보게 되었고, AWS 서비스를 통해 서버를 배포하기로 하였습니다.
AWS를 이용하기 전 먼저 Infra 및 AWS 서비스에 대한 사전 지식이 어느정도 필요했습니다.
Infra를 구축하면서 알게 된 위의 내용을 정리하고, 서비스를 AWS에 배포하는 마무리 단계까지 가보겠습니다.
<서비스 요약>
: 최종적으로 EC2에 서버를 배포할 예정.
IAM은 AWS와 기타 클라우드 서비스에서 사용하는 Access Managament 시스템입니다.
필요한 이유: 만약 회사에서 AWS를 통해 서비스를 제공하는데, 루트 권한으로 모든 사람들이 모든 권한을 가지면 보안적으로 매우 취약함.
즉, 처음 루트 사용자로 가입을 하면 사용자 or 그룹을 만들어서 하위 그룹에게 제한된 권한만을 주는 방법입니다.
로그인 화면에서 루트, IAM 사용자를 구분하여 로그인 할 수 있습니다.
일반적으로 루트 사용자를 통해 IAM 권한을 가진 사용자를 생성하고, IAM 사용자를 통해 관리하는게 보안적으로 좋다고 합니다. :>
이미 프로젝트를 진행하면서 만든 사용자가 있지만, 새로운 사용자에게 EC2, GateWay 권한을 새로 부여하겠습니다.
CLI를 통해 AWS API를 호출하진 않기 때문에, 암호를 통해 사용자를 생성하고,
그룹, 기존사용자 권한, 기존 정책 연결 선택지가 있습니다.
그룹에 사용자 추가: 이미 만들어둔 정책 그룹에 사용자 추가.
기존 사용자에게 권한 복사: 이미 만들어둔 다른 사용자의 정책을 그대로 복사.
기존 정책 직접 연결: 새로운 권한을 부여.
저는 일단 EC2, GateWay에 대한 권한만 주기 위해 EC2, GateWay의 권한만 선택했습니다.
위와 같이 사용자를 만들면 처음 로그인 화면에서 IAM 사용자 로그인을 할 수 있습니다.
로그인 화면
로그인 완료 상태
그럼 이 사용자를 그룹, 팀원에게 넘겨주면 EC2와 GateWay 외의 다른 서비스는 사용 할 수 없기 때문에 보안성이 높아집니다.
추가로 권한을 변경하거나, EC2 내에서도 리소스 마다 권한을 다르게 주고 싶다면 IAM 사용자의 권한에서 JSON 형태의 권한을 변경하면 됩니다.
개인적으로 만들어둔 리소스가 있는데 팀원이랑 AWS 리소스를 공유해야 하다보니 어떻게 해야하나 싶었는데, 역시 이미 서비스가 있었습니다.
IAM 서비스를 알기 전에는 모든 서비스를 루트 계정으로 만들었었는데 보안적인 측면을 보면 혼자 사용하더라도 사용자를 만들고 사용하는게 좋을 것 같다고 생각합니다!!
그럼 만들어둔 사용자를 통해 다음에는 서비스를 배포하기 위한 VPC, AZ 설정을 해보겠습니다.
+ 추가 할 내용이나 부족한 부분이 있다면, 댓글 작성 부탁드립니다! :)