안녕하세요.
베스핀글로벌 클라우드 기술지원팀 이주원 입니다.
AWS Perspective 서비스는 AWS 클라우드 서비스의 워크로드를 시각화 하는 솔루션으로 관리하고자 하는 계정을 Import 하여 구성되어있는 리소스를 구성하거나 원하는 파일/아키텍처 다이어그램 등으로 Export 할 수 있습니다.
이번에는 AWS Perspective 를 구현하고 사용하는 방법에 대해 다루고자 합니다.
1. AWS Perspective 구현
AWS Perspective 는 기본적으로 제공하는 AWS 서비스가 아닌 필요에 의해 구현이 필요한 솔루션 서비스 입니다.
AWS 에서 제공하고 있는 문서를 통해 AWS Perspective 를 구현하고 사용해볼 수 있습니다.
AWS Perspective : https://aws.amazon.com/ko/solutions/implementations/aws-perspective/
위 문서에서 'AWS 콘솔 시작' 을 통해 Perspective 솔루션을 구현하고자 하는 계정으로 구현을 시작할 수 있습니다.
1) 템플릿 지정
생성을 시작하면 Perspective를 구현하고자 하는 계정에서 CloudFormation 서비스로 연결되어 템플릿을 제공하고 있는 S3 URL 로 자동 지정 됩니다.
2) 스택 세부 정보 지정
다음 스택 세부 정보 지정에서 파라미터를 설정하는데 이 때 각 계정의 기존 환경에 맞게 올바른 값을 설정해주어야 합니다.
아래는 주요 확인해야 하는 파라미터 입니다.
- AdminUserEmailAddress : AWS Perspective 생성 완료 후 완료 알림과 접속할 수 있는 admin 계정을 전달 받을 이메일 주소를 입력합니다.
- AlreadyHaveConfigSetup : AWS Config set-up 이미 존재하는지 여부입니다
확인방법)
CLI 를 통해 아래 명령어를 실행
aws configservice get-status
아래와 유사한 모습의 결과가 나오면 이미 set-up 되어있는 것으로 해당 파라미터 값을 "Yes" 로 변경 / 그 외 올바른 명령어 실행이 되지 않을 시 Default 값인 "No"
- CreateAPIGatewayCloudWatchLogsRole : API Gateway 의 CloudWatchLogs 역할을 생성 여부를 선택하는 값으로 Yes 를 선택할 시 해당 Role 이 생성되고 기존 ApiGateway Accout CloudWatchLogsRoleArn 값이 있을 시 덮어쓰게 됩니다.
기존 값이 있는 경우 No 를 선택하면 생성하지 않고 그대로 사용하게 됩니다.
기존 역할이 있는 경우에도 덮어쓰기 때문에 주로 'Yes' 를 선택해주면 됩니다.
- CreateElasticsearchServiceRole : ElasticsearchServiceRole 생성 여부를 선택하는 값 입니다.
IAM 역할에 'AWSServiceRoleForAmazonElasticsearchService' 이 검색되는 경우 이미 존재하기 때문에 'No'를 선택해야 합니다.
검색되는게 없다면 해당 역할이 없는 것으로 'Yes' 를 선택하면 됩니다.
이 외 나머지 파라미터에 대해서는 Default 값으로 진행하여도 무방했습니다.
3) 스택 옵션 구성, 검토
스택 옵션 구성에서는 역할, 실패옵션, 고급옵션 등을 설정할 수 있습니다.
역할은 따로 선택하지 않으면 연결되어있는 IAM 계정의 역할로 생성하게 됩니다.
마지막 검토단계에서 승인이 필요한 체크박스를 체크한 후 '스택 생성' 을 통해 생성을 시작합니다.
4) 생성
스택 생성이 시작 되면 마스터 템플릿과 메인 템플릿이 생성되고 중첩 스택으로 필요한 여러 서비스 스택이 생성됩니다.
생성되는 과정에서 각 중첩 스택 모두 생성이 되야 마스터 및 메인 템플릿이 생성 완료되며 최종적으로 정상 생성이 됩니다.
* 생성 실패 시 실패한 스택의 이벤트 확인을 통해 실패원인을 분석하고 재생성 해줍니다.
생성이 모두 완료되면 마스터, 메인 템플릿을 포함한 총 21개의 스택이 모두 CREATE_COMPLETE 상태가 됩니다.
2. AWS Perspective 서비스 접속 및 계정 Import
위 1번 과정을 통해 AWS Perspective 서비스가 정상적으로 생성 완료되면 2) 과정에서 입력한 메일 주소로 생성 완료 알림과 admin 계정/비밀번호를 전달해줍니다.
해당 admin 계정으로 사용해도 되며 필요 시 Perspective 스택으로 자동 생성된 Cognito 서비스의 User Pool 에 새로운 User를 생성하여 사용할 수 있습니다.
1) AWS Perspective 접속하기
생성된 스택 중 'Cloudfront Distribution' 스택에서 출력을 확인합니다.
해당 스택에 출력 값에 Perspective 서비스 접속 URL 이 나옵니다.
이 URL 에 전달받은 admin (또는 Cognito 로 생성한 User) 계정으로 접속합니다.
2) 계정 Import 하기
위 URL 과 전달 받은 계정으로 접속하면 연결된 계정이 아무것도 없기 때문에 가져온 Resource 가 없습니다.
이제 Import 를 통해 관리할 계정의 Resource를 가져옵니다.
처음 접속하면 Imported Region 화면이 나올 것 입니다.
해당 화면에서 Import 를 진행합니다.
Step 1 >
AWS CloudFormation 탭을 선택하여 Step1 부터 정보를 입력합니다.
Account Id : 관리할 계정의 Account ID
Account Name : 관리할 계정의 Account 별칭 (Root 사용자 이름 또는 계정 이름
Regions : 관리할 리소스들의 Region (복수 선택 가능)
3가지 항목 입력 후 Add 버튼 클릭으로 관리할 계정을 추가합니다.
Step 2 >
Step 2 에서는 관리할 계정에 필요한 Resource 모음 입니다.
당연하게도 관리할 계정에서 리소스 정보를 가져와야 하기 때문에 Role 등 해당 계정에도 배포해야할 Resource 들이 있습니다.
이 때 두가지 유형이 존재하는데,
Global resources 는 AWS Perspective 서비스를 구축한 계정 외 다른 계정의 리소스를 관리할 때 받을 리소스 모음 입니다.
Regional resources 는 AWS Perspective 서비스를 구축한 같은 계정내 리소스를 관리할 때 받을 리소스 모음 입니다.
해당 Templates를 다운로드 받아 해당 계정에 접속하여 CloudFormation 서비스에서 Templates 를 배포합니다. (이 부분은 Step 3에서 진행)
Step 3>
Step2 에서 다운로드 받은 Resources Template를 해당 계정 CloudFormation 에 Deploy 합니다.
위 Deploy 버튼을 통해 바로 계정으로 연결하여 배포할 수 있습니다.
Step 4>
배포가 완료된 후 Import 버튼을 클릭하면 관리 계정 Import가 완료됩니다.
3. Import 완료 후 AWS Perspective 사용해보기
2번 과정까지 진행하여 AWS Perspective 를 구축하고 관리할 계정을 Import 하였습니다.
아래 그림에서 보이듯 Import가 완료되면 Resources 에 시각화 할 수 있는 리소스들이 모두 표시됩니다.
또한, 리소스 정보는 아래 표시된 것과 같이 스케쥴에 따라 정보를 가져옵니다.
따라서 Import 한 바로 직후 해당 리소스가 표시되지 않을 수 있으며, 관리 계정의 리소스 정보가 변경되더라도 다음 스케쥴에 정보들을 가져와 표시합니다.
왼쪽 Resources 에서 리소스 들을 선택하면 오른쪽 시각화 화면에 표시됩니다.
리소스를 드래그하여 원하는 위치로 옮길 수 있습니다.
왼쪽 메뉴에서 필터 기능을 사용하면 원하는 리소스만 표시되도록 필터 기능을 수행할 수 있습니다.
필터 항목은 크게 Import 한 계정을 필터링 하거나 Resource Type 을 필터링 할 수 있습니다.
이 외에도 Action - Export 를 통해 PNG, CSV, JSON 파일 등으로 시각화한 자료를 export 할 수 있습니다.
또한, Drawio 기능은 AWS Architecture Diagram 서비스로 export 하여 사용할 수 있습니다.
결론.
오늘은 AWS Perspective 를 구축하고 관리 계정을 Import 하여 간단한 사용법을 알아봤습니다.
AWS Perspective 는 위에서도 언급 하였듯, 기본으로 제공하는 서비스가 아닌 솔루션화 하여 별도로 구현이 필요한 서비스 입니다.
구현 과정에서도 확인할 수 있듯이 솔루션을 구축 시 생성되는 스택별 리소스 및 서비스가 많기 때문에 사용 비용 또한 별도로 발생합니다.
따라서, 이러한 솔루션은 목적에 맞게 사용하고 불필요한 비용이 발생하지 않도록 관리하는 것이 필요해 보입니다.
AWS Perspective 문서에서도 해당 솔루션을 구축 시 관리할 계정 외 별도로 계정을 생성하여 AWS Perspective 만을 위한 계정으로 사용하기를 권장하고 있습니다.
그렇게 하여 AWS Perspective 를 통해 발생하는 리소스와 비용을 관리하고, 기존 사용하는 계정은 목적에 맞게 서비스를 제공할 리소스와 비용을 관리 하는 것이 좋겠습니다.
AWS Perspective 서비스는 쉽게 알려지지 않은 서비스로 저 또한 고객의 문의와 솔루션 작성을 통해 해당 서비스를 스터디 해볼 수 있는 좋은 경험이었습니다.
다른 분들도 이 솔루션을 참고하여 간접적으로 경험해보고 AWS Perspective 서비스 구축 시 검토해 보면 좋을 것 같습니다.
+ 추가)
솔루션 삭제 방법 :
- s3 버켓 중 Perspective로 생성된 버켓 (aws-perspective-~) 를 먼저 삭제
- Import 한 계정의 추가한 스택 삭제
- 솔루션이 설치된 계정의 생성된 스택 중 aws-perspective-
이름 형식의 스택을 삭제하면 전체 삭제가 됩니다.-
- 위 스택을 삭제하려 하면 '종료 방지'가 활성화 되었다고 나오며, 비활성화 후 다시 삭제 진행하면 됩니다.
- IAM 역할에서 aws-perspective-~ 로 시작하는 역할이 남아있다면 함께 삭제
감사합니다.
베스핀글로벌
클라우드기술지원팀
이주원