1. S3 접두사 설정 키 접두사는 (객체 이름 앞)의 전체 경로를 사용(버킷 이름 포함)할 가 될 수 있는 문자열이다. 접두사의 길이는 객체 키 이름의 최대 길이(1,024바이트)까지 지정할 수 있다. 접두사를 디렉터리와 유사한 방식으로 데이터를 구성하는 방법으로 생각할 수 있다. 그러나 접두사는 디렉터리(폴더)가 아니다. 폴더의 경우 "/" 문자는 다음 하위 폴더 또는 객체 이름을 나타낸다. 접두사의 경우 “/”는 단지 또 하나의 문자에 불과하므로 “/”는 파티션 배치를 나타내지 않는다. 접두사로 검색하면 지정된 접두사로 시작하는 키로만 결과가 제한된다. 구분 기호를 사용하면 목록 작업이 공통 접두사를 공유하는 모든 키를 단일 요약 목록 결과로 롤업한다. 그래서 계층 구조의 포함된 모든 수준을 연결하..
AWS
EC2의 사이즈를 small 정도로 운영하니 메모리가 99%가 뜨면서 결국 서버가 내려가게 되었던 이슈가 있었다. 해당 이슈는 nginx의 세팅을 해줘서 메모리 누수를 막아줘야하는 이슈라고 한다. 나는 아래 블로그를 보고 참고했는데, 해결방법이 다양하니 밑에 여러 방안을 작성해봤다. https://velog.io/@stay136/gunicorn%EA%B3%BC-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%88%84%EC%88%98 원인 1) gunicorn의 max connection을 지정 안해주면 default(4개)로 잡히는데, 연결 안끊고 클라이언트가 5개이상 붙어있으면 서버가 클라이언트 소켓 accept를 못하게되고 무한으로 pending 되게 되는 현상으로 메모리 누수현상이 일어나..
계정 생성은 생략하겠당 readonlyaccess(https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ReadOnlyAccess) 를 넣으면 정책이 나오는데, 정책 연결을 누르고 만든 iam 계정을 넣으면 된다. 그럼 모든 서비스에 접근해서 읽기가 가능한 계정이 만들어진다.
어제 글에 따라서 이제 S3 객체의 설정을 해야한다. (Cache 유지시간이라던가 Cache Control 이라던가 등등) S3에 들어와서 메타데이터 편집을 누른다. 아래와 같이 설정하고 싶은 값을 설정할 수 있다. 나는 Cache-Control을 줘서 Cache max-size를 1000초로 뒀다. Content-Language도 한국/미국 등 지정할 수 있다. Content-Type은 jpeg로 했다. 참고로 S3는 directory가 아닌 prefix라는 개념인데, 각 prefix마다 설정이 가능하다. 예를 들어 한 prefix에서 2가지 Content-Type을 하지 못한다는 뜻이다 (jpeg랑 png 2가지 이미지 확장자를 동시에 Cache 할 수 없음) 그래서 확장자가 다르다면 prefix를 ..
이전글에 따라서 ACM, cache 설정을 하고자 한다. 1) 캐시정책 만들기 정책 생성을 누른다. 이름 짓고 보면 헤더에 origin 추가해준다. 내가 원하는 것만 캐싱할 수 있게 된다. 2) ACM 인증서 발급 참고로 ACM 은 버지니아에서밖에 못 만든다. 서브 도메인을 만들어야한다.(전에 했던 블로그 참고) Route53, 가비아를 통해 서브도메인을 만들고 도메인 이름을 넣어줬다. 다음 글에서는 S3에서 헤더부분에 Cache Control 설정, 캐시 유지 시간 지정 등을 해보고자 한다.
우선 CDN 서비스를 이용하려는 이유는 이미지를 S3에서 불러오는데 이미지를 매번 새롭게 가져오다보니 페이지 랜더링 속도가 느렸다. 그래서 처음 페이지를 방문하는건 느릴 수 밖에 없지만, 계속 방문한다면 페이지가 뜨는 것이 빨라야한다고 생각했고 CDN 서비스를 적용하긴 해야하는데 고민했다. 아시다시피, CDN 서비스를 사용하면 Edge 서버를 사용하여 콘텐츠를 캐싱해서 사용자가 위치한 곳에 가깝게 콘텐츠를 전송할 수 있어 성능이 향상된다. 마침 미국 CES 박람회에 참가하게 되면서 미국에서 이미지를 빠르게 가져올 수 있는 방법이 뭘까 하다가 CDN 서비스를 알았고 이번 기회에 적용해보자라고 생각했다. 1. CloudFront 설정 배포 생성을 누르고 기존 사용하고 있던 S3의 네임서버를 클릭해준다. ht..
AWS는 많은 기능을 제공한다. RDS를 사용할 때 API 호출하는데 시간이 많이 걸린다던가 하는 일이 발생할 것이다. 그때 사용하는 것이 Performance Insight라는 것이다. 특별히 설정할 것은 없고 IAM 계정에 RDS access가 인라인 정책으로 부여되어 있어야한다. 안그럼 permission error가 뜨기 때문이다. AWS RDS에 들어가면 Performance Insight 를 볼 수 있다. 슬로우 쿼리, 대기정보, 세션별 쿼리 실행 등 데이터베이스를 운영하기 위해 조금 더 자세한 정보를 확인하려면 RDS 성능 개선 도우미(Performance Insight)를 사용할 수 있다. 성능 개선 도우미를 사용하려면 DB 인스턴스 또는 다중 AZ DB의 클러스터에서 활성화 해야한다. 필..
Python SDK Boto3를 사용하여 S3 Bucket Object가 1000개 이상일 때 Object의 List를 조회하는 방법 list_objects_v2() S3 — Boto3 Docs 1.26.81 documentation The following example shows how to initiate restoration of glacier objects in an Amazon S3 bucket, determine if a restoration is on-going, and determine if a restoration is finished. import boto3 s3 = boto3.resource('s3') bucket = s3.Bucket('glacier-bucket boto3.amaz..