S3 버전 관리와 권한
·
DEVELOP/AWS
S3 버전 관리객체(=파일)의 버전을 관리하는 기능default가 비활성화라서, 사용하려면 직접 활성화해야함업로드된 객체의 키를 기준으로 버전 할당키 단위로 처음 업로드된 객체가 버전1, 같은 키로 업로드된 객체가 버전2S3의 버전 관리는 시간 순으로 버전이 쌓이는 구조이다.S3 버전 관리 장점실수로 삭제하거나 덮어쓸 때 이전 버전을 보존하거나 복원 가능버전별로 고유한 버전 ID를 가지고, 삭제나 조회 등 관리 가능Delete Marker - 객체를 삭제해도 해당 객체는 삭제되지 않고, 삭제되었다는 마커만 추가→ 비용은 비효율적일 수 있지만, 버전이 보존되는 장점 → 비용 같은 경우, LifeCycle 기능을 통해 단점을 보완 가능AWS S3 삭제 마커(Delete Marker)란?삭제 마커는 버전 관리..
[AWS] Elastic Load Balancer
·
DEVELOP/AWS
부하 분산이란서버-클라이언트 환경에서 서버가 클라이언트 요청을 받아 처리하는 과정에서 발생하는 부하(연산 작업)에 대해 동일한 목적을 수행하는 다수의 서버에 분산 처리하는 기능부하 분산을 사용하면 고가용성 및 내결함성이 향상되어 장애가 발생할 때 유연하게 대처할 수 있다.고가용성: 시스템이나 서비스가 지속적으로 작동 가능하도록 하는 기능내결함성: 시스템의 일부 구성 요소가 작동하지 않아도 계속 작동할 수 있는 기능서비스를 안정적으로 유지하기 위해 반드시 사용해야 하는 기술부하 분산 == 로드 밸런싱부하 분산을 수행하는 대상 == 로드 밸런서만약, 서버가 발생할 장애에 대비해 여러 대의 서버를 운영하더라도 로드 밸런싱 기능이 없으면 서버로 향하는 트래픽을 효율적으로 배분하기가 어렵다.AWS ELB(Elas..
NAT Gateway를 활용한 Private EC2의 외부 통신 흐름 정리
·
DEVELOP/AWS
VPC를 공부하면서 백엔드 서버를 public subnet에 둘지, private subnet에 둘지 혼란스러웠다. 보안을 고려하면 private이 맞는 것 같지만, 외부 API를 호출해야 하는 경우엔 통신이 어떻게 흘러가는지 궁금해졌다. 일단 private subnet은 NAT gateway를 통해 외부 인터넷 통신을 위한 아웃바운드가 가능하다. 또한 NAT gateway는 stateful한 성질을 가지고 있어서 요청에 대한 연결을 저장해두기 때문에, 외부API를 요청했을 때 그에 대한 응답도 NAT gateway로 받을 수 있다. 다만 걸리는 것은 NACL(Network Access Contol List)와 보안그룹에 의해 private subnet까지 이 응답이 도달하지 못할 거라고 생각했다. 그래..
Reflection
·
DEVELOP/SPRING
Spring을 학습할수록 ‘리플렉션’이라는 용어를 자주 접하게 된다.DI, JPA, 요청 바인딩 등 스프링의 주요 기능들이 모두 이 개념과 밀접하게 관련되어 있기 때문이다.하지만 리플렉션이 정확히 어떤 개념이고, 어떻게 동작하며, 왜 스프링에서 핵심적인 역할을 하는지는 처음에는 쉽게 와닿지 않는다.이 글에서는 리플렉션의 개념을 정의하고, 자바에서 제공하는 Reflection API의 구조를 살펴본 뒤,스프링과 JPA에서 이를 어떻게 활용하고 있는지를 구체적으로 예시를 통해 설명하고자 한다. 리플렉션(Reflection)이란?넓은 관점에서 리플렉션의 정의는 프로그래밍에서 런타임에 프로그램의 구조와 동작을 조사하고 수정할 수 있는 능력이다.즉, 프로그램이 실행되는 동안 자신의 코드에 접근하여 클래스, 메서드..