WiseN

[Re18특집] 안전하고 안정적인 라이브 비디오 전송 - AWS Elemental MediaConnect 출시

Dec 21,2018   |   AWS

작성자_이 재혁

페이스북 공유하기 트위터 공유하기
Blog thumbnail

여기서 다루는 내용



· Intro
· AWS Elemental MediaConnect 주요기능
· AWS Elemental MediaConnect 설정화면
· Outro







Intro






안녕하십니까, GS네오텍 이재혁입니다.

이번 Re:Invent 2018에서 AWS Elemental MediaConnect 기능이 업데이트되었습니다.

기존 브로드캐스터는 라이브 영상 콘텐츠를 인공위성 네트워크 또는 광연결을 사용하여 고 가치 콘텐츠를 전송해왔습니다.
AWS Elemental MediaConnect를 사용하면 인공위성 또는 광통신 서비스에 드는 시간과 비용의 극히 일부 만으로도
안전하고 안정적인 라이브 비디오 전송이 가능 해졌습니다.

이번 포스트에서는 새롭게 출시된 AWS Elemental MediaConnect의 주요 내용을 확인해보겠습니다.







AWS Elemental MediaConnect 주요기능






AWS Elemental MediaConnect는 방송사 또는 비디오 제공 업체가 실시간 라이브 영상을
AWS 클라우드에 안정적으로 가져오고 AWS 클라우드 내부 또는 또 다른 외부의 대상에 쉽게 배포할 수 있게 해주는 서비스 입니다.

아래와 같이 3가지 주요기능이 있는데요.
각 기능이 어떻게 사용 되는지 간략하게 먼저 살펴볼까요?


  • 1. Contribution

  • 2. Distribution

  • 3. Entitlements




1. 첫 번째는 Contribution 입니다.

※ AWS Elemental MediaConnect - Contribution Flow

위 그림과 같이 온-프레미스의 인코더로부터 라이브 영상 콘텐츠를 AWS 클라우드로 수집할 수 있습니다.

입력대상과 출력대상이 아래와 같다고 보시면 이해가 쉽습니다.

  • 입력대상 : AWS Elemental MediaConnect 입장에서 온-프레미스 인코더

  • 출력대상 : AWS Elemental MediaConnect 입장에서 MediaLive와 같은 클라우드 인코더, 다른 외부의 대상



※ AWS Elemental MediaConnect - Create Flow (SourceType - Standard Source)

온-프레미스 인코더의 입력을 받기위해 MediaConnect Flow 생성 옵션의 Source Type을 "Standard Source"로 지정해 줍니다.

