Amazon ECS에 대한 FSx for Windows File Server 파일 시스템을 구성하는 방법 알아보기 - Amazon Elastic Container Service

Amazon ECS에 대한 FSx for Windows File Server 파일 시스템을 구성하는 방법 알아보기

FSx for Windows File Server 파일 시스템과 파일 시스템에 액세스할 수 있는 컨테이너를 호스팅하는 Amazon ECS 최적화 Windows 인스턴스를 시작하는 방법에 대해 알아보세요. 이렇게 하려면 먼저 AWS Directory Service AWS 관리형 Microsoft Active Directory를 생성합니다. 그런 다음 Amazon EC2 인스턴스 및 태스크 정의를 사용하여 FSx for Windows File Server 파일 시스템 및 클러스터를 생성합니다. FSx for Windows File Server 파일 시스템을 사용하도록 컨테이너에 대한 태스크 정의를 구성합니다. 마지막으로 파일 시스템을 테스트합니다.

이 태스크는 Active Directory 또는 FSx for Windows File Server 파일 시스템을 시작하거나 삭제할 때마다 20~45분 정도 걸립니다. 자습서를 완료하거나 몇 세션 동안 자습서를 완료하기 위해 90분 이상 예약할 준비를 합니다.

자습서의 사전 조건

  • 관리 사용자입니다. Amazon ECS 사용 설정 섹션을 참조하세요.

  • (선택 사항) RDP 액세스를 통해 EC2 Windows 인스턴스에 연결하기 위한 PEM 키 페어. 키 페어를 생성하는 방법에 대한 자세한 정보는 Windows Instances용 사용 설명서Amazon EC2 키 페어 및 Windows 인스턴스를 참조하세요.

  • 하나 이상의 퍼블릭 서브넷과 프라이빗 서브넷, 보안 그룹이 있는 VPC. 기본 VPC를 사용할 수 있습니다. NAT 게이트웨이 또는 장치가 필요하지 않습니다. AWS Directory Service는 Active Directory에서 NAT(네트워크 주소 변환)를 지원하지 않습니다. 이 작업을 수행하려면 VPC 내에 Active Directory, FSx for Windows File Server 파일 시스템, ECS 클러스터 및 EC2 인스턴스가 있어야 합니다. VPC 및 Active Directory에 대한 자세한 정보는 Amazon VPC 콘솔 마법사 구성AWS 관리형 Microsoft AD 사전 조건을 참조하세요.

  • IAM ecsInstanceRole 및 ecsTaskExecutionRole 권한은 계정과 연결됩니다. 이러한 서비스 연결 역할을 통해 서비스가 API 호출을 수행하고 사용자를 대신하여 컨테이너, 보안 암호, 디렉터리 및 파일 서버에 액세스할 수 있습니다.

1단계: IAM 액세스 역할 생성

AWS Management Console을 사용하여 클러스터를 생성합니다.
  1. ecsInstanceRole이 있는지 확인하고 없는 경우 생성 방법을 확인하려면 Amazon ECS 컨테이너 인스턴스 IAM 역할 섹션을 참조하세요.

  2. 실제 프로덕션 환경에서는 최소 사용 권한에 맞게 역할 정책을 사용자 지정하는 것이 좋습니다. 이 자습서를 통해 작업하기 위해 다음 AWS 관리형 정책이 ecsInstanceRole에 연결되었는지 확인합니다. 아직 연결되어 있지 않은 경우 정책을 연결합니다.

    • AmazonEC2ContainerServiceforEC2Role

    • AmazonSSMManagedInstanceCore

    • AmazonSSMDirectoryServiceAccess

    AWS 관리형 정책을 연결하려면

    1. IAM 콘솔(IAM console)을 엽니다.

    2. 탐색 창에서 역할를 선택합니다.

    3. AWS 관리형 역할을 선택합니다.

    4. 권한, 정책 연결을 선택합니다.

    5. 연결에 사용할 수 있는 정책의 범위를 좁히려면 필터(Filter)를 사용합니다.

    6. 적절한 정책을 선택하고 정책 연결(Attach policy)을 선택합니다.

  3. ecsTaskExecutionRole이 있는지 확인하고 없는 경우 생성 방법을 확인하려면 Amazon ECS 태스크 실행 IAM 역할 섹션을 참조하세요.

    실제 프로덕션 환경에서는 최소 사용 권한에 맞게 역할 정책을 사용자 지정하는 것이 좋습니다. 이 자습서를 통해 작업하기 위해 다음 AWS 관리형 정책이 ecsTaskExecutionRole에 연결되었는지 확인합니다. 정책이 아직 연결되어 있지 않은 경우 정책을 연결합니다. 이전 섹션에 제시한 절차를 통해 AWS 관리형 정책에 연결합니다.

    • SecretsManagerReadWrite

    • AmazonFSxReadOnlyAccess

    • AmazonSSMReadOnlyAccess

    • AmazonECSTaskExecutionRolePolicy

