しばらく前に AWS の知識をゲットしたはずだったんだが、記憶力が悪いせいですっかり忘れた。
インターネット上に自分用の Linux サーバーが欲しかったので、AWS を使おうとしたのだが、ほとんど何も覚えてない。ゼロから始めてサーバーを立てるまで、を復習がてら記事にする。
AWS はユーザー登録から 1 年間の無料枠があるとはいえ、ユーザー登録にクレジットカード番号が必要。これは済んでいることとする。
まずはじめに
トップサイトからログインすると、画面遷移して「AWS マネジメントコンソール」に連れていかれる。ここが異世界の入口だ。タダでもらえる初期装備はなかなか豪華で、小さいサーバーならタダで使わせてもらえる。マネジメントコンソールのメニューを探して「Billing」と「VPC」と「EC2」とを確認する。この 3 つが主な活動場所だ。
Billing
課金の状況を知るところ。
まず最初はここを知らないと安心して使えない。ここには「今月はいくらかかったか」の金額が表示されている。無料枠の中で使っていれば $0 と表示されているはず。
VPC ダッシュボード
「VPC を作る」のはリアル世界で例えれば「サーバールームを確保して環境整備する」ことにあたる。
VPC をクリックして「VPC ダッシュボード」に入る。
VPC の作成
VPC というリンクをクリックすると VPC を作成する画面に移る。最初から「デフォルト VPC」というのが用意されているが、たしか、こいつを消すのはやめたほうがいい。あとあと面倒なことになる。
新しい VPC を作成していく。「VPC の作成」を押すと作成が始まる。IPv4 CIDR ブロックは10.0.0.0/16
とする。10.0.xx.xx のアドレスを使えるようになる。IPv6 は使わないので、IPv6 CIDR ブロックは無しを選ぶ。無料枠で済ませたいので「テナンシー」はデフォルトを選ぶ。名前はあとで参照することになるので、分かりやすい名前を付けておくのが吉だ。
これで、リアルでいえば「サーバールームを陣取った」ことになる。
サブネットの作成
「サブネット」というリンクをクリックすると、サブネットを作成する画面に移る。「サブネットの作成」を押すと作成が始まる。VPC は先ほど作成したものを選択。アベイラビリティゾーンは ap-northeast-1a など、東京リージョンのものを選ぶ。海外のを選んでも遅くなるだけだ。「IPv4 CIDR ブロック」は10.0.1.0/24
とする。これでサブネット内で10.0.1.xx
のアドレスを使えるようになる。
これで「サーバールームのイーサネットの配線」が完了。
ルートテーブルの確認
「ルートテーブル」というリンクをクリックすると、ルートテーブルの設定画面に移る。VPC を作成したときに、セットでルートテーブルも作成されている。他にはデフォルト VPC 用のルートテーブルも最初からあるが、これも消さないようにする。「ルート」というタブをクリックすると、送信先が 10.0.0.0/16
でターゲットが local
になっているはず。変更は要らない。「タグ」というタブで名前をつけられるので、やっといた方がいい。
これで「ルーターの設置」が完了。
インターネットゲートウエイの作成
「インターネットゲートウエイ」というリンクをクリックすると作成画面にうつる。ルーターと外部のネットをつなぐことにあたる。「インターネットゲートウエイの作成」を押せば作成できる。例によって名前は付けておいた方がいい。「アクション」から「VPC にアタッチ」を選んで、いま作成中の VPC につなぐ。
ルートテーブルの設定(その2)
「ルート」タブを押すと、ルートテーブルの編集ができる。ルートの編集を押して、いま作成中の VPC のルートを追加する。0.0.0.0/0
を internet gateway
に対応付ける。これで VPC 内部は内部でルーティング、それ以外はインターネットに流すようになる。
これでインターネットに接続できた。サーバールームの建設は終了だ。
EC2
「EC2 を起動する」のは、リアルでは「コンピュータを買ってきてサーバールームに据え付けて起動する」ことにあたる。
EC2 ダッシュボード
「EC2 ダッシュボード」に移動する。「インスタンス」をクリックし「インスタンスの作成」を押すと、インスタンス(仮想のコンピュータにあたる)を選ぶ画面になる。Amazon Linux 2 AMI (HVM), SSD Volume Type
を選ぶ。次に進んで無料枠の t2-micro を選ぶ。
「ネットワーク」はいま作成した VPC を、「サブネット」もいま作成したサブネットを選択。「自動割り当てパブリック IP」はデフォルトで無効になっているのを有効に変更する。次の「ストレージの追加」を選んで先に進むが、追加のストレージは不要。
作成して起動すると、キーペアの作成ダイアログが立ち上がるので作成してダウンロードしておく。このファイルは RSA 鍵というやつで、このコンピュータにログインするときに必要となる。
インスタンスの一覧を表示する画面を表示すると、いま起動したコンピュータが見える。IPv4 パブリック IP アドレスも表示されている。この IP アドレスのコンピュータは、もうインターネット上に存在する。SSH などで接続が可能だ。
セキュリティグループ
作成した EC2 インスタンスは、そのままでは SSH しかできない。セキュリティグループが SSH 以外のプロトコル/ポートを閉じているからだ。ping でサーバーの存在を確かめたり、http サーバーとして使ったりしたい場合は、セキュリティグループの設定を変更する。
EC2 ダッシュボードのインスタンスからサーバーのインスタンスを表示させると、詳細説明の中に「セキュリティグループ」が見える。適用されているセキュリティグループのリンクを押すと、セキュリティグループの ID が分かる。この ID のセキュリティグループを、VPC ダッシュボードの中の「セキュリティグループ」画面から変更(追加)する。
目的 | タイプ | プロトコル | ポート範囲 | ソース |
---|---|---|---|---|
SSH を許可する(デフォルト) | SSH | TCP | 22 | 0.0.0.0/0 |
ping を通す | すべての ICMP - IPv4 | すべて | 該当なし | 0.0.0.0/0 |
http サーバーとして使う(開発用) | カスタム TCP ルール | TCP | 8000 | 0.0.0.0/0 |
http サーバーとして使う(デプロイ) | HTTP | TCP | 80 | 0.0.0.0/0 |
確認
たったこれだけのことで、インターネット上に本当にサーバーが存在するのか。TeraTerm で確認する。
TeraTerm を起動し、接続先にさっきの IPv4 パブリック IP アドレスを入力して SSH2 で接続する。ユーザー名は ec2-uesr で、パスワード欄は何も入れなくていい。その代わりに「RSA 鍵を使う」を選び、秘密鍵に先ほどダウンロードしたファイルを選ぶ。
「接続」を押せば、確かにつながっていることが分かる。
Last login: Fri Mar 20 15:18:50 2020
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
7 package(s) needed for security, out of 11 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-1-156 ~]$
おわり