# Blob Storage 구성

GitLab의 보관 파일을 읽을 수 있도록 GitHub 일시적으로 저장해야 합니다.

대부분의 고객에게는 보관 파일을 .와 함께 GitHub-owned blob storage저장하는 것이 좋습니다. 이 경로는 가장 간단한 경로이며 추가 구성이 필요하지 않습니다.

그러나 방화벽 요구 사항이 있거나 마이그레이션이 완료된 후 보관을 유지해야 하는 경우 외부 공급자를 사용하여 스토리지를 구성할 수 있습니다.

## 보관을 스테이징할 위치 선택

GL2GH extension 각 GitLab 프로젝트를 보관 파일로 내보낸 다음, 읽을 수 있는 GitHub Blob Storage에 보관 파일을 업로드합니다. 마이그레이션을 실행할 때 스토리지 백 엔드를 선택합니다.

| 스토리지 옵션 | 선택하는 방법 | Notes |
| ------- | ------- | ----- |

GitHub-owned blob storage (권장) | `--use-github-storage` | 설치가 필요하지 않습니다.
GitHub 는 마이그레이션에 성공한 후 또는 마이그레이션 실패 후 7일 후에 자동으로 보관 파일을 삭제합니다.
AWS S3 |
`--aws-bucket-name`(, `AWS_REGION``AWS_ACCESS_KEY_ID`및 환경 변수와 `AWS_SECRET_ACCESS_KEY` 함께, 필요에 따라`AWS_SESSION_TOKEN`) | 버킷과 해당 수명 주기를 소유합니다.
GitHub 는 스토리지에서 보관 파일을 삭제하지 않습니다.
Azure Blob Storage (애저 블롭 스토리지) |
`AZURE_STORAGE_CONNECTION_STRING` 환경 변수(단일 `migrate-repo` 명령의 경우 대신 사용할 `--azure-storage-connection-string`수 있습니다). | 스토리지 계정 액세스 키 연결 문자열만 지원됩니다(SAS 아님).
GitHub 는 스토리지에서 보관 파일을 삭제하지 않습니다.

## Blob Storage 구성

사용하는 GitHub-owned blob storage경우 아무 것도 구성할 필요가 없습니다. 플래그를 사용하여 CLI에서 `--use-github-storage` 이 메서드를 선택합니다. 그러나 속도가 느리거나 프록시된 연결이 있는 경우 변수(기본값 100MiB, 최소 5MiB)를 더 낮은 숫자로 설정할 `GITHUB_OWNED_STORAGE_MULTIPART_MEBIBYTES` 수 있습니다.

외부 Blob Storage를 사용하는 경우 이를 설정해야 합니다.

### AWS S3 스토리지 버킷 설정

AWS에서 S3 버킷을 설정합니다. 자세한 내용은 AWS 설명서의 [버킷 만들기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)를 참조하세요.

또한 다음 권한이 있는 AWS 액세스 키 및 비밀 키가 필요합니다.

```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucketMultipartUploads",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::github-migration-bucket",
                "arn:aws:s3:::github-migration-bucket/*"
            ]
        }
    ]
}
```

> \[!NOTE]
> GitHub Enterprise Importer은 마이그레이션이 완료된 후 AWS에서 보관을 삭제하지 않습니다. 스토리지 비용을 줄이려면 일정 기간 후의 보관 파일의 자동 삭제를 구성하는 것이 좋습니다. 자세한 내용은 AWS 설명서의 [버킷에 대한 수명 주기 구성 설정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html)을 참조하세요.

마이그레이션을 실행할 준비가 되면 지역, 액세스 키, 비밀 키 및 세션 토큰(필요한 경우)과 같은 GitHub CLI에 AWS 자격 증명을 제공해야 합니다. 인수로 전달하거나 `AWS_REGION`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` 및 `AWS_SESSION_TOKEN`(으)로 불리는 환경 변수를 설정할 수 있습니다.

또한 `--aws-bucket-name` 인수를 사용하여 S3 버킷의 이름을 전달해야 합니다.

### Azure Blob Storage 스토리지 계정 설정

Azure에서 스토리지 계정을 만들고 연결 문자열을 기록해 둡니다. 자세한 내용은 Microsoft Docs의 [스토리지 계정 액세스 키 관리](https://learn.microsoft.com/en-gb/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#regenerate-access-keys)를 참조하세요.

> \[!NOTE]
> GitHub Enterprise Importer은 마이그레이션이 완료된 후 Azure Blob Storage에서 보관을 삭제하지 않습니다. 스토리지 비용을 줄이려면 일정 기간 후의 보관 파일의 자동 삭제를 구성하는 것이 좋습니다. 자세한 내용은 Microsoft Docs의 [데이터 수명 주기를 자동으로 관리하여 비용 최적화](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview)를 참조하세요.

마이그레이션을 실행할 준비가 되면 GitHub CLI에 인수로 연결 문자열을 전달하거나 `AZURE_STORAGE_CONNECTION_STRING` 환경 변수를 사용하여 전달할 수 있습니다.

### 네트워크 액세스 허용

스토리지 계정에 방화벽 규칙을 구성한 경우 마이그레이션 대상의 IP 범위에 대한 액세스를 허용했는지 확인합니다.
[GitLab에서 GitHub 마이그레이션에 대한 액세스 관리](/ko/migrations/using-github-enterprise-importer/migrate-from-gitlab/manage-access#configure-ip-allow-lists-on-github)을(를) 참조하세요.