2단계: Windows Active Directory(AD) 생성

  1. AWS Directory Service 관리 안내서AWS 관리형 AD 디렉터리 생성에 설명한 단계를 따릅니다. 이 자습서에서 지정한 VPC를 사용합니다. AWS 관리형 AD 디렉터리 생성의 3단계에서 다음 단계에 사용할 사용자 이름과 암호를 저장합니다. 또한 이후 단계에 대한 정규화된 도메인 이름을 적어 둡니다. Active Directory를 생성하는 동안 다음 단계를 완료할 수 있습니다.

  2. 다음 단계에서 사용할 AWS Secrets Manager 보안 암호를 생성합니다. 자세한 정보는 AWS Secrets Manager 사용 설명서AWS Secrets Manager 시작하기를 참조하세요.

    1. Secrets Manager 콘솔을 엽니다.

    2. 새 보안 암호 저장(Store a new secret)을 클릭합니다.

    3. 다른 유형의 보안 암호(Other type of secrets)를 선택합니다.

    4. 첫 번째 행의 보안 암호 키/값(Secret key/value)에서 값이 admin인 키 username를 생성합니다. +행 추가(+ Add row)를 클릭합니다.

    5. 새 행에서 키 password를 생성합니다. 값에 AWS 관리형 AD 디렉터리 생성의 3단계에서 입력한 암호를 입력합니다.

    6. 다음(Next) 버튼을 클릭합니다.

    7. 보안 암호 이름 및 설명을 입력합니다. 다음(Next)을 클릭합니다.

    8. 다음을 클릭합니다. 저장(Store)을 클릭합니다.

    9. 보안 암호 페이지에서 방금 생성한 보안 암호를 클릭합니다.

    10. 다음 단계에서 사용할 새 보안 암호의 ARN을 저장합니다.

    11. Active Directory를 생성하는 동안 다음 단계로 진행할 수 있습니다.

3단계: 보안 그룹 확인 및 업데이트

이 단계에서는 사용 중인 보안 그룹에 대한 규칙을 확인하고 업데이트합니다. 이를 위해 VPC에 대해 생성한 기본 보안 그룹을 사용할 수 있습니다.

보안 그룹을 확인하고 업데이트합니다.

포트 간에 데이터를 전송하려면 보안 그룹을 생성하거나 편집해야 합니다. 자세한 정보는 FSx for Windows File Server 사용 설명서Amazon VPC 보안 그룹에서 설명합니다. 이 태스크는 다음 인바운드 규칙 표의 첫 번째 행에 표시된 보안 그룹 인바운드 규칙을 생성하여 수행할 수 있습니다. 이 규칙은 보안 그룹에 할당된 네트워크 인터페이스(및 연결된 인스턴스)로부터의 인바운드 트래픽을 허용합니다. 생성한 모든 클라우드 리소스는 동일한 VPC 내에 있으며 동일한 보안 그룹에 연결됩니다. 따라서 이 규칙을 사용하면 필요에 따라 FSx for Windows File Server 파일 시스템, Active Directory 및 ECS 인스턴스에서 트래픽을 주고받을 수 있습니다. 다른 인바운드 규칙은 트래픽이 웹사이트 및 ECS 인스턴스에 연결하기 위한 RDP 액세스를 제공하도록 허용합니다.

