안녕하세요.
베스핀글로벌 클라우드 기술지원팀 이주원 입니다.
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-~ 로 시작하는 역할이 남아있다면 함께 삭제
감사합니다.
베스핀글로벌
클라우드기술지원팀
이주원
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.