Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Satelit siaran publik menggunakan titik akhir aliran data (pita sempit)
Contoh ini dibangun dari analisis yang dilakukan di JPSS-1 - Public broadcast satellite (PBS) - Evaluasi bagian panduan pengguna.
Untuk menyelesaikan contoh ini, Anda harus mengasumsikan skenario -- Anda ingin menangkap jalur komunikasi HRD sebagai frekuensi menengah digital (digiF) dan memprosesnya seperti yang diterima oleh aplikasi titik akhir aliran data pada instans Amazon EC2 menggunakan SDR.
Jalur komunikasi
Bagian ini Rencanakan jalur komunikasi aliran data Anda mewakili memulai. Untuk contoh ini, Anda akan membuat dua bagian dalam CloudFormation template Anda: Parameter dan bagian Sumber Daya.
catatan
Untuk informasi selengkapnya tentang isi CloudFormation template, lihat bagian Template.
Untuk bagian Parameter, Anda akan menambahkan parameter berikut. Anda akan menentukan nilai untuk ini saat membuat tumpukan melalui CloudFormation konsol.
Parameters: EC2Key: Description: The SSH key used to access the EC2 receiver instance. Choose any SSH key if you are not creating an EC2 receiver instance. For instructions on how to create an SSH key see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html Type: AWS::EC2::KeyPair::KeyName ConstraintDescription: must be the name of an existing EC2 KeyPair. ReceiverAMI: Description: The Ground Station DDX AMI ID you want to use. Please note that AMIs are region specific. For instructions on how to retrieve an AMI see https://docs.aws.amazon.com/ground-station/latest/ug/dataflows.ec2-configuration.html#dataflows.ec2-configuration.amis Type: AWS::EC2::Image::Id
catatan
Anda perlu membuat pasangan kunci, dan memberikan nama untuk EC2Key parameter Amazon EC2. Lihat Membuat pasangan kunci untuk instans Amazon EC2 Anda.
Selain itu, Anda harus memberikan ID AMI khusus wilayah yang benar, saat membuat CloudFormation tumpukan. Lihat AWS Ground Station Gambar Mesin Amazon (AMIs).
Cuplikan template yang tersisa berada di bagian Resources dari template. CloudFormation
Resources: # Resources that you would like to create should be placed within the resource section.
Mengingat skenario kami untuk mengirimkan jalur komunikasi tunggal ke instans EC2, Anda akan memiliki jalur pengiriman sinkron tunggal. Per Pengiriman data sinkron bagian tersebut, Anda harus menyiapkan dan mengonfigurasi instans Amazon EC2 dengan aplikasi titik akhir aliran data, dan membuat satu atau beberapa grup titik akhir aliran data.
# The EC2 instance that will send/receive data to/from your satellite using AWS Ground Station. ReceiverInstance: Type: AWS::EC2::Instance Properties: DisableApiTermination: false IamInstanceProfile: !Ref GeneralInstanceProfile ImageId: !Ref ReceiverAMI InstanceType: m5.4xlarge KeyName: !Ref EC2Key Monitoring: true PlacementGroupName: !Ref ClusterPlacementGroup SecurityGroupIds: - Ref: InstanceSecurityGroup SubnetId: !Ref ReceiverSubnet BlockDeviceMappings: - DeviceName: /dev/xvda Ebs: VolumeType: gp2 VolumeSize: 40 Tags: - Key: Name Value: !Join [ "-" , [ "Receiver" , !Ref "AWS::StackName" ] ] UserData: Fn::Base64: | #!/bin/bash exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 echo `date +'%F %R:%S'` "INFO: Logging Setup" >&2 GROUND_STATION_DIR="/opt/aws/groundstation" GROUND_STATION_BIN_DIR="${GROUND_STATION_DIR}/bin" STREAM_CONFIG_PATH="${GROUND_STATION_DIR}/customer_stream_config.json" echo "Creating ${STREAM_CONFIG_PATH}" cat << STREAM_CONFIG > "${STREAM_CONFIG_PATH}" { "ddx_streams": [ { "streamName": "Downlink", "maximumWanRate": 4000000000, "lanConfigDevice": "lo", "lanConfigPort": 50000, "wanConfigDevice": "eth1", "wanConfigPort": 55888, "isUplink": false } ] } STREAM_CONFIG echo "Waiting for dataflow endpoint application to start" while netstat -lnt | awk '$4 ~ /:80$/ {exit 1}'; do sleep 10; done OS_VERSION_ID=$([ -f /etc/os-release ] && . /etc/os-release && echo "${VERSION_ID}") if [ "${OS_VERSION_ID}" = "2023" ]; then PYTHON_BIN="python3"; else PYTHON_BIN="python"; fi echo "Configuring dataflow endpoint application streams" streams_configured=false for attempt in $(seq 1 6); do if ${PYTHON_BIN} "${GROUND_STATION_BIN_DIR}/configure_streams.py" --configFileName "${STREAM_CONFIG_PATH}"; then streams_configured=true break fi echo "configure_streams attempt ${attempt} failed; retrying in 10s" sleep 10 done if [ "${streams_configured}" = "true" ]; then sleep 2 ${PYTHON_BIN} "${GROUND_STATION_BIN_DIR}/save_default_config.py" else echo "ERROR: configure_streams failed after ${attempt} attempts; not saving a default config" fi exit 0 # The AWS Ground Station Dataflow Endpoint Group that defines the endpoints that AWS Ground # Station will use to send/receive data to/from your satellite. DataflowEndpointGroup: Type: AWS::GroundStation::DataflowEndpointGroup Properties: ContactPostPassDurationSeconds: 180 ContactPrePassDurationSeconds: 120 EndpointDetails: - Endpoint: Name: !Join [ "-" , [ !Ref "AWS::StackName" , "Downlink" ] ] # needs to match DataflowEndpointConfig name Address: Name: !GetAtt ReceiverInstanceNetworkInterface.PrimaryPrivateIpAddress Port: 55888 SecurityDetails: SecurityGroupIds: - Ref: "DataflowEndpointSecurityGroup" SubnetIds: - !Ref ReceiverSubnet RoleArn: !GetAtt DataDeliveryServiceRole.Arn # The security group for your EC2 instance. InstanceSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: AWS Ground Station receiver instance security group. VpcId: !Ref ReceiverVPC SecurityGroupIngress: # To allow SSH access to the instance, add another rule allowing tcp port 22 from your CidrIp - IpProtocol: udp FromPort: 55888 ToPort: 55888 SourceSecurityGroupId: !Ref DataflowEndpointSecurityGroup Description: "AWS Ground Station Downlink Stream" # The security group that the ENI created by AWS Ground Station belongs to. DataflowEndpointSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Security Group for AWS Ground Station registration of Dataflow Endpoint Groups VpcId: !Ref ReceiverVPC SecurityGroupEgress: - IpProtocol: udp FromPort: 55888 ToPort: 55888 CidrIp: 10.0.0.0/8 Description: "AWS Ground Station Downlink Stream To 10/8" - IpProtocol: udp FromPort: 55888 ToPort: 55888 CidrIp: 172.16.0.0/12 Description: "AWS Ground Station Downlink Stream To 172.16/12" - IpProtocol: udp FromPort: 55888 ToPort: 55888 CidrIp: 192.168.0.0/16 Description: "AWS Ground Station Downlink Stream To 192.168/16" # The placement group in which your EC2 instance is placed. ClusterPlacementGroup: Type: AWS::EC2::PlacementGroup Properties: Strategy: cluster ReceiverVPC: Type: AWS::EC2::VPC Properties: CidrBlock:"10.0.0.0/16"Tags: - Key: "Name" Value: "AWS Ground Station - PBS to dataflow endpoint Example VPC" - Key: "Description" Value: "VPC for EC2 instance receiving AWS Ground Station data" ReceiverSubnet: Type: AWS::EC2::Subnet Properties: # Ensure your CidrBlock will always have at least one available IP address per dataflow endpoint. # See https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html for subent sizing guidelines. CidrBlock:"10.0.0.0/24"Tags: - Key: "Name" Value: "AWS Ground Station - PBS to dataflow endpoint Example Subnet" - Key: "Description" Value: "Subnet for EC2 instance receiving AWS Ground Station data" VpcId: !Ref ReceiverVPC # An ENI providing a fixed IP address for AWS Ground Station to connect to. ReceiverInstanceNetworkInterface: Type: AWS::EC2::NetworkInterface Properties: Description: Floating network interface providing a fixed IP address for AWS Ground Station to connect to. GroupSet: - !Ref InstanceSecurityGroup SubnetId: !Ref ReceiverSubnet # Attach the ENI to the EC2 instance. ReceiverInstanceInterfaceAttachment: Type: AWS::EC2::NetworkInterfaceAttachment Properties: DeleteOnTermination: false DeviceIndex: "1" InstanceId: !Ref ReceiverInstance NetworkInterfaceId: !Ref ReceiverInstanceNetworkInterface
Selain itu, Anda juga harus membuat kebijakan dan peran yang sesuai AWS Ground Station untuk memungkinkan membuat antarmuka jaringan elastis (ENI) di akun Anda.
# AWS Ground Station assumes this role to create/delete ENIs in your account in order to stream data. DataDeliveryServiceRole: Type: AWS::IAM::Role Properties: Policies: - PolicyDocument: Statement: - Action: - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:CreateNetworkInterfacePermission - ec2:DeleteNetworkInterfacePermission - ec2:DescribeSubnets - ec2:DescribeVpcs - ec2:DescribeSecurityGroups Effect: Allow Resource: '*' Version: '2012-10-17' PolicyName: DataDeliveryServicePolicy AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - groundstation.amazonaws.com Action: - sts:AssumeRole # The EC2 instance assumes this role. InstanceRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "ec2.amazonaws.com" Action: - "sts:AssumeRole" Path: "/" ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess - arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy - arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM # The instance profile for your EC2 instance. GeneralInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref InstanceRole
AWS Ground Station konfigurasi
Bagian ini Buat konfigurasi mewakili memulai.
Anda memerlukan konfigurasi pelacakan untuk mengatur preferensi Anda menggunakan autotrack. Memilih PREFERRED sebagai autotrack dapat meningkatkan kualitas sinyal, tetapi tidak diperlukan untuk memenuhi kualitas sinyal karena kualitas JPSS-1 ephemeris yang memadai.
TrackingConfig: Type: AWS::GroundStation::Config Properties: Name: "JPSS Tracking Config" ConfigData: TrackingConfig: Autotrack: "PREFERRED"
Berdasarkan jalur komunikasi, Anda harus menentukan konfigurasi antenna-downlink untuk mewakili bagian satelit, serta konfigurasi titik akhir dataflow-untuk merujuk ke grup titik akhir aliran data yang mendefinisikan detail titik akhir.
# The AWS Ground Station Antenna Downlink Config that defines the frequency spectrum used to # downlink data from your satellite. SnppJpssDownlinkDigIfAntennaConfig: Type: AWS::GroundStation::Config Properties: Name: "SNPP JPSS Downlink DigIF Antenna Config" ConfigData: AntennaDownlinkConfig: SpectrumConfig: Bandwidth: Units: "MHz" Value: 30 CenterFrequency: Units: "MHz" Value: 7812 Polarization: "RIGHT_HAND" # The AWS Ground Station Dataflow Endpoint Config that defines the endpoint used to downlink data # from your satellite. DownlinkDigIfEndpointConfig: Type: AWS::GroundStation::Config Properties: Name: "Aqua SNPP JPSS Downlink DigIF Endpoint Config" ConfigData: DataflowEndpointConfig: DataflowEndpointName: !Join [ "-" , [ !Ref "AWS::StackName" , "Downlink" ] ] DataflowEndpointRegion: !Ref AWS::Region
AWS Ground Station profil misi
Bagian ini Buat profil misi mewakili memulai.
Sekarang setelah Anda memiliki konfigurasi terkait, Anda dapat menggunakannya untuk membangun aliran data. Anda akan menggunakan default untuk parameter yang tersisa.
# The AWS Ground Station Mission Profile that groups the above configurations to define how to # uplink and downlink data to your satellite. SnppJpssMissionProfile: Type: AWS::GroundStation::MissionProfile Properties: Name: "37849 SNPP And 43013 JPSS" ContactPrePassDurationSeconds: 120 ContactPostPassDurationSeconds: 60 MinimumViableContactDurationSeconds: 180 TrackingConfigArn: !Ref TrackingConfig DataflowEdges: - Source: !Ref SnppJpssDownlinkDigIfAntennaConfig Destination: !Ref DownlinkDigIfEndpointConfig
Menyatukan
Dengan sumber daya di atas, Anda sekarang memiliki kemampuan untuk menjadwalkan JPSS-1 kontak untuk pengiriman data sinkron dari salah satu yang Anda on AWS Ground Station AWS Ground Station Lokasi boarding.
Berikut ini adalah CloudFormation template lengkap yang mencakup semua sumber daya yang dijelaskan dalam bagian ini digabungkan menjadi satu template yang dapat langsung digunakan di CloudFormation.
Tem CloudFormation plate bernama AquaSnppJpssTerraDigIF.yml dirancang untuk memberi Anda akses cepat untuk mulai menerima data frekuensi menengah digital (DigiF) untuk satelit Aqua, SNPP JPSS-1/NOAA-20, dan Terra. Ini berisi instance Amazon EC2 dan CloudFormation sumber daya yang diperlukan untuk menerima data siaran langsung DiGIF mentah.
Jika Aqua, SNPP JPSS-1/NOAA-20, dan Terra tidak masuk ke akun Anda, lihat. Satelit onboard
catatan
Anda dapat mengakses template dengan mengakses bucket orientasi pelanggan Amazon S3 menggunakan AWS kredenSIAL yang valid. Tautan di bawah ini menggunakan bucket Amazon S3 regional. Ubah kode us-west-2 wilayah untuk mewakili wilayah yang sesuai di mana Anda ingin membuat CloudFormation
tumpukan.
Selain itu, petunjuk berikut menggunakan YAML. Namun, template tersedia dalam format YAML dan JSON. Untuk menggunakan JSON, ganti ekstensi .yml file dengan .json saat mengunduh template.
Untuk mengunduh template menggunakan AWS CLI, gunakan perintah berikut:
aws s3 cp s3://groundstation-cloudformation-templates-us-west-2/AquaSnppJpssTerraDigIF.yml .
Anda dapat melihat dan mengunduh template di konsol dengan menavigasi ke URL berikut di browser Anda:
https://s3.console.aws.amazon.com/s3/object/groundstation-cloudformation-templates-us-west-2/AquaSnppJpssTerraDigIF.yml
Anda dapat menentukan template secara langsung CloudFormation menggunakan tautan berikut:
https://groundstation-cloudformation-templates-us-west-2.s3.us-west-2.amazonaws.com/AquaSnppJpssTerraDigIF.yml
Sumber daya tambahan apa yang ditentukan template?
Tem AquaSnppJpssTerraDigIF plate mencakup sumber daya tambahan berikut:
-
(Opsional) CloudWatch Pemicu Per istiwa - AWS Lambda Fungsi yang dipicu menggunakan CloudWatch Acara yang dikirim oleh AWS Ground Station sebelum dan sesudah kontak. AWS Lambda Fungsi akan memulai dan secara opsional menghentikan Instans Penerima Anda.
-
(Opsional) Veri fikasi EC2 untuk Kontak - Opsi untuk menggunakan Lambda untuk menyiapkan sistem verifikasi instans Amazon EC2 Anda untuk kontak dengan notifikasi SNS. Penting untuk dicatat bahwa ini dapat dikenakan biaya tergantung pada penggunaan Anda saat ini.
-
Ground Station Amazon Machine Image Retrieval Lambda - Opsi untuk memilih perangkat lunak apa yang diinstal pada instance Anda dan AMI pilihan Anda. Opsi perangkat lunak termasuk aplikasi titik akhir aliran data, dengan atau tanpa radio yang ditentukan perangkat lunak. Opsi ini mungkin berubah saat pembaruan dan fitur perangkat lunak tambahan dirilis.
-
Profil misi tambahan - Profil misi untuk satelit siaran publik tambahan (Aqua, SNPP, dan Terra).
-
Konfigurasi antena-downlink tambahan - Konfigurasi downlink antena untuk satelit siaran publik tambahan (Aqua, SNPP, dan Terra).
Nilai dan parameter untuk satelit dalam template ini sudah diisi. Parameter ini memudahkan Anda untuk AWS Ground Station segera menggunakannya dengan satelit ini. Anda tidak perlu mengkonfigurasi nilai Anda sendiri untuk digunakan AWS Ground Station saat menggunakan template ini. Namun, Anda dapat menyesuaikan nilai untuk membuat template berfungsi untuk kasus penggunaan Anda.
Di mana saya menerima data saya?
Grup titik akhir aliran data diatur untuk menggunakan antarmuka jaringan instance penerima yang dibuat oleh bagian template. Instans penerima menggunakan aplikasi titik akhir aliran data untuk menerima aliran data dari AWS Ground Station port yang ditentukan oleh titik akhir aliran data. Setelah diterima, data tersedia untuk konsumsi melalui port UDP 50000 pada adaptor loopback dari instance penerima. Untuk informasi selengkapnya tentang menyiapkan grup titik akhir aliran data, lihat AWS::GroundStation::. DataflowEndpointGroup