다음 표에서는 이 자습서에 필요한 보안 그룹 인바운드 규칙을 보여 줍니다.

유형 프로토콜 포트 범위 소스

모든 트래픽

모두

모두

보안 그룹(SG)

HTTPS

TCP

443

0.0.0.0/0

RDP

TCP

3389

랩톱 IP 주소

다음 표에서는 이 자습서에 필요한 보안 그룹 아웃바운드 규칙을 보여 줍니다.

유형 프로토콜 포트 범위 대상

모든 트래픽

모두

모두

0.0.0.0/0

  1. EC2 콘솔을 열고 왼쪽 메뉴에서 보안 그룹(Security Groups)을 선택합니다.

  2. 이제 표시된 보안 그룹 목록에서 이 자습서에서 사용하는 보안 그룹의 왼쪽에 있는 확인란을 선택합니다.

    보안 그룹 정보가 표시됩니다.

  3. 인바운드 규칙(Inbound rules) 또는 아웃바운드 규칙(Outbound rules) 탭을 클릭하고 인바운드 규칙 편집(Edit inbound rules) 또는 아웃바운드 규칙 편집(Edit outbound rules) 버튼을 선택하여 인바운드 및 아웃바운드 규칙을 편집합니다. 이전 표에 표시된 규칙과 일치하도록 규칙을 편집합니다. 이 자습서의 뒷부분에서 EC2 인스턴스를 생성한 후, Windows 인스턴스용 Amazon EC2 사용 설명서Windows 인스턴스에 연결에서 설명한 것처럼 EC2 인스턴스의 퍼블릭 IP 주소로 인바운드 규칙 RDP 소스를 편집합니다.

4단계: Amazon FSx for Windows File Server 파일 시스템 생성

보안 그룹을 확인 및 업데이트하고 Active Directory를 생성하여 활성 상태가 되면 Active Directory와 동일한 VPC에 FSx for Windows File Server 파일 시스템을 생성합니다. 다음 단계에 따라 Windows File Server 파일 시스템을 Windows 작업에 사용할 FSx for Windows File Server 파일 시스템을 생성합니다.

첫 파일 시스템을 생성합니다.
  1. Amazon FSx 콘솔을 엽니다.

  2. 대시보드에서 파일 시스템 생성(Create file system)을 선택해 파일 시스템 생성 마법사를 시작합니다.

  3. 파일 시스템 유형 선택 페이지에서 FSx for Windows File Server를 선택한 다음 다음을 선택합니다. 파일 시스템 생성 페이지가 표시됩니다.

  4. 파일 시스템 정보(File system details) 섹션에서 파일 시스템의 이름을 입력합니다. 파일 시스템의 이름을 지정하면 파일 시스템을 보다 쉽게 찾고 관리할 수 있습니다. 최대 256자의 유니코드 문자를 사용할 수 있습니다. 허용되는 문자는 문자, 숫자, 공백과 특수 문자 +기호(+), 빼기 기호(-), 등호(=), 마침표(.), 밑줄(_), 콜론(:) 및 슬래시(/)입니다.

  5. 배포 유형(Deployment type)에서 단일 AZ(Single-AZ)를 사용하여 단일 가용 영역에 배포되는 파일 시스템을 배포합니다. 단일 AZ 2는 단일 가용 영역 파일 시스템의 최신 세대이며 SSD 및 HDD 스토리지를 지원합니다.

  6. 스토리지 유형(Storage type)에서 HDD를 선택합니다.

  7. 스토리지 용량(Storage capacity)에 최소 스토리지 용량을 입력합니다.

  8. 용량 처리량(Throughput capacity)을 기본 설정으로 유지합니다.

  9. 네트워크 및 보안(Network & security) 섹션에서 AWS Directory Service 디렉터리에 선택한 것과 동일한 Amazon VPC를 선택합니다.

  10. VPC 보안 그룹(VPC Security Groups)에서 3단계: 보안 그룹 확인 및 업데이트에서 확인한 보안 그룹을 선택합니다.

  11. Windows 인증(Windows authentication)에서 AWS 관리형 Microsoft Active Directory를 선택한 다음 목록에서 AWS Directory Service 디렉터리를 선택합니다.

  12. 암호화(Encryption)에서 기본 암호화 키(Encryption key) 설정을 aws/fsx(기본값)로 그대로 사용합니다.

  13. 유지 관리 기본 설정(Maintenance preferences)의 기본 설정을 유지합니다.

  14. 다음(Next) 버튼을 클릭합니다.

  15. 파일 시스템 생성 페이지에 표시된 파일 시스템 구성을 검토합니다. 참조할 수 있도록 파일 시스템을 생성한 후 수정할 수 있는 파일 시스템 설정을 확인합니다. 파일 시스템 생성을 선택합니다.

  16. 파일 시스템 ID를 기록합니다. 이후 단계에서 사용해야 합니다.

    FSx for Windows File Server 시스템이 생성되는 동안 다음 단계로 이동하여 클러스터 및 EC2 인스턴스를 생성할 수 있습니다.

