본문 바로가기
AWS

ec2서버에서 s3 이미지 업로드 시 permission denied 해결 방법

by 행복 개발자 2022. 8. 9.
java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1012)
    at com.common.util.file.FileUtil.convert(FileUtil.java:17)

 

무중단 배포 적용 후 수동 테스트에서 이미지 업로드가 안되는 오류가 있었다. 

 

- local 에서도 정상, 자동 배포가 아닌 수동 배포에서도 정상 

- 처음엔 permission denied 처럼 s3 버킷의 권한이나 iam role의 권한 문제 인줄 알고 이번 프로젝트의 최대 멍멍이 삽집을 했다.

(3일 걸림..)

- 결론은, amazone codeDeploy  설정인 appspec.yml 의 start.sh의 runas  실행 권한 설정을 ec2-user → root 로 변경하니 정상

 

- appspec.yml  파일 설정 

hooks:
  AfterInstall:
    - location: stop.sh # 엔진엑스와 연결되어 있지 않은 스프링 부트를 종료합니다.
      timeout: 60
      runas: root
  ApplicationStart:
    - location: start.sh # 엔진엑스와 연결되어 있지 않은 Port로 새 버전의 스프링 부트를 시작합니다.
      timeout: 60
      runas: root
  ValidateService:
    - location: health.sh # 새 스프링 부트가 정상적으로 실행됐는지 확인 합니다.
      timeout: 60
      runas: root

 

삽집을 할 수밖에 없었던 것이 관련 구글링 결과들이 다 s3, i am role 관련 내용들이라 엄한 다리를 아주 씨게 끍고 있었다.. 

죄절하고 다른 우회 방법을 생각하던 중 deploy를 수동으로 ec2 서버에서 돌리니 정상적으로 되서 다른 문제라고 그때서야 알게됐다.. 

(수도(sudo)세를 내야하는군하!!!)

 

- 삽질하게 만든 관련 구글링 내용 

 

 

 

 

 

 

'AWS' 카테고리의 다른 글

s3 업로드 시 파일용량 제한 오류 해결 방법  (0) 2022.08.01
EC2 서버에 웹 프로젝트 배포  (0) 2021.10.02
AWS RDS 생성  (0) 2021.10.02
EC2 인스턴스 서버에 필수 설정  (0) 2021.10.02
EIP (탄력적 IP) 할당  (0) 2021.10.02