AWS 기반 AI 이미지 검증 툴 만들기 지식 카드

Amazon Q 도구 설치 및 시작 방법
Amazon Q CLI를 설치하려면 공식 문서를 참고해 환경에 맞게 설치합니다. 설치 후 빌더 ID로 설정을 마치고, q chat 명령어를 입력해 Q 세션을 시작할 수 있습니다.
MCP 서버 연결 설정
이미지 검증 프로젝트에서는 AWS Diagram MCP 서버를 사용했습니다. 아래와 같이 설정 파일(mcp configuration)을 작성해 MCP 서버를 연동합니다.
{
mcpServers: {
awslabs.aws-diagram-mcp-server: {
command: uvx,
args: [awslabs.aws-diagram-mcp-server],
env: { FASTMCP_LOG_LEVEL: ERROR },
autoApprove: [],
disabled: false
}
}
}프로젝트 주요 기능 요약
AI 기반 이미지 검증 툴은 다음과 같은 흐름으로 동작합니다:
사용자가 이미지를 업로드하면 S3로 저장
S3에 저장된 이미지는 GuardDuty Malware Protection으로 스캔
API Gateway와 Lambda가 이미지 상태를 점검
안전한 이미지면 Amazon Rekognition으로 추가 분류
부적합 이미지는 S3에서 삭제되고 경고 메시지 표시
정상 이미지는 S3에 저장되며 분류 결과 제공
AWS 서비스 조합
이 프로젝트에 사용된 주요 AWS 서비스는 다음과 같습니다:
CloudFront, S3: 프론트엔드 호스팅과 이미지 저장
API Gateway, Lambda: 백엔드 요청 처리
WAF: API와 CloudFront 보안 강화
Cognito: 사용자 인증, 로그인
GuardDuty Malware Protection for S3: 이미지 악성코드 검사 자동화
Amazon Rekognition: 이미지의 적합성 판단 및 라벨링
아키텍처 설계 흐름
이미지 검증 툴의 전체 구조는 다음과 같습니다:
사용자는 CloudFront를 통해 웹에 접속, Cognito를 이용해 로그인
이미지 업로드 시 S3로 파일 저장
GuardDuty가 S3 객체를 자동 검색해서 악성코드 여부 판단
프론트엔드에서 API Gateway로 요청해 Lambda 함수로 처리
Rekognition을 활용한 이미지 분석 후 결과에 따라 S3 객체 삭제 또는 유지
개발 및 배포 과정에서 겪는 주요 문제들
프로젝트 생성 시 여러 문제에 직면할 수 있습니다. 예시로,
S3 버킷 네이밍 오류, 매개변수 사용 오류
CloudFormation에서 GuardDuty Malware Protection 구현의 난점
API CORS 설정에서 403 에러 발생
aws-sdk모듈 미설치 에러배포 실패 시 자원 보존을 위한 롤백 방지 필요
인증 정보와 프론트엔드 연결을 실 서비스 정보로 갱신 필요
이미지 업로드 및 검증 과정
실제 서비스에서는 사용자가 Cognito로 회원가입 후 로그인합니다. 로그인한 사용자는 이미지를 업로드할 수 있고, 시스템은 이미지를 분석하여 부적절하면 자동으로 삭제합니다. 적합한 경우에는 S3에 안전하게 저장됩니다.
보안 강화를 위한 설정 팁
CloudFront와 API Gateway에 각각 WAF(Web Application Firewall)를 적용해 외부 접근을 차단하고, Cognito 인증을 통해 인증되지 않은 사용자의 접근을 막을 수 있습니다. 또, 이미지 키에는 이메일 일부만 노출하고 나머지는 마스킹해 개인정보를 보호합니다.
프론트엔드와 백엔드 연동 방법
프론트엔드 폴더의 모든 파일을 S3 버킷에 업로드하면 CloudFront에서 서빙할 수 있습니다. 로그인은 Cognito Hosted UI를 활용하고, API Gateway와 Lambda를 실제 값으로 연결해야 정상적으로 이미지 업로드 및 상태 체크가 가능합니다.
테스트 및 운영 단계
반복적으로 테스트하여 아키텍처와 코드의 문제점(예: 계정 설정, 버킷 권한, CORS 등)을 수정해야 합니다. 적절한 로그와 메시지를 통해 사용자가 이미지 검증 결과를 쉽게 확인할 수 있도록 합니다.
