The Things StackをEC2にインストールする(1/2)

The Things StackをEC2にインストールする(1/2)

The Things StackをEC2にインストールする(1/2)

この記事と次の記事では,The Things Stack(TTS) Community EditionをAmazon EC2インスタンスにインストールする手順について整理します.

この記事では(何番煎じか分かりませんが)AWS環境で固定IPを振って外部からアクセスできるEC2インスタンスを用意する手順を説明します.次の記事で,用意したEC2インスタンスにTTSをインストールする手順を説明します.EC2はデプロイ環境として使うだけなので,TTS関連についてのみ知りたい場合は,本記事は飛ばして次の記事だけ参照ください.

The Things Stackについて

The Things Stackを含め,The Things Industries社が提供するLoRaWANに関するプロダクトやサービスについてはリンク先の資料等を参照ください1.The Things Stackは,それらのうちOSSで提供されるLoRaWANサーバを指します.

AWS Marketplaceで提供されているThe Things Stack AWS Launcher for LoRaWANを利用すると,AWS環境にプライベートなLoRaWANネットワークを構築することができるようです(手順などはこちら)が,ここでは手動でインスタンスを立ち上げ,TTSをインストールして外部からアクセスする手順をまとめます.

手順

  1. EC2インスタンスを起動する
  2. 固定IPを割り振る
  3. セキュリティグループを設定する
  4. Amazon Route53でDNSレコードを設定する

1. EC2インスタンスを起動する

初めに,EC2インスタンスを起動します.

EC2(東京リージョン)

左側のペインから,「インスタンス」>「インスタンス」を選択し,右上の「インスタンスを起動」を押下します.

イメージは,無料利用枠で利用できるイメージである「Ubuntu Server 20.04 LTS (HVM)」を利用します.

ubuntu

TTSの推奨動作環境はリンク先の通りですが,以下の説明では動作確認を優先することにして,インスタンスタイプは無料枠で利用できる「t2.micro」を選択します.

ステップ3〜ステップ6は特にデフォルト設定を変更せずに進みます.ステップ6では,sshで接続する際の送信元IPアドレスを制限するように警告が出るので,適宜設定します.

ステップ7で右下の「起動」を押下すると,ssh接続する際の鍵を指定するように要求されます.ここでは,新たに鍵を作成することにします.作成した鍵は適当な場所に保存します.

しばらくするとインスタンスが起動します.

2. 固定IPを割り振る

EC2のペインから「ネットワーク & セキュリティ」>「Elastic IP」を選択し,右上の「Elastic IPアドレスの割り当て」を押下します.次の画面では特に設定は編集せず「割り当て」を押下します.

すると固定IPが割り当てられるので,これを先の手順で作成したインスタンスに関連づけます.

edit   Note
Elastic IPは,利用終了後は解放しないと料金を請求される可能性があるので,ご注意ください. 参考

3. セキュリティグループを設定する

この時点では,TTSを立ち上げても外部からアクセスすることができません.外部からアクセスするために,セキュリティグループを設定します.

EC2のペインから「インスタンス」>「インスタンス」を選択し,手順1で作成したインスタンスが所属するセキュリティグループを確認します.

ポート80(HTTP)と443(HTTPS)がアクセスを受け付けるように設定します.アクセス元のIPアドレスを制限する場合は,ソースで「カスタム」を選択し,アクセス元IPアドレスの範囲などを設定します.

4. Amazon Route53でDNSレコードを設定する

ドメインを設定しない場合は不要ですが,以下では独自ドメインをAmazon Route53で管理している前提で,取得したIPアドレスに関連づける手順を整理します.

Route53のペインから,「ホストゾーン」を選択し,TTSのインスタンスに割り当てたいドメイン名を選択します.

「レコードを作成」を押下し,適当なレコード名を入力します.レコードタイプは「A - IPv4アドレスと一部のAWSリソースにトラフィックをルーティングします。」を選択します.「値」のフィールドには,手順2で取得したElastic IP(固定IPアドレス)を入力します.入力後,「レコードを作成」を押下します.

確認

ここまでの手順が期待した通りに設定できているかを確認します.DNSが適切に設定されているか,ポートが期待した通りに開放されているかどうかは,他のサーバからnslookupコマンドやnmapコマンドを使うなどして,適宜確認します.

$ nslookup [your record].[your domain]
(中略)

Non-authoritative answer:
Name: [your record].[your domain]
Address: [your ip address]

$ nmap [your record].[your domain]
(中略)

Not shown: 997 filtered ports
PORT    STATE  SERVICE
22/tcp  open   ssh
80/tcp  closed http
443/tcp closed https

sshでの接続は,EC2のペインから「インスタンス」>「インスタンス」で作成したインスタンスを選択し,「接続」からアクセス先を確認し,秘密鍵を指定してアクセスできるかどうか確認できます.

次の記事では,TTSのインストール手順を整理します.


  1. TTN,TTS,TTIについてはリンク先参照. ↩︎