다음을 통해 공유


Azure SQL Edge 배포

Important

Azure SQL Edge는 2025년 9월 30일에 사용 중지됩니다. 자세한 내용 및 마이그레이션 옵션은 사용 중지 알림을 참조하세요.

참고 항목

Azure SQL Edge는 더 이상 ARM64 플랫폼을 지원하지 않습니다.

Azure SQL Edge는 IoT 및 Azure IoT Edge 배포에 최적화된 관계형 데이터베이스 엔진입니다. IoT 애플리케이션과 솔루션을 위한 고성능 데이터 스토리지 및 처리 계층을 만드는 기능을 제공합니다. 이 빠른 시작에서는 Azure Portal을 사용하여 Azure IoT Edge를 통해 Azure SQL Edge 모듈 만들기를 시작하는 방법을 보여줍니다.

시작하기 전에

참고 항목

Azure Linux VM을 IoT Edge 디바이스로 배포하려면 이 빠른 시작 가이드를 참조하세요.

IoT Hub를 사용하여 Azure SQL Edge 모듈 배포

Azure SQL Edge는 Azure Portal에서 모듈 배포의 지침을 사용하여 배포할 수 있습니다. Azure SQL Edge의 이미지 URI는 mcr.microsoft.com/azure-sql-edge:latest입니다.

  1. IoT Edge 모듈 추가 페이지에서 IoT Edge 모듈 이름, 이미지 URI, 다시 시작 정책원하는 상태에 대해 원하는 값을 지정합니다.

    배포하려는 버전에 따라 다음 이미지 URI를 사용합니다.

    • 개발자 버전 - mcr.microsoft.com/azure-sql-edge/developer
    • 프리미엄 버전 - mcr.microsoft.com/azure-sql-edge/premium
  2. IoT Edge 모듈 추가 페이지의 환경 변수 섹션에서 원하는 환경 변수 값을 지정합니다. Azure SQL Edge 환경 변수의 전체 목록은 환경 변수를 사용하여 구성을 참조하세요.

    매개 변수 설명
    ACCEPT_EULA 이 값을 Y로 설정하여 최종 사용자 라이선스 계약에 동의
    MSSQL_SA_PASSWORD SQL Edge 관리자 계정에 대한 강력한 암호를 지정하려면 값을 설정합니다.
    MSSQL_LCID SQL Edge에 사용할 원하는 언어 ID를 설정하려면 값을 설정합니다. 예를 들어 1036은 프랑스어입니다.
    MSSQL_COLLATION SQL Edge에 대한 기본 데이터 정렬을 설정하는 값을 설정합니다. 이 설정은 데이터 정렬에 대한 언어 ID(LCID)의 기본 매핑을 재정의합니다.
  3. IoT Edge 모듈 추가 페이지의 컨테이너 만들기 옵션 섹션에서 요구 사항에 따라 옵션을 설정합니다.

    • 호스트 포트

      지정한 호스트 포트를 컨테이너의 포트 1433(기본 SQL 포트)에 매핑합니다.

    • 바인딩탑재

      둘 이상의 SQL Edge 모듈을 배포해야 하는 경우 탑재 옵션을 업데이트하여 영구적 볼륨의 새 원본 및 대상 쌍을 만들어야 합니다. 탑재 및 볼륨에 대한 자세한 내용은 Docker 설명서의 볼륨 사용을 참조하세요.

    {
        "HostConfig": {
            "CapAdd": [
                "SYS_PTRACE"
            ],
            "Binds": [
                "sqlvolume:/sqlvolume"
            ],
            "PortBindings": {
                "1433/tcp": [
                    {
                        "HostPort": "1433"
                    }
                ]
            },
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "sqlvolume",
                    "Target": "/var/opt/mssql"
                }
            ]
        },
        "Env": [
            "MSSQL_AGENT_ENABLED=TRUE",
            "ClientTransportType=AMQP_TCP_Only",
            "PlanId=asde-developer-on-iot-edge"
        ]
    }
    

    Important

    설치된 버전에 따라 PlanId 환경 변수를 설정합니다.

    • 개발자 버전 - asde-developer-on-iot-edge
    • 프리미엄 버전 - asde-premium-on-iot-edge

    이 값이 잘못 설정되면 Azure SQL Edge 컨테이너가 시작되지 않습니다.

    Warning

    모듈을 다시 설치하는 경우 먼저 기존 바인딩을 제거해야 합니다. 그렇지 않으면 환경 변수가 업데이트되지 않습니다.

  4. IoT Edge 모듈 추가 페이지에서 추가를 선택합니다.

  5. 배포 경로를 정의해야 하는 경우 디바이스에서 모듈 설정 페이지에서 다음: 경로>를 선택합니다. 그렇지 않으면 검토 + 만들기를 선택합니다. 경로를 구성하는 방법에 대한 자세한 내용은 IoT Edge에서 모듈 배포 및 경로 설정을 참조하세요.

  6. 디바이스에서 모듈 설정 페이지에서 만들기를 선택합니다.

