본문 바로가기
반응형

[개발] Infrastructure/AWS11

OAI를 사용하여 Cloudfront를 배포한 경우, aws cli s3는 어떻게 사용할까? Origin Access Identity(OAI)만 S3에 오브젝트를 조회할 수 있도록 Cloudfront를 배포했다. 젠킨스를 통해 S3에 Javascript SPA를 CI/CD 해야 하는데 aws s3 명령어가 "Access Denied" 되어 난감했다. 어떻게 해결해야 할까? AWS cli에는 --profile 옵션을 사용할 수 있으며, Credentials 파일에서 특정 profile을 사용하는 것이다. aws s3 ls s3://[버킷명] --profile [profile] .aws/credentials 파일에 profile을 추가할 수 있으며, default가 기본으로 잡혀있는 것 같다. "user1" 를 추가하는데, 아래와 같은 조건이 있다. - s3를 다룰 수 있는 권한을 가진 프로그래밍 .. 2021. 9. 25.
ECS 인스턴스 Docker에 컨테이너 안 올라갈 경우 (Feat. ECR, Jenkins, Gradle) - war 파일 ECS와 ECR를 사용 중이며 Jenkins로 배포를 한다. 프로젝트 빌드 툴: Gradle Specification Docker: 19.03.13-ce Gradle: 4.4 ECS 에이전트: 1.48.1 Jenkins는 파이프라인을 사용하며 아래 절차를 따른다. - Gradle로 프로젝트 빌드 -> war - Docker Image 생성 -> ECR latest push - ECS에 latest image를 사용하여 도커 컨테이너 생성 절차 중에 Docker Image Build 후 푸시가 안되는 상황이 발생했다. 어떻게 해결해야 할까? 문제는 Gradle 버전으로 인해 build 시 생성되는 war 파일명 때문이었다. build.gradle의 war.archiveName로 설정할 수 있다. war{ .. 2021. 9. 7.
s3 bucket에서 사이즈가 가장 큰 file 찾기 s3 대시보드 페이지에서 "Storage Lens 대시보드 보기"를 클릭하면 용량을 많이 차지하는 bucket을 확인할 수 있다. bucket의 용량이 크면 비용이 많이 발생하기 때문에 필요없다면 지워야 한다. 하지만 대용량의 버킷은 파일도 많기 때문에 수동으로 확인하는 것은 한계가 있다. 그래서 스크립트를 작성하여 가장 큰 사이즈의 파일을 찾아보기로 했다. 본 스크립트에서 사용되는 Programming Access 계정은 아래의 권한을 가져야 한다. "s3:DescribeJob" "s3:Get*" "s3:List*" 두 개의 메소드를 사용한다. list_objects(**kwargs) list_objects_v2(**kwargs) 두 메소드의 차이는 list_objects_v2(**kwargs)는 시작.. 2021. 8. 12.
About accessing AWS instances ssh using .pem AWS 리눅스 인스턴스의 경우 이미지 별로 디폴트 유저이름을 갖는다. boto3 라이브러리를 이용하여, .pem 파일로 ssh 접속하는 인스턴스 정보를 엑셀로 다운받는 스크립트를 작성했다. 리눅스 AMI 별로 Default Username을 갖는다. AMI Username Amazon Linux 2 / Amazon Linux AMI ec2-user CentOS AMI centos Debian AMI admin Fedora AMI ec2-user / fedora RHEL AMI ec2-user / root SUSE AMI ec2-user / root Ubuntu AMI ubuntu 내가 사용했던 RHEL(레드햇 계열)은 ec2-user가 디폴트였다. fedora, suse는 사용 안 해봤지만 ec2-use.. 2021. 8. 6.
반응형