실습 관련 URL

http://bdid.awsdrmo.kr

실습 아키텍처

실습 URL


Lab0. 주의사항: aws configure error 대처 요령 

ImportError: cannot import name AliasedEventEmitter

해결 방법

sudo yum downgrade aws-cli.noarch python27-botocore

Lab 4. 수정 완료 (2019-07-30)

Page7. 5번에서 Security Group은 Default로 설정합니다. AWS 관리콘솔의 Redshift에서 제공하는 Query Editor를 사용하기 때문에 별도의 지정을 할 필요가 없습니다. (이해를 돕는 용도)


Page9. PDF에서 코드 가져올 때, 에러 발생 할 수 있어서 제공

create external table spectrum.sales(
salesid integer,
listid integer,
sellerid integer,
buyerid integer,
eventid integer,
dateid smallint,
qtysold smallint,
pricepaid decimal(8,2),
commission decimal(8,2),
saletime timestamp)
row format delimited
fields terminated by '\t'
stored as textfile
location 's3://id-redshift-uswest2/tickit/spectrum/sales/'
table properties ('numRows'='172000');


Page12. PDF에소 코드 가져올 때, 에러 발생할 수 있어서 제공

COPY event
FROM 's3://id-redshift-uswest2/tickit/allevents_pipe.txt'
IAM_ROLE 'ROLE_ARN으로 바꿔 넣으세요.'
DELIMITER '|'
TIMEFORMAT 'YYYY-MM-DD HH:MI:SS'
REGION 'us-west-2'


Page15. 오타

두 번째 쿼리가 더 빠르게 실행되는 것을 확인합니다. 이는 Amazon S3에서 읽는 데이터가 더 적기 때문 입니다. 데이터 볼륨이 클수록 실행 속도의 차이가 더 분명해 집니다. (다만 본 예제와 같이 데이터량이 작은 경우 그 차이는 미비합니다.) 또한, Amazon S3에서 읽는 데이터 에 따라 Redshift Spectrum에 대 한 요금이 부과되므로, 쿼리 실행 용도 줄어듭니다

QuickSight 계정에 문제가 있을 때

qs.json
{
   "Version": "2012-10-17",
   "Statement": [
   {
     "Effect": "Allow",
     "Principal": {
        "Service": "quicksight.amazonaws.com"
     },
   "Action": "sts:AssumeRole"
   }
 ]
}

AWS CLI command

aws iam create-role --role-name aws-quicksight-service-role-v0 --assume-role-policy-document file://qs.json --path \/service-role/

aws iam attach-role-policy --role-name aws-quicksight-service-role-v0 --policy-arn arn:aws:iam::aws:policy/service-role/AWSQuicksightAthenaAccess
aws iam attach-role-policy --role-name aws-quicksight-service-role-v0 --policy-arn arn:aws:iam::aws:policy/service-role/QuickSightAccessForS3StorageManagementAnalyticsReadOnly
aws iam attach-role-policy --role-name aws-quicksight-service-role-v0 --policy-arn arn:aws:iam::{AccountID}:policy/service-role/AWSQuickSightIAMPolicy
aws iam attach-role-policy --role-name aws-quicksight-service-role-v0 --policy-arn arn:aws:iam::{AccountID}:policy/service-role/AWSQuickSightRDSPolicy
aws iam attach-role-policy --role-name aws-quicksight-service-role-v0 --policy-arn arn:aws:iam::{AccountID}:policy/service-role/AWSQuickSightRedshiftPolicy
aws iam attach-role-policy --role-name aws-quicksight-service-role-v0 --policy-arn arn:aws:iam::{AccountID}:policy/service-role/AWSQuickSightS3Policy

참고 자료

Kinesis Agent를 이용해서 Data firehose로 데이터 전송

https://docs.aws.amazon.com/ko_kr/firehose/latest/dev/writing-with-agents.html


변경 했으면 하는 부분 요약

  1. Lab0의 EC2 인스턴스에 대한 접근을 SSM이나 EC2 Connect를 이용하는 형태로 변경 또는 EC2 상에서 바로 웹으로 접근하도록 변경 (Putty 번거로움 제거)
  2. Lab4의 Redshift의 원소스 데이터를 활용하는 방향으로 변경할 수 있는지 검토 (2019-07-30 기준 별도의 리전에서 새로 생성해서 진행함)
  3. Lab0의 시작 부분에 Redshift는 실습에서 하지 않는다는 문구를 삭제 (이건 무조건 하는 것임)
  • 레이블 없음

3 댓글

  1. 오타 발생 가능 (S3 버킷 또는 Prefix에 공백이 들어갈 경우)

    AWS Configure 할 때, 잘못 붙여 넣을 경우, .aws/configure 쪽에 값이 깨져서 들어가서 수정이 안되는 경우가 있음.

  2. Lab0를 웹에서 접근해서 하는 것으로 가이드 변경 필요 (실습 자체에 집중을 위해서 확인 필요함)

  3. https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/c-spectrum-external-tables.html

    S3 소스 위치가 변경되었습니다. S3 버킷 정보 변경이 필요합니다.

    구분버킷명상태
    구 S3 버킷s3://id-redshift-uswest2/tickit/spectrum/sales/동작 안됨
    신 S3 버킷s3://awssampledbuswest2/tickit/spectrum/sales/동작 됨