본문 바로가기

Study/AWS

AWS Rekognition 사용하기(IAM 생성, 버킷 만들기)

728x90

 

 

먼저 I AM 계정을 생성해보겠다

I AM 검색

 

 

 

IAM 서비스 - 사용자 - 사용자 추가

 

 

 

원하는 사용자 이름을 입력하고 암호를 설정해준다.

 

 

 

비밀번호 재설정 체크 해제 후 다음으로 넘어간다.

 

 

아직 그룹이 없으니 그룹 생성!

 

 

 

그룹 이름을 입력한 뒤 권한 3개를 선택해준다. (AdministratorAccess, AmazonRekognitionFullAccess, AmazonS3ReadOnlyAccess)

 

 

 

 

나머지는 다음 버튼을 눌러주면 생성 완료!

마지막 페이지에서 csv파일을 다운받아 놓는다

 

+) 여기서 CSV에 액세스키(Access key ID와 Secret access key)가 없다면

[IAM - 사용자 - 보안 자격 증명]에서 만들어줘야 한다

 

이 액세스 키는 한번만 다운받을 수 있으므로 꼭 받아서 잘 저장해두기!!

안 받았으면 다시 만들어야 한다

 


 

S3 버킷 생성하기

 

https://console.aws.amazon.com/s3/home?region=ap-northeast-2

 

https://us-east-1.console.aws.amazon.com/s3/home?region=ap-northeast-2

 

us-east-1.console.aws.amazon.com

 

S3에 들어가서 버킷 만들기를 눌러준다.

 

 

고유한 이름으로 버킷 이름을 만든다

 

 

 

객체 소유권은 비활성화로 내버려두고

비활성화가 아니라 활성화로 해야 S3로 파일 업로드 할 수 있다

 

 

 

 

액세스 차단은 모두 풀어준다

 

 

나머지는 그대로 두고 버킷을 만든다

버킷 생성 완료!

 

 

생성한 버킷에 들어가 사진을 업로드한다.

 

S3 생성 완료!

 

 


putty로 ec2 서버에 접속한다.

 

npm install aws-sdk

npm install uuid

pip install awscli

세 명령어를 입력해준다.

 

 

*pip: command not found 오류 해결하기

sudo yum install epel-release
yum -y update
yum -y install python-pip

 

 

만약 root로 들어가야 한다고 하면 sudo su를 입력해 루트에서 실행한다.

 

 

aws --version

잘 설치되었는지 버전 확인을 한다.

 


이제 아까 다운받은 csv 파일을 열어 키 아이디를 넣어주어야 하는데 csv 파일에 아무것도 안써있었다

 

 

생성한 사용자 - 보안 자격 증명 - 액세스 키 만들기

키를 새로 만들어주면 다시 csv 파일을 다운받을 수 있고 콘솔 비밀번호도 활성화로 바뀐다

 

 

새롭게 다운받은 csv파일에 있는 Access Key ID와 Secret Access Key를 입력해주고 region은 ap-northeast-2, output format은 json으로 설정해준다.

 

 

모든 설정 완료!!

 


이제 아까 버킷에 넣은 사진으로 테스트를 해보자

 

 

var AWS = require('aws-sdk);

const bucket = '버킷명' // the bucketname without s3://
const photo  = '파일명' // the name of file

const config = new AWS.Config({
  accessKeyId: process.env.AWS_ACCESS_KEY_ID,
  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
})
AWS.config.update({region:'ap-northeast-2'}); //region
const client = new AWS.Rekognition();
const params = {
  Image: {
    S3Object: {
      Bucket: bucket,
      Name: photo
    },
  },
}
client.detectText(params, function(err, response) {
  if (err) {
    console.log(err, err.stack); // handle error if an error occurred
  } else {
    console.log(`Detected Text for: ${photo}`)
    console.log(response)
    response.TextDetections.forEach(label => {
      console.log(`Detected Text: ${label.DetectedText}`),
      console.log(`Type: ${label.Type}`),
      console.log(`ID: ${label.Id}`),
      console.log(`Parent ID: ${label.ParentId}`),
      console.log(`Confidence: ${label.Confidence}`),
      console.log(`Polygon: `)
      console.log(label.Geometry.Polygon)
    }
    )
  }
});

 

728x90
LIST