[Serverless Framework with Python] 환경 구축에서 간단한 API 개발까지 (2) - AWS 셋팅 및 Serverless 연동
이전 글에 이어서 계속 진행됩니다. 이전 Serverless Framework 환경 구축 글 링크를 하단에 달아두었습니다.
이전 글 : [Serverless Framework with Python] 환경 구축에서 간단한 API 개발까지 (1) - 설치 및 환경 구축
AWS 셋팅 및 Serverless 연동
Serverless Framework는 서버리스 API를 구축하기 위해 AWS(혹은 Azure, GCP 등의 클라우드 서비스) 여러 서비스를 일일이 손 봐야 되는 상황을 피하게 해주고, 나아가 각 API에서 사용되는 패키지 및 DB 연동까지 통합해서 관리할 수 있게 해주는 강력한 툴입니다.
하지만 이렇게 관리를 하고 싶다면 제일 먼저 AWS 콘솔과 연동을 진행해야 합니다.
진행 과정은 그리 어렵지 않지만, 제일 먼저 AWS 계정을 생성해야 합니다. AWS 계정을 만드는 법은 구글링 하면 쉽게 나오니 이 부분은 넘어가도록 하겠습니다.
AWS 계정을 생성하셨으면 바로 로그인 하여 콘솔로 진입합니다.
콘솔에 접속하면 우측 상단에 서비스를 선택할 수 있는 코너나 화면 중앙부에 서비스를 검색할 수 있는 박스가 있습니다. 편하신 곳을 선택하여 IAM을 검색합니다.
IAM이란 Identity and Access Management의 약자로, 외부에서 AWS 서비스와 연동 시 권한을 부여할 수 있는 서비스입니다. 어차피 혼자 이용할 텐데, AWS 서비스의 전체 권한을 주고 자유자제로 이용하면 별 문제 없을 것 같습니다만, 회사 계정 이거나 여럿이서 작업하는 환경이라면 모든 권한을 주는 데는 보안상의 이슈가 발생할 수도 있을 것입니다.
이러한 부분을 통제하기 위해 IAM에서 각 사용자 및 그룹마다 다른 권한을 부여할 수 있습니다.
일단 저희는 1인 개발을 지향(...)하고 있으므로, AWS 서비스를 모조리 이용할 수 있도록 전체 권한을 받아오도록 하겠습니다.
IAM 화면의 좌측을 보시면 여러 카테고리가 보일 것 입니다. 많은 카테고리 중 사용자 카테고리를 클릭합니다.
예시로 올려드린 화면 보시면 이미 사용자가 존재한 것을 확인할 수 있습니다. 제가 개인적으로 서버리스를 공부할 때 만들었던 사용자이기에 무시하셔도 되고, 만약 AWS 계정을 처음 만들고 접속하신 분들이라면 어떠한 사용자도 존재하지 않을 것 입니다.
상단의 사용자 추가를 클릭하여 사용자를 생성합시다. 사용자 추가는 크게 5가지 단계로 진행됩니다.
1) 사용자 세부 정보 설정 : 사용자 명 및 어떻게 AWS 서비스에 접근할 지 선택
2) 권한 및 권한 경계 설정 : 사용자가 AWS 어떤 서비스에 얼마나 접근할 수 있을 지 권한 부여
3) 태그 추가(선택 사항) : 사용자의 정보를 키-값 형태로 입력
4) 검토 : 이전 선택사항을 체크
5) 사용자 만들기 : 선택한 사항으로 사용자를 생성 및 사용자에 연동할 수 있는 액세스 키 제공
그럼 차근차근 진행하겠습니다.
1단계는 사용자 세부 정보 설정창입니다. 사용자의 이름과 엑세스 유형을 선택할 수 있는데요, 편의상 serverless-test(혹은 sls-test)로 만들어서 진행하도록 하겠습니다.
엑세스 유형은 어떤 방식으로 AWS에 접근할 지를 설정하는 단계입니다. 저희는 IDE와 터미널로 AWS 서비스에 접근할 예정이니 상단의 '프로그래밍 방식 엑세스'를 선택하겠습니다.
다 마치셨으면 2단계로 넘어갑니다.
2단계는 본격적으로 권한을 부여하는 단계입니다. 기존에 생성한 그룹에 새로이 사용자를 추가하거나, 이미 존재하는 사용자의 권한을 복제하거나, 혹은 기존 정책에 직접 권한을 선택해서 부여할 수도 있습니다.
지금은 기존 정책 직접 연결을 선택하겠습니다. 선택하시면 바로 아래에 여러 정책들이 테이블 형태로 나타나게 되는데요, 여기서 사용자에게 어떤 권한을 부여할 지 선택할 수 있습니다.
이번 글에서는 AdministratorAccess 권한으로, 'AWS 관리자' 권한을 부여하겠습니다. 만약 다른 개발자들과 협업하거나, 그룹 단위로 개발을 진행할 때는 그룹 형태나 일일이 권한을 선택해서 부여하도록 합시다.
선택을 마쳤으면 다음 단계로 넘어갑니다.
3단계인 태그 설정은 생성 하려는 사용자의 정보를 부여하는 단계입니다. 설명에 나와있듯, 이메일 주소라든가 직책 등의 정보를 태그로 포함시켜, 사용자가 누구인지 인지하도록 돕습니다.
이번 과정에서는 따로 태그를 선택할 필요가 없습니다. 그러므로 아무것도 생성하지 않고 넘어가도록 하겠습니다.
이제 거의 다 끝나가고 있습니다. 4단계는 검토 단계로, 이전 단계에서 선택한 사항들을 체크할 수 있습니다. 만약 수정하고 싶은 부분이나 잘못 선택한 부분이 있을 경우, 해당 단계로 돌아가 수정할 수 있습니다.
사진대로 설정이 되어있다면 제대로 설정한 셈입니다. 사용자 만들기 버튼을 누릅니다.
사용자 만들기가 완료되었습니다. 아래 그림을 보시면 사용자 명과 액세스 키 ID, 비밀 엑세스 키가 적혀있는 것을 알 수 있습니다.
비밀 엑세스 키의 '표시'를 누르면 암호화된 키를 볼 수 있습니다.
이 두 개의 키를 꼭 안전한 곳에 기입해두고 보관하도록 합시다. 복붙하는 것이 귀찮다면 상단의 .csv 파일 다운로드 버튼을 눌러봅시다. 액세스 키가 기입되어 있는 csv파일이 다운로드됩니다. 해당 파일을 잘 보관하시기 바랍니다.
IAM 설정을 마쳤습니다. 이제 serverless와 AWS 서비스의 연동을 진행하겠습니다.
터미널(cmd)에 접속해 아래의 명령어를 입력합니다.
serverless config credentials —provider aws —key { 엑세스 키 ID } —secret {비밀 엑세스 키}
저기서 중괄호 부분에 이전에 발급받은 엑세스 키 ID와 비밀 엑세스 키를 차례로 입력합니다. 중괄호는 빼고요.
그러면 serverless에 새로운 credentials 'default' profile이 생성됩니다.
이후 serverless Framework에서 개발을 진행할 때, 따로 설정을 해주지 않는 이상 'default' profile을 통해 AWS 서비스와 연동하게 됩니다.
만약 다른 권한을 가진 profile을 생성하거나 기존 profile의 내용을 바꾸고 싶다면 다음 명령어를 입력합니다. 한 번 profile이 생성되면 위의 명령어로는 수정할 수 없으니 부디 아래 방법을 사용하시기 바랍니다!
1) 새로운 profile 생성
serverless config credentials —provider aws —key { 엑세스 키 ID } —secret {비밀 엑세스 키} -n <profile name>
-> profile name 쪽에 생성하고자 하는 프로필 명을 입력해주세요.
2) profile 덮어쓰기(overwrite)
serverless config credentials —provider aws —key { 엑세스 키 ID } —secret {비밀 엑세스 키} -o
이로써 AWS 계정과의 연동이 마무리되었습니다!
지금까지 AWS 연동 과정이었습니다.
다음 글에서는 serverless Framework에서 지원하는 hello-world 템플릿을 생성하고 deploy까지 하는 과정을 진행하도록 하겠습니다.










댓글
댓글 쓰기