5단계: Amazon ECS 클러스터 생성

Amazon ECS 콘솔을 사용하여 클러스터 생성
  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 모음에서 사용할 리전을 선택합니다.

  3. 탐색 창에서 클러스터를 선택합니다.

  4. 클러스터(Clusters) 페이지에서 클러스터 생성(Create cluster)을 선택합니다.

  5. 클러스터 구성클러스터 이름windows-fsx-cluster를 입력합니다.

  6. 인프라에서 AWS Fargate(서버리스)를 선택 취소한 다음 Amazon EC2 인스턴스를 선택합니다.

    1. Auto Scaling 그룹을 생성하려면 Auto Scaling 그룹(ASG)(Auto Scaling group (ASG))에서 새 그룹 생성(Create new group)을 선택한 후 그룹에 대한 다음 세부 정보를 제공합니다.

      • 운영 체제/아키텍처의에서 Windows Server 2019 Core를 선택합니다.

      • EC2 인스턴스 유형에서 t2.medium 또는 t2.micro를 선택합니다.

  7. 생성(Create)을 선택합니다.

6단계: Amazon ECS 최적화 Amazon EC2 인스턴스 생성

Amazon ECS Windows 컨테이너 인스턴스를 생성합니다.

Amazon ECS 인스턴스 생성
  1. aws ssm get-parameters 명령을 사용하여 VPC를 호스팅하는 리전에 대한 AMI 이름을 검색합니다. 자세한 내용은 Amazon ECS 최적화 AMI 메타데이터 검색을 참조하세요.

  2. Amazon EC2 콘솔을 사용하여 인스턴스를 시작합니다.

    1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

    2. 탐색 모음에서 사용할 리전을 선택합니다.

    3. EC2 대시보드에서 인스턴스 시작(Launch Instance)을 선택합니다.

    4. Name(이름)에 고유한 이름을 입력합니다.

    5. 애플리케이션 및 OS 이미지(Amazon Machine Image)에서 검색 필드에 첫 번째 단계에서 검색한 AMI 이름을 입력합니다.

    6. 인스턴스 유형에서 t2.medium 또는 t2.micro를 선택합니다.

    7. Key pair (login)(키 페어(로그인))에서 키 페어를 선택합니다. 키 페어를 지정하지 않은 경우

    8. 네트워크 설정에서 VPC서브넷에 대해 VPC 및 퍼블릭 서브넷을 선택합니다.

    9. Network settings(네트워크 설정)의 Security group(보안 그룹)에서 기존 보안 그룹을 선택하거나 새 보안 그룹을 생성합니다. 선택한 보안 그룹에 자습서의 사전 조건에 정의된 인바운드 및 아웃바운드 규칙이 있는지 확인합니다.

    10. Network settings(네트워크 설정)의 Auto-assign Public IP(퍼블릭 IP 자동 할당)에서 Enable(활성화)을 선택합니다.

    11. 고급 세부 정보를 확장하고 도메인 조인 디렉터리에서 생성한 Active Directory의 ID를 선택합니다. 이 옵션 도메인은 EC2 인스턴스가 시작될 때 AD에 조인합니다.

    12. Advanced details(고급 세부 정보)의 IAM instance profile(IAM 인스턴스 프로파일)에서 ecsInstanceRole을 선택합니다.

    13. 다음 사용자 데이터로 Amazon ECS 컨테이너 인스턴스를 구성합니다. Advanced Details(고급 세부 정보)에서 다음 스크립트를 User data(사용자 데이터) 필드에 붙여 넣고 cluster_name을 클러스터의 이름으로 바꿉니다.

      <powershell> Initialize-ECSAgent -Cluster windows-fsx-cluster -EnableTaskIAMRole </powershell>
    14. 준비가 되었으면 승인 필드를 선택한 다음 인스턴스 시작(Launch Instances)을 선택합니다.

    15. 확인 페이지에서 인스턴스가 실행 중인지 확인할 수 있습니다. 인스턴스 보기를 선택하여 확인 페이지를 닫고 콘솔로 돌아갑니다.

  3. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  4. 탐색 창에서 클러스터를 선택한 다음 windows-fsx-cluster를 선택합니다.

  5. 인프라 탭을 선택하고 인스턴스가 windows-fsx-cluster 클러스터에 등록되었는지 확인합니다.

