リモートワーク全盛期。家で作業をすることが増えた。ゼロトラストとも言われているが、やはり家にあるパソコンでAWSを操作するとなると、シークレットキーなど、秘匿情報がパソコンのローカルストレージに残ってしまう。とはいえ、シークレットを使わずに仕事をするのもちょっと無理がある。
そんなときに便利なのがCloud9。
AWS内に開発クライアント(IDE)を立ててくれるサービス。また、VSC風のエディタ機能もあって、結構便利。価格もそんなに高くない。踏み台サーバを作るよりも、これを作ったほうが便利なんじゃないかという気はする。
やりたいこと
・わたし、あなたはお家の物理パソコンから、インターネットを経由してAWSのマネジメントコンソールにアクセスする。
・マネジメントコンソールからCloud9を選択し、自分の開発インスタンスにアクセスして開発作業を行う。
・開発インスタンスは開発効率を上げるために、インターネットに接続できる状態とする。
・NATゲートウェイを配置して、ルートテーブルでインターネット向け通信はすべてNATゲートウェイに向ける。
(なんてことない、ハンズオンなどにありがちな簡単なAWS環境。ここでは自分の経験をアウトプットするために書いてみる。)
VPCを作る
名前を適当に決めて、作る。IPアドレス帯(IPv4/CIDR)はお好きな値で。
インターネットゲートウェイを作る
VPCとインターネットをつなぐ、インターネットゲートウェイを作る。
インターネットゲートウェイとVPCを紐づける
インターネットゲートウェイを作成すると、画面の上に親切に「VPCにアタッチ」と出るので、アタッチする。そういえば昔、アタック25という番組がありました。
アタッチできるとちゃんと状態が「Attached」になりました。
サブネットを作る
サブネットに適当な命名をする。
アベイラビリティーゾーンは今回は片系しか作らないので、aかcでお好きなものを選ぶ。
IPv4CIDRブロックは、VPCで作成したIP体系に紐づく値にする。
例えば、VPCのIPv4/CIDRを「172.16.0.0/16」にした場合、サブネットのIPv4/CIDRブロックは「172.16.x.x/16+n」となる。そんなに1つのサブネットにCloud9インスタンスを入れる必要があることってあまりないと思うので、/24ぐらいで切っておけばいいと思う。
これを2個作成する。1つはCloud9を配置するプライベートサブネット。2つ目はNATゲートウェイを配置するパブリックサブネット。
例えば、プライベートサブネットは172.16.1.0/24にして、パブリックサブネットは172.16.101.0/24とか、第3オクテットを変えるなどにして、良い感じに設定する。
ルートテーブルを作る
適当な名前をつけて、VPCは先ほど作ったVPCを指定する。これも、プライベートサブネットのルートテーブル、パブリックサブネットのルートテーブルとして、2個作成する。
NATゲートウェイを作る
名前を適当につけ、サブネットは先ほど作った「パブリックサブネット」を指定する。
接続タイプはパブリック。
ここまで書いてNATゲートウェイを作成させる段取りをしているが、このNATゲートウェイは異常に高い。個人で使うにはちょっと財布にキツイ。なのでコスト削減を考えたりする場合、NATゲートウェイを作らず、NATインスタンスを作る。
ルートテーブルのルートを編集する
まずは先ほど作ったルートテーブルの、パブリックサブネット用ルートテーブルに対して、ルートを追加する。
送信先を0.0.0.0/0(デフォルトルート)を指定し、ターゲットは先ほどVPCにアタッチしたインターネットゲートウェイを指定する。そのまま変更を保存する。
次にプライベートサブネット用ルートテーブルに対して、ルートを追加する。
ここでは送信先は0.0.0.0/0(デフォルトルート)を指定し、ターゲットは「NATゲートウェイ(またはNATインスタンス)」を指定し、保存する。
サブネットとルートテーブルを関連付けする
サブネット画面より、先ほど作成したパブリックサブネットを選択し、「ルートテーブルの関連付けを編集」をクリック。
ルートテーブルIDに、パブリックサブネット用ルートテーブルを指定して保存する。
プライベートサブネットに対しても同様の操作で編集し、プライベートサブネット用ルートテーブルを指定して保存する。
少し横にそれるが、パブリックサブネットはIPアドレスの自動割当を有効にすることが多い。パブリックIPを自動で割り当ててくれるため。
Cloud 9を作る
ここでようやくCloud9を作る。CreateEnviromentを押す。
設定画面では、directaccessは選ばない。今回はマネジメントコンソール経由で入りたい要件なので、真ん中を選ぶ。
NetworkSettingsは、先ほど作成したVPCを選ぶ。
サブネットについても、先ほど作成した「プライベートサブネット」を選ぶ。
Next stepを押して作成画面を進める。
そのままCreateEnviromentを押す。いま気が付いたが、IAMロールは勝手に作ってくれる模様。便利。
こんな画面がでてフューミニッツ待てと言われるので、フューミニッツ待つ。ちなみに5分ぐらいかかったので、焦らず待つ。
しばらくするとWelcome画面となり、Cloud9を利用可能となる。画面下がbashのプロンプトとなっており、各種Linuxコマンドを入力可能。左辺側がディレクトリ構造になっており、GUIで直観的にファイル操作が可能。
インターネットにつながる環境のため、各種インストールも可能。
こんな感じで、良い感じの開発環境整理をしていきましょう。
余談
わたしより年下だけど、「姉御」と呼びたくなる感じの歌手デュアリパさん。ストリーミング再生で懐かしいメロディーが流れてきたと思ったら、彼女の歌だった。どこか懐かしく切ない感じと思ったら、どうやら昔の歌をリメイクしたものらしい。「あなたの彼女(your woman)にはなれません」という歌が、姉御によってリメイクされると、「またあなたに恋をさせられた」という、ちょっと頼もしい感じ、攻めの姿勢になるのが面白いですね。
リメイク:Dua Lipa「Love Again」
オリジナル:White Town - Your Woman