EC2

    AWS - EC2 환경에서 AccessKey와 SecretAccessKey를 안전하게 관리하기

    프로젝트에서 이미지를 S3에 업로드하는 기능 구현을 담당하게 되었다. S3에 접근하기 위한 AWS의 AccessKey와 SecretAccessKey를 설정해주어야 했는데, public 프로젝트였기 때문에 yml에 담아서 깃허브에 올릴 수 없었다. 애플리케이션 코드로 저장하지 않고 안전하게 AWS Key를 관리하는 방법에 대해 알아보다가 EC2 환경에서 AWS Key를 관리하는 방법에 대해 알게되어 적용했던 과정을 정리한다. 이 밖에도 다양한 환경에서 적용할 만한 다양한 방법을 정리해두신 고마운 블로그가 있어 링크를 남겨놓으니 참고하길 바란다.(링크) EC2ContainerCredentialsProviderWrapper.class 이 클래스는 애플리케이션이 배포된 서버가 EC2 및 컨테이너 환경일 때 동작..

    AWS EC2 - EC2 배포시 Scheduled가 지정된 시간에 실행되지 않았을 때 원인과 해결법

    프로젝트로 66일 동안 습관을 유지하는 서비스를 만들고 있었다. 매일 자정 습관을 인증했는지 확인하는 지 체크하는 요구사항이 있었다. @Transactional @Scheduled(cron = "0 0 0 * * *") public List notAuthTodayCheck() { ... return challenges; } 분명 로컬에서는 잘 실행되었는데, EC2 배포 후에는 로직이 잘 작동되지 않았다. 확인해보니 자정에 실행되어야 할 로직이 9시간 전인 오후 3시에 실행되었다. (처음에는 로직을 잘못 짠줄 알고 한참 헤맸다ㅠㅠ) 이유가 뭐였을까? EC2에서 새 인스턴스를 만들게되면 KST가 아닌 UTC로 표시된다. UTC는 한국시간보다 9시간 느리기 때문에 한국 시간으로 자정에 실행되어야 할 로직이 U..