7단계: Windows 태스크 정의 등록

Amazon ECS 클러스터에서 Windows 컨테이너를 실행하려면 먼저 태스크 정의를 등록해야 합니다. 다음 작업 정의 예제는 간단한 웹페이지를 보여 줍니다. 이 작업으로 FSx 파일 시스템에 액세스할 수 있는 두 개의 컨테이너가 시작됩니다. 첫 번째 컨테이너는 HTML 파일을 파일 시스템에 작성합니다. 두 번째 컨테이너는 파일 시스템에서 HTML 파일을 다운로드하고 웹페이지를 제공합니다.

  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 창에서 작업 정의를 선택합니다.

  3. 새 태스크 정의 생성(Create new task definition), JSON으로 새 태스크 정의 생성(Create new task definition with JSON)을 선택합니다.

  4. JSON 편집기 상자에서 작업 실행 역할의 값과 FSx 파일 시스템에 대한 세부 정보를 바꾼 다음 저장을 선택합니다.

    { "containerDefinitions": [ { "entryPoint": [ "powershell", "-Command" ], "portMappings": [], "command": ["New-Item -Path C:\\fsx-windows-dir\\index.html -ItemType file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>It Works!</h2> <p>You are using Amazon FSx for Windows File Server file system for persistent container storage.</p>' -Force"], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": false, "name": "container1", "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ] }, { "entryPoint": [ "powershell", "-Command" ], "portMappings": [ { "hostPort": 443, "protocol": "tcp", "containerPort": 80 } ], "command": ["Remove-Item -Recurse C:\\inetpub\\wwwroot\\* -Force; Start-Sleep -Seconds 120; Move-Item -Path C:\\fsx-windows-dir\\index.html -Destination C:\\inetpub\\wwwroot\\index.html -Force; C:\\ServiceMonitor.exe w3svc"], "mountPoints": [ { "sourceVolume": "fsx-windows-dir", "containerPath": "C:\\fsx-windows-dir", "readOnly": false } ], "cpu": 512, "memory": 256, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "essential": true, "name": "container2" } ], "family": "fsx-windows", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "volumes": [ { "name": "fsx-windows-dir", "fsxWindowsFileServerVolumeConfiguration": { "fileSystemId": "fs-0eeb5730b2EXAMPLE", "authorizationConfig": { "domain": "example.com", "credentialsParameter": "arn:arn-1234" }, "rootDirectory": "share" } } ] }