Azure SQL Edge에 연결

다음 단계에서는 Azure SQL Edge에 연결하기 위해 컨테이너 내에서 Azure SQL Edge 명령줄 도구 sqlcmd를 사용합니다.

참고 항목

ARM64 버전의 Azure SQL Edge 컨테이너 내에서는 sqlcmd를 포함하여 SQL Server 명령줄 도구를 사용할 수 없습니다.

  1. docker exec -it 명령을 사용하여 실행 중인 컨테이너 내에서 대화형 bash 셸을 시작합니다. 다음 예제에서 AzureSQLEdge는 IoT Edge 모듈의 Name 매개 변수로 지정된 이름입니다.

    sudo docker exec -it AzureSQLEdge "bash"
    
  2. 컨테이너 내부로 들어가면 sqlcmd 도구를 사용하여 로컬로 연결합니다. sqlcmd는 기본적으로 경로에 있지 않으므로 전체 경로를 지정해야 합니다.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
    

    명령줄에서 암호를 생략하여 입력하라는 메시지가 표시되도록 할 수 있습니다.

  3. 성공하면 sqlcmd 명령 프롬프트 1>이 표시됩니다.

데이터 만들기 및 쿼리

다음 섹션에서는 sqlcmd 및 Transact-SQL을 사용하여 새 데이터베이스를 만들고, 데이터를 추가하고, 쿼리를 실행하는 단계를 안내합니다.

새 데이터베이스 만들기

다음 단계에서는 TestDB라는 새 데이터베이스를 만듭니다.

  1. sqlcmd 명령 프롬프트에서 다음 Transact-SQL 명령을 붙여넣어 테스트 데이터베이스를 만듭니다.

    CREATE DATABASE TestDB;
    GO
    
  2. 다음 줄에 서버에 있는 모든 데이터베이스의 이름을 반환하는 쿼리를 작성합니다.

    SELECT name from sys.databases;
    GO
    

데이터 삽입

다음으로 Inventory라는 새 테이블을 만들고 두 개의 새 행을 삽입합니다.

  1. sqlcmd 명령 프롬프트에서 컨텍스트를 새 TestDB 데이터베이스로 전환합니다.

    USE TestDB;
    
  2. Inventory라는 새 테이블을 만듭니다.

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. 새 테이블에 데이터를 삽입합니다.

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. GO를 입력하여 앞의 명령을 실행합니다.

    GO
    

데이터 선택

이제 쿼리를 실행하여 Inventory 테이블에서 데이터를 반환합니다.

  1. sqlcmd 명령 프롬프트에서 Inventory 테이블에서 수량이 152보다 큰 행을 반환하는 쿼리를 입력합니다.

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. 다음 명령을 실행합니다.

    GO
    

sqlcmd 명령 프롬프트 종료

  1. sqlcmd 세션을 종료하려면 QUIT를 입력합니다.

    QUIT
    
  2. 컨테이너에서 대화형 명령 프롬프트를 종료하려면 exit을 입력합니다. 컨테이너는 대화형 bash 셸을 종료한 후에도 계속 실행됩니다.

컨테이너 외부에서 연결

SQL 연결을 지원하는 모든 외부 Linux, Windows 또는 macOS 도구에서 Azure SQL Edge 인스턴스에 연결하고 SQL 쿼리를 실행할 수 있습니다. 외부에서 SQL Edge 컨테이너에 연결하는 방법에 대한 자세한 내용은 Azure SQL Edge 연결 및 쿼리를 참조하세요.

이 빠른 시작에서는 IoT Edge 디바이스에 SQL Edge 모듈을 배포했습니다.