4주 프로젝트 AWS S3에서 Glacier로 자동 백업

출처 : bluese05.tistory.com

위 레퍼런스는 aws console 즉 AWS에서 제공하는 GUI 를 사용해서

AWS S3 -> Glacier로 백업한다.

나는 프로그래밍 방법을 통해 코드로 위 작업을 수행해야한다.

프로그래밍을 하기 전에 일단은 구체적으로 어떻게 백업하는지는 알아야 된다.

S3를 이전에 써본적은 있다. AWS Console을 이용해서.. 그런데? Object를 glacier로 백업하는건가? 구체적으로 어떻게?의 인사이트를 얻어보자.

  • glacier로 백업할 bucket을 선택 후 properties 선택

  • lifecycle 선택후, add rule 버튼 클릭

  • Rule target 지정 최소단위는 bucket, bucket내 folder 별도로도 지정 가능하네요.

두 번째 레퍼런스

image.png

https://www.cloudberrylab.com/resources/blog/amazon-s3-lifecycle-rules-upload-to-glacier/

요약 : s3 lifecycle을 이용해서
바로 s3 glacier로 보내는 것이 아니라 s3 lifecycle을 이용해서 s3 glacier로 보내기

무엇때문에? s3 glacier는 인벤토리를 만드는 작업만 3~5시간 걸린다.
위와 같이 하면 s3에 storage가 올라가자마자 s3 glaicer에 inventory가 생성된다.

typescript question mark?

출처: Code examples - variable Typescript 매개 변수 이름에서 물음표는 무엇입니까

optional type이라고 하네요.

문제상황
인자로 들어올 값이 올지 안올지 몰라요..
그런데 우리는 typescript를 쓸때 인자에 데이터 틀 타입을 써줘야하거든요.

이럴때 lastName이 들어올수도 있고, 안 들어올 수도 있어요.
이럴때!!
변수?: typename 이렇게 쓰면 됩니다.

?를 안쓰면 buildName내부에서 lastName이 없을시에 undefined로 에러가 납니다.

그래서 buildName함수 내부에서 lastName을 갖고 로직을 구현할때 필수적으로 ?를 붙여야 합니다.

function buildName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}

let result1 = buildName("Bob");                  // works correctly now
let result2 = buildName("Bob", "Adams", "Sr.");  // error, too many parameters
let result3 = buildName("Bob", "Adams");         // ah, just right