8단계: 작업 실행 및 결과 보기

태스크를 실행하기 전에 FSx for Windows File Server 파일 시스템의 상태가 사용 가능(Available)인지 확인합니다. 사용 가능하면 생성한 태스크 정의를 사용하여 태스크를 실행할 수 있습니다. 파일 시스템을 사용하여 HTML 파일을 섞는 컨테이너를 생성하여 태스크를 시작합니다. 셔플 후, 웹 서버는 간단한 HTML 페이지를 제공합니다.

참고

VPN 내에서 웹사이트에 연결하지 못할 수도 있습니다.

Amazon ECS 콘솔을 사용하여 작업을 실행하고 결과를 확인합니다.
  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택한 다음 windows-fsx-cluster를 선택합니다.

  3. 작업 탭을 선택하고 새 작업 실행을 선택합니다.

  4. 시작 유형(Launch Type)EC2로 선택합니다.

  5. 배포 구성에서 작업 정의에 대해 fsx-windows를 선택한 다음 생성을 선택합니다.

  6. 작업 상태가 RUNNING이면 작업 ID를 선택합니다.

  7. 컨테이너에서 container1 상태가 STOPPED이면 container2를 선택하여 컨테이너의 세부 정보를 확인합니다.

  8. container2의 컨테이너 세부 정보에서 네트워크 바인딩을 선택한 다음 컨테이너와 연결된 외부 IP 주소를 클릭합니다. 브라우저가 열리고 다음 메시지가 표시됩니다.

    Amazon ECS Sample App
    It Works! 
    You are using Amazon FSx for Windows File Server file system for persistent container storage.
    참고

    메시지가 표시되는 데 몇 분 정도 걸릴 수 있습니다. 몇 분 후 메시지가 표시되지 않는 경우 VPN에서 실행되고 있지 않은지 확인하고 컨테이너 인스턴스의 보안 그룹이 포트 443에서 인바운드 네트워크 HTTP 트래픽을 허용하는지 확인합니다.

9단계: 정리

참고

FSx for Windows File Server 파일 시스템 또는 AD를 삭제하는 데 20~45분 정도 걸립니다. AD 삭제 태스크를 시작하기 전에 FSx for Windows File Server 파일 시스템의 삭제 작업이 완료될 때까지 기다려야 합니다.

FSx for Windows File Server 파일 시스템을 삭제합니다.
  1. Amazon FSx 콘솔을 엽니다.

  2. 방금 생성한 FSx for Windows File Server 파일 시스템의 왼쪽에 있는 라디오 버튼을 선택합니다.

  3. 작업을 선택합니다.

  4. 파일 시스템 삭제(Delete file system)를 선택합니다.

AD를 삭제합니다.
  1. AWS Directory Service 콘솔을 엽니다.

  2. 방금 생성한 AD의 왼쪽에 있는 라디오 버튼을 선택합니다.

  3. 작업을 선택합니다.

  4. 디렉터리 삭제(Delete directory)를 선택합니다.

클러스터를 삭제합니다.
  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 창에서 클러스터를 선택한 다음 fsx-windows-cluster를 선택합니다.

  3. 클러스터 삭제(Delete cluster)를 선택합니다.

  4. 상자에 구문을 입력한 다음, 삭제를 선택합니다.

EC2 인스턴스를 종료합니다.
  1. Amazon EC2 콘솔을 엽니다.

  2. 왼쪽 메뉴에서 인스턴스(Instances)를 선택합니다.

  3. 생성한 EC2 인스턴스의 왼쪽에 있는 상자를 선택합니다.

  4. 인스턴스 상태를 클릭하고 인스턴스 종료를 클릭합니다.

보안 암호를 삭제합니다.
  1. Secrets Manager 콘솔을 엽니다.

  2. 이 시연을 위해 생성한 보안 암호를 선택합니다.

  3. 작업(Actions)을 클릭합니다.

  4. 보안 암호 삭제(Delete secret)를 선택합니다.