AWS Ground Stationについて解説する

この記事は[Wanoアドベントカレンダー](https://qiita.com/advent-calendar/2018/wano-group)の2日目です。

つい先日、AWSによるre:Inventが開催されました。
![og.jpg](https://qiita-image-store.s3.amazonaws.com/0/69711/8ef11151-ca7c-96ba-d5e3-bfec88009585.jpeg)


[機械学習ラジコン](https://aws.amazon.com/jp/blogs/news/aws-deepracer-go-hands-on-with-reinforcement-learning-at-reinvent/)やら、[LambdaのCOBOL対応](http://www.itmedia.co.jp/news/articles/1811/30/news102.html)やら[オンプレ](https://www.publickey1.jp/blog/18/awsaws_outposts_awsaws_reinvent_2018.html)やら話題になっていましたが、中でも異色を放つのが[AWS Ground Station](https://aws.amazon.com/jp/blogs/news/reinvent2018-aws-ground-station/)です。

こちら、人工衛星の地上局運用をAWSの地上局を使って行うことができるサービスのようですが、これについて詳しいことが書かれている記事が少ないため、ちょっと解説を試みたいと思います。

自分はかつて大学時代に小型人工衛星の設計・開発に携わっていて、この記事も基本的にはその頃の知識がベースになっております。
もしかしたら現在では当てはまらないようなこともあるかもしれませんが、その際はご指摘くださるとありがたいです。

# AWS Ground Stationが出てくる背景
そもそも人工衛星を開発して運用するには、主に３つの課題をクリアしなければいけません。

* 衛星の開発
* 衛星の打ち上げ
* 衛星の運用

この中で、1つめの衛星の開発に関しては、CPUをはじめとする各種集積回路の高機能化と低価格化に伴い、ここ10年で誰でも開発できるようになっています。
多くの大学や企業が人工衛星を開発してニュースになっていたりしますね。

一方で、2つめの衛星の打ち上げは、日本だとJAXAによる無償の相乗り衛星の公募がありますが、基本的には有償であり、打ち上げ時のコストは1kg100万円かかると言われます。[^1]
実際にJAXAに相乗り衛星として有償でお願いすると、数千万単位[^2]のお値段になっていることがわかります。
ここに関しては、SpaceXをはじめとする民間企業の参入等により、お値段が下がるのを期待したいところではあります。

3つめの運用に関しては、規模の大きい衛星だと各国の地上局を間借りしたりして運用することはありますが、規模の小さい大学衛星等は、通信帯域にアマチュア無線帯を使うことで、秋葉原に売っているアマチュア無線機材と八木アンテナ（でかい地デジのアンテナ）を使って地上局を構築することができます。[^3]

ただ、人工衛星は地球を回ります。
多くの小型衛星が比較的打ち上げやすい低軌道の場合、おおよそ90分に1回地球を1周しますが、都合よく地上局の上に衛星が来るのはせいぜい1日に3,4回程度。
来ても可視時間（衛星からの電波を受信できる時間）は数分〜10分程度しかありません。
1日に4回 × 平均5分ぐらい = 1日のうちに20分程度しか使われない地上局のために、わざわざアンテナを設置してアマチュア無線機材を買い、それを毎日運用し続けるコストを考えると、なかなか簡単にできるものではありません。
![gs_detail013.jpg](https://qiita-image-store.s3.amazonaws.com/0/69711/9a5ff653-ba96-3d03-6f69-9891327f3378.jpeg)
（自分がかつて所属していた日本大学にあった地上局八木アンテナ。でかい。[Nihon University Ground Station Web Site](http://sat.aero.cst.nihon-u.ac.jp/gs/japanese/gs_facility_j.html)より）

そこで、今回登場したのがAWS Ground Stationになります。

# AWS Ground Stationの特徴
* 全世界12箇所（予定）の地上局の提供
    * まずは2つの地上局から開始
    * アンテナは各地上局に2つずつ
* 対応している周波数帯は以下の通り
    * ダウンリンク（衛星=>地上局への通信）がUHF、Sバンド、Xバンドで最大500MHzまで
    * アップリンク（地上局=>衛星への通信）がUHF、Sバンドで最大54MHzまで
* 料金体系は、1分単位のアンテナ使用時間（地味に嬉しい）
* アンテナの使用は最大6か月前からの予約制
    * 1分単位で予約時間を決められる
    * 15分前までキャンセル、再スケジュールが可能
    * 他の予約がすでにあった場合、代替案を提供してくれるらしい
* 対応している衛星は低軌道〜中軌道の衛星
* フルマネージド（すごい）
* アップリンク用、ダウンリンク用にそれぞれEC2インスタンスを立てて、衛星との通信中はそのインスタンスが通信を管理する
* EC2にダウンリンクでデータをダウンロードしたあとは、Kinesis Data Streamを使ってデータ解析をするなり、SageMakerを使って機械学習するなり好きにしてくれ

# 使用する流れ
![product-page-diagram_astra_how-it-works.56541b02eaa1cc5a28e3162faeee7d5768a30492.png](https://qiita-image-store.s3.amazonaws.com/0/69711/063fba5d-a0e4-dcd0-2ed7-f782a5939abf.png)

1. 最初にNORAD IDとFCCライセンス情報（アメリカのアマチュア無線ライセンス）を登録
2. 「Contact」という衛星への通信時間帯を予約。
3. 時間が来たら衛星と通信する
4. ダウンロードしたデータは、AWSのサービス使って好きにしてくれ

（NORAD IDとは、Satellite Catalog Numberともいい、NORAD（北アメリカ航空宇宙防衛司令部）が管理している衛星番号。衛星を打ち上げると、NORADにより特定され、IDが割り振られる）

# 何が嬉しいのか
* とにかく自分で地上局を用意しなくていい
* しかも全世界に地上局ができるので、通信する機会が圧倒的に増える
* フルマネージド（すごい）
* 料金が1分単位で使った分だけ支払えばいいのも嬉しい
    * 問題は値段が書いてないんだけれど、どれぐらいなんだろうか？
* あとは、AWSのサービスの1つなので、ダウンロードしたデータをそのまま他のサービスに流せて地味に嬉しい。S3に保存できるだけでもだいぶ嬉しいと思う

# 最後に
[AWSのブログ](https://aws.amazon.com/jp/blogs/news/aws-ground-station-ingest-and-process-data-from-orbiting-satellites/)を見ると、
> AWS Ground Stationチームは私のAWSアカウントに仮想的なアカウントを作成してくれました

とか書いてあったので、てっきり自分もモックでコンソールをいじれるのかなって思ってたんだけど、そもそも登録する段階でSattelite ID（先のNORAD IDかな？）が必要で、無理だった(´・ω・｀)
でもこのAWS Ground Stationにより、もし万が一「衛星はなんとか打ち上げられたけど、地上局を作るお金がない〜〜〜〜〜！！！」って時にも便利ですね。

ちなみに余談ですが、記事中に出てきたNORADは、毎年サンタを追跡する[Santa Tracker](https://www.noradsanta.org/)というものをやっています。
AWS Ground Stationでもそのうちサンタと通信できるかもしれない（何言ってんだ）


[^1]: [我が国宇宙輸送システムを検討する視点（平成２５年３月 内閣府宇宙戦略室）](https://www8.cao.go.jp/space/comittee/yusou-dai1/siryou4.pdf)
[^2]: [H-IIA 相乗りによる超小型衛星の打上げ機会提供 募集案内＜有償制度＞（平成２８年１２月 国立研究開発法人宇宙航空研究開発機構）](http://aerospacebiz.jaxa.jp/wp-content/uploads/2016/12/%E6%9C%89%E5%84%9F%E3%81%AE%E5%A0%B4%E5%90%88.pdf)
[^3]: [アマチュア無線周波数帯の利用｜SPROUT](http://sat.aero.cst.nihon-u.ac.jp/sprout/2-Use%20of%20AFB.html)