생성된 MediaConnect Flow를 MediaLive로 전달하는 설정화면은 다음 챕터에서 살펴보기로 하겠습니다.


    2. 두 번째는 Distribution 입니다.

    ※ AWS Elemental MediaConnect - Distribution Flow

    AWS Elemental MediaConnect에서는 서로 다른 지리적 위치로 라이브 영상을 배포할 수 있습니다.

    위 그림과 같이 온-프레미스 인코더는 오레곤 주 포틀랜드에 있고 수신자가 전세계에 위치해 있다면, 인코더와 가장 가까운 us-west-1리전 MediaConnect에서 라이브 영상을 전달 받아 전 세계에 있는 다수의 AWS 리전과 리시버(제휴사 또는 TV방송국 가입자)들에게 라이브 영상을 배포 할 수 있습니다.

    다른 지역으로 배포하는 설정화면은 다음 챕터에서 살펴보기로 하고 AWS Elemental MediaConnect가 사용 가능한 지역을 먼저 살펴볼까요?

      [ AWS Elemental MediaConnect 사용 가능한 지역 ]


      • 미국 동부 (버지니아 북부)

      • 미국 서부 (캘리포니아 북부)

      • 미국 서부 (오레곤)

      • 아시아 태평양 (싱가포르)

      • 아시아 태평양 (시드니)

      • 아시아 태평양 (도쿄)

      • EU (프랑크푸르트)

      • EU (아일랜드)


      아쉽게도 서울 리전에는 아직 MediaConnect가 출시되지 않았네요.

      서울 리전도 하루빨리 출시 되었으면 좋겠습니다!



        3. 세 번째는 Entitlements 입니다.

        ※ AWS Elemental MediaConnect - Entitlements Flow

        Entitlements는 입력되는 라이브 영상을 다른 AWS 계정에 자격을 부여하여 공유 할 수 있습니다. (동일한 지역 한정)


        ※ AWS Elemental MediaConnect - Create Flow (SourceType - Entitlement)

        AWS 계정(스포츠 라이브 영상 브로드캐스터)은 다른 AWS 계정(TV 방송국 가입자)을 계정 넘버로 Entitlement 자격을 부여할 수 있습니다.

        TV 방송국 가입자의 AWS계정에서 MediaConnect Flow를 생성 시 Source Type을 "Entitled Source"로 선택하여 생성하면 온-프레미스 스포츠 라이브 영상이 브로드캐스터의 AWS계정 MediaConnect Flow로 전달될 때, TV 방송국 가입자의 AWS계정 MediaConnect Flow에서도 스포츠 라이브 영상을 전달 받을 수 있게 됩니다.

        다음 챕터에서는 AWS Elemental MediaConnect를 직접 설정화면을 살펴보며 앞서 설명한 기능에 대한 이해를 돕고자 합니다.





        AWS Elemental MediaConnect 설정화면







        아래 순서로 AWS Elemental MediaConnect 웹 콘솔 설정화면을 살펴보도록 하겠습니다.


        • 1. Contribution

        • 2. Distribution

        • 3. Entitlements



        1. 첫번 째 순서는 Contribution 입니다. MediaConnect의 Flow 생성부터 MediaLive 단일채널에 연결하는 설정까지 살펴보겠습니다.

        ※ AWS Elemental MediaConnect - WebConsole 화면

        MediaConnect Flow 목록에 현재 아무것도 없네요. 도쿄 리전에 MediaConnect의 Flow를 한번 생성해 보겠습니다.


        ※ AWS Elemental MediaConnect - Create Flow (설정화면)

        MediaConnect Flow 생성시에 위와같은 설정화면을 확인하실 수 있습니다.
        어떤 입력 항목을 필요로 하는지 아래서 잠시 살펴보겠습니다.

          - [Details] 입력 항목
          이름 입력과 리전 내 가용영역을 선택할 수 있게 되어있네요.

          - [Source] 입력 항목
          이전 챕터에서 설명드린 Source Type에는 "Standard Source""Entitled Source"를 선택할 수 있습니다.


          • "Standard Source" : 온-프레미스의 인코더 영상을 입력으로함

          • "Entitled Source" : 다른 AWS 클라우드 계정의 MediaConnect Flow 영상을 입력으로함



          그 외 이름, 영상의 프로토콜, 포트, IP대역 등을 지정해 줄 수 있습니다.

          선택할 수 있는 프로토콜의 종류는 3가지로 간략하게 살펴보겠습니다.

          • "Zixi" : 가장 신뢰할 수 있는 프로토콜로 안전성 및 장거리 전송이 가능합니다.

          • "RTP-FEC" : FEC(Forward Error Correction)를 통해 패킷 손실을 방지합니다.

          • "RTP" : RTP-FEC보다 적은 대역폭으로 전송이 가능합니다.



          IP 대역의 경우 온-프레미스의 인코더의 IP 주소대역 또는 같은 AWS 계정에서 MediaConnect Flow를
          다른 리전으로 Distribution 시 생성된 Egress IP/32 값으로 입력 가능하겠네요.

          비트레이트의 경우 지정해 주지 않을경우, 최대 80Mbps로 설정됩니다.

          Decryption의 경우 라이브 영상의 보안을 강화할 수 있는 옵션으로 중요한 기능중 하나지만
          블로그 내용이 너무 길어지는 만큼! 해당 포트스에서는 활성화 하지 않고 진행하겠습니다.

            모든 값을 입력 했다면 "Create Flow"를 클릭해 주세요.


            ※ AWS Elemental MediaConnect - Flow List

            제가 생성한 "sports_event_A Flow"가 생성 되었네요.
            추가 생성한 "sports_event_B Flow"도 목록에서 보이는데요.

            2개의 Flow가 사용될 MediaLive 채널 Input 생성은 MediaConnect를 조금 더 살펴보고 알아보도록 하겠습니다.

            생성된 MediaConnect의 Flow는 "Start & Stop" 방식입니다. 라이브 영상을 전달 받기 위해서는 Flow "Start" 버튼을 눌러 활성화하고 사용하지 않을 때는 "Stop" 버튼을 클릭하여 중지 시키면 됩니다. (MediaLive 채널 사용방식과 동일합니다. 사용하지 않을때도 Flow가 활성화 되어있다면.. 예상치 못한 많은 비용이 발생하겠죠?)

              이제 생성된 MediaConnect Flow에 어떤 항목 들이 있는지 살펴볼까요?


              ※ AWS Elemental MediaConnect - Flows (sports_event_A)

              [Details]는 생성된 MediaConnect Flow의 디테일한 정보들을 살펴볼 수 있습니다.
              그 중 ARN 값은 MediaLive에서 MediaConnect의 영상 입력을 받기위한 위한 설정 값으로 필요합니다. (중요!!)

              그 외 아래 보이는 3가지의 탭은 다음과 같습니다.


              • [Source] : 온-프레미스 인코더는 Source에 설정된 값들을 참고하여 라이브 영상을 전송하게 됩니다.
              • [Outputs] : MediaLive의 채널 인풋을 MediaConnect Type으로 생성하면 Outputs 항목에 자동 추가됩니다.

              • AWS 같은 계정 내 다른 지역으로 MediaConnect Flow를 Distribution를 하기 위한 Add output 설정도 이곳에서 진행됩니다.
              • [Entitlements] : AWS 다른 계정에게 현재 생성된 MediaConnect Flow의 권한을 부여하는 곳입니다.



              온-프레미스 인코더를 설정하시는 분들에게 [Source]에 보이는 항목을 전달해 주기로하고,
              저는 온-프레미스에서 받은 라이브 영상을 AWS 클라우드 MediaLive로 전달하는 [Outputs] 설정을 확인해 보겠습니다.


              ※ AWS Elemental MediaLive - Input Create (Input type - MediaConnect)

              위에 보이는 화면은 AWS Elemental MediaLive 채널에 부착할 Input을 생성하는 화면입니다.

              MediaLive Input 생성 시 리던던시를 확보를 위해 2곳의 입력란이 존재하며
              MediaConnect Flow 출력 2곳이 MediaLive 단일 채널을 가리키도록 구성됩니다. (생성된 인풋이 MediaLive 단일 채널에 부착)

                위와 같이 MediaConnect 입력방식을 선택하면 앞서 생성한 2개의 MediaConnect Flow ARN 값을 입력해 줍니다.

                • arn:aws:mediaconnect:ap-northeast-1:[Account ID]:flow:1-DVYCXVFRVlBQVVII-14160f76b714:sports_event_A

                • arn:aws:mediaconnect:ap-northeast-1:[Account ID]:flow:1-AlYEBFQEXVsDVl8A-9422459ca9f1:sports_event_B


                * 주의사항 : MediaConnect Flow 생성 시 웹 콘솔에서는 [Details][Source]에서 각각의 ARN이 1개씩 표시 됩니다.
                Details 항목에서 표시되는 "flow"가 포함된 ARN을 입력해야 MediaLive Input 생성 시에 오류가 발생하지 않으니 해당 사항을 참고해주세요!

                  MediaLive에 생성 완료된 Input에 [Details]는 아래와 같습니다.


                  ※ AWS Elemental MediaLive - Inputs Create (Details)

                  [Details]에 표시되는 값들을 살펴보면 "sports_event_A Flow""sports_event_B Flow"에 대한 ARN 설정을 확인할 수 있습니다.


                  ※ AWS Elemental MediaConnect - Flows (sports_event_A - Outputs)

                  MediaLive의 Inputs을 MediaConnect Type으로 선택하여 생성하는 즉시
                  MediaConnect의 [Outputs] 탭에도 위와 같이 MediaLive로의 Outputs이 자동 생성 됩니다.

                  제가 생성한 MediaLive Input을 MediaLive Channel 생성시에 부착하는 설정도 간략하게 살펴보겠습니다.


                  ※ AWS Elemental MediaLive - Channel Create (Input attachments - sports_event_medialive_input)

                  위와 같이 MediaLive의 채널 생성중 Input attachments 설정에서 제가 생성한 "sports_event_medialive_input"을 선택해 주시면 됩니다.
                  (MediaLive의 채널 생성 후 라이브 영상 확인은 블로그 포스팅이 너무 길어지는 만큼! 생략하도록 하겠습니다.)


                    2. 두번 째 Distribution에서는 다른 리전에 있는 MediaConnect Flow로의 배포를 생성해보겠습니다.

                    기존 도쿄 리전 MediaConnect "sports_event_A Flow"로 입력받는 라이브 영상을
                    오레곤 리전 MediaConnect "sports_event_A_oregon Flow"로 배포하는 설정을 만들어 보겠습니다.

                    기존 도쿄 리전에 MediaConnect Flow에서 다른 지역으로 라이브 영상을 배포하기 위해서는
                    제가 배포하고 싶은 다른 지역중 하나인 오레곤 리전에서 MediaConnect Flow를 우선 생성해 줘야겠죠?


                    ※ AWS Elemental MediaConnect - Create Flow (Oregon Region)

                    오레곤 리전에 MediaConnect Flow 생성 시 영상을 전달 받을 "Whitelist CIDR block" 입력 란에
                    도쿄 리전에 생성한 "sports_event_A Flow""Egress IP"를 입력해야겠죠? 이후 생성된 화면은 아래와 같습니다.


                    ※ AWS Elemental MediaConnect - Flows (sports_event_A_oregon - Source)

                    위와 같이 오레곤 리전에서도 MediaConnect "sports_event_A_oregen Flow" 가 생성되었네요.
                    (위 오레곤 리전에서 생성한 Flow는 도쿄리전 Flow중 IP 대역이 일치하는 라이브 영상만 받게되겠네요.)

                      오레곤 리전 MediaConnect에 Flow를 추가하여 다른 지역에서도 라이브 영상을 배포 받을 준비가 되었으니
                      반대로 기존 도쿄 리전 MediaConnect Flow에서도 오레곤 지역으로 배포하기 위한 [Outputs] 설정이 필요하겠네요.

                      도쿄 리전에 MediaConnect "sports_event_A Flow"에 설정을 하러 가보겠습니다.


                      ※ AWS Elemental MediaConnect - Add output (Flows - sports_event_A)

                      도쿄 리전에 MediaConnect "sports_event_A Flow" [Outputs] 탭에서 "Add output"을 클릭해 줍니다. "IP address"의 입력 값으로
                      오레곤 리전에 MediaConnect "sports_event_A_oregen Flow""Source Ingest IP Address" 보이는 값을 입력해 줍니다.


                      ※ AWS Elemental MediaConnect – Flows (sports_event_A – Outputs)

                      도쿄 리전에 MediaConnect "sports_event_A Flow"[Outputs]에서 오레곤 리전으로 배포하기 위한 설정이 완료되었습니다!
                      ("sports_event_A"[Outputs] 탭에는 MediaLive로의 배포, 같은 AWS 계정 오레곤 리전으로의 배포가 목록에 보여지고 있네요.)



                        3. 세번 째 Entitlements에서는 다른 AWS MediaConnect 계정에 자격을 주고 영상을 전달받는 설정을 살펴보겠습니다.

                        도쿄 리전에 생성한 MediaConnect “sports_event_A Flow”를 전달 받을 자격을
                        다른 AWS 계정에 부여하기 위해 [Entitlements] 탭으로 이동 후 "Grant entitlement"를 클릭합니다.


                        ※ AWS Elemental MediaConnect - Grant entitlement (Flows - sports_event_A)

                        Grant entitlement 생성 시 "Subscriber account ID"에는 다른 AWS 계정에 [Account ID]를 입력해 주시면 됩니다.


                        ※ AWS Elemental MediaConnect – Flows (sports_event_A – Entitlements)

                        MediaConnect “sports_event_A Flow” [Entitlements] 탭에 생성된 목록이 보이시나요?
                        자 이제, "sports_event_A Flow"에 대한 자격을 공유받은 AWS 계정에서 MediaConnect Flow를 생성해보겠습니다.


                        ※ AWS Elemental MediaConnect – Create Flow (Other AWS Account – Entitlements Source)

                        위와 같이 다른 AWS 계정에서 MediaConnect Flow 생성 간 Source Type을 "Entitled Source"로 선택시
                        자격을 준 AWS 계정에서 생성했던 "sports_event_A_entitlement"가 선택 가능하네요!

                        이제 자격을 부여 받은 다른 AWS 계정에서도 "sports_event_A Flow"에서 공유 받은 라이브 영상으로
                        새로운 MediaLive 또는 다른 리전으로 배포하는 Outputs을 생성할 수 있게 되었네요.

                          마지막으로 AWS Elemental MediaConnect Flow에는 최대 [20곳]을 Output으로 생성할 수 있습니다.
                          Entitlements의 경우 최대 [50계정]까지 자격을 부여할 수 있지만, 각각의 Entitlements는 Output을 생성하게 됩니다.

                            이 점 고려하여 20개의 Output에는 리시버에 대한 출력과 자격 부여로 생성된 출력 수를 적절하게 관리해 주는 것이 중요하겠습니다.






                            Outro






                              정리합니다.

                              Re:Invent 2018에서 신규 출시된 AWS Elemental MediaConnect에 대해서 살펴 보았는데요.

                              아직 서울 리전에 출시 되지는 않았지만 방송사나 미디어 고객사에서 충분히 관심을 가질만한 AWS 미디어 서비스가 아닐까 생각됩니다.

                              이번 포스팅에서 살펴보지 못한 Decryption 옵션에 대한 설명, 실제 라이브 영상을 전달받아 출력 영상을 확인하는 과정 등

                              좀 더 상세한 부분은 기회가 되면 다시 리뷰하도록 하고. 내용이 길어져 지루 하셨을 수 있으니 오늘은 여기서 마치도록 하겠습니다.

                                12월 25일. 크리스마스가 얼마남지 않았네요.

                                화이트 크리스마스를 기대하며, 메리 크리스마스 입니다! : )

                                  끝!