- とりあえずAWSを使い初めてみたい
- AWS EC2を触ってみたい
- AWS上にLinux環境を作ってみたい
- Amazon Linuxを触ってみたい
- どこからでも繋がる自分専用のLinux環境をクラウド上に作りたい
AWSを使うっていうと、まずクラウド上にサーバーを構築するところが第一歩になると思います。この記事では、AWSのEC2を使ってクラウド上にサーバを構築するところをやってみようと思います。
AWS EC2インスタンスを立ち上げる
EC2の管理画面を表示
まずは、AWSマネジメントコンソールにログインして、EC2の画面を表示します。

さっそく、仮想マシンを作成していきましょう。EC2ではそれをインスタンスと呼びます。
画面左側のメニューの「インスタンス」をクリックします。

インスタンスの作成
画面右側がインスタンス画面に切り替わりますで、インスタンスを起動ボタンをクリックします。

マシンイメージの選択
AWSにはすぐに使えるAMI(Amazon Machine Image)が準備されているので、この中から使いたいものを選ぶだけです。もちろん、独自のイメージファイルを作ることもできます。
いろいろありますね。Linux系では主なディストリビューションが用意されていますね。RedHat、Ubuntu、SUSEもあります。
え? CentOSがないって?
EC2ではCentOSをベースにしたAmazonLinuxというものがあるので、そちらを使ってください。AmazonLinuxはEC2で使うこと想定してCentOSベースで拡張しているようなので、EC2でLinuxサーバー運用するとなったら、AmazonLinux一択かもしれません。

私も自分のパソコンにHyper-V入れていろいろなLinuxで遊んでいますが、SUSEは使ったことなかった。今度試してみます。
今回は、お試しインスタンスなので私が一番使い慣れているUbuntuを選択しました。ちゃんと20.04 LTSも用意されていますね。


よく見るとWindows Server 2019もありますね。Windows Serverなんて高価過ぎて個人では買えない代物です。ちょっと試してみて記事にしてみようと思います。
インスタンスの性能を選択
仮想マシンのOSを決めたら、次はマシンスペックの選択です。様々なタイプがありますので、利用用途なに応じた適切なものを選択できます。
今回は無料枠の対象となっているお試しスペックの t2.micro を選択します。無料枠の掲示がないものを使うと12ヶ月以内でも課金対象となってしまいますので注意してください。


オンプレ主流の時代にサーバー構築してきた私としては、まさに夢のインフラです。
セキュリティグループの設定
次は画面上部のパンくずリンクの「6.セキュリティグループの設定」を押して、途中のステップはスキップしましょう。スキップした部分はデフォルトのままでよいです。きちんとサーバ運用する場合は設定してください。

セキュリティグループの設定をします。既存のものがある方は適切なものを選択してください。今回は新規作成する手順でいきます。
①新しいセキュリティグループを作成する
新しいセキュリティグループを作成するを選択します。
②セキュリティグループの名前
セキュリティグループの名前と説明を指定します。セキュリティグループは適当に作っていくとどれがどのルールかわからなくなってごちゃごちゃしてしまいますので、わかりやすい名前と説明をきちんと記載しておきましょう。
③ルールリスト
ここにイン・アウトのルールを追加していきます。今回は構築したLinuxサーバにインターネット経由でSSHログインしたいので、SSHを許可します。
インスタンス作成・起動
選択したAMIと無料枠の対象かどうか最終確認して、問題なければ起動ボタンをクリックします。

キーペアの作成 or 既存キーペアの選択
安全にAWSと通信するためのキーペアを作ります。AWSと自分しか持っていない合鍵です。
既存のキーペアをプルダウンから選択します。次のようなキーペアが見つからない場合は、新しく作ります。

①で新しいキーペアの作成を選択し、②にキーペアの名前を入力します。これもわかりやすい名前がよいでしょう。③のキーペアのダウンロードボタンをクリックすると鍵が作成され、自動でダウンロードされます。

命名したキーペア名で鍵ファイルがダウンロードされます。

キーペアが作成できたら、いよいよインスタンスを作成します。右下のインスタンスの作成ボタンをクリックします。

AWS上に指定したOSを指定した性能の仮想マシンで立ち上げの準備が始まりますので、しばらくそのまま待ちましょう。
インスタンス起動!!

インスタンスの作成を指示したら、右下のインスタンス表示ボタンをクリックします。

EC2インスタンス一覧画面が表示されます。ここに今作成したインスタンスが表示されます。ステータスチェック欄がまだ初期化中の場合はまだ準備が整っていないので、逸る気持ちを押さえてもう少し待ちましょう。


このようにステータスが変化すればインスタンスの作成完了です。これでAWSのデータセンターの中のどこかにあなただけのLinuxマシンが立ち上がりました!
あれ、名前がありませんね。設定するところありました?
とりあえず、名無しさんだとかわいそうなので、名前を付けてあげましょう。ここをクリックすると名前が入力できます。

今回はUbuntuの20.04LTSにしました。これでわかりやすい。

起動したLinuxサーバにSSHでログイン
次は起動したUbuntuにSSHでログインしてみましょう。
まずは、接続先を確認します。作成したインスタンスIDがリンクになっていますので、それをクリックします。
接続先情報の確認

インスタンスの詳細画面が表示されます。ここの接続ボタンをクリックします。

Ubuntuにログインするためのユーザ名を確認します(①)。次にSSHクライアントをクリックします(②)。

インスタンスに接続する方法が表示されます。基本はここに記載のある通り接続すればOKです。

ピンク枠で囲まれている文字列が接続名になりますので、クリップボードにコピーしておいてください。
WindowsパソコンからSSHで接続
私はWindowsを使っているので、WindowsからTeraTermを使って実際に接続してみます。
TeraTermを起動します。
①の接続先にはさきほどクリップボードにコピーしたパブリックDNSを入力します。インスタンスへはSSHを使って接続しますので、②はSSHを選択してOKボタンをクリックします。

SSH認証画面が表示されます。①ユーザ名はubuntu、認証方法は②のRSA/DSA/ECDSA/ED25519鍵を使うを選択します。
秘密鍵はさきほどキーペアを作った時にダウンロードしたキーファイルを指定して、OKボタンをクリックします。

おお!!
AWSに作ったEC2インスタンスにSSHで接続できました!

ディスクサイズはインスタンス生成の時にスキップしたのでデフォルト8GBになっていますし、なにやらAWSっぽいものがマウントされていますね
ubuntu@ip-172-31-0-205:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.7G 1.3G 6.5G 17% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 490M 0 490M 0% /dev/shm
tmpfs 98M 784K 98M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/loop0 33M 33M 0 100% /snap/amazon-ssm-agent/2996
/dev/loop1 56M 56M 0 100% /snap/core18/1944
/dev/loop3 32M 32M 0 100% /snap/snapd/10707
/dev/loop2 70M 70M 0 100% /snap/lxd/19032
tmpfs 98M 0 98M 0% /run/user/1000
タイムゾーン変更
クラウド上のサーバーはUTC(世界標準時間)で動いていますので、自分の地域にタイムゾーンを変更したい場合は、設定変更しておきましょう。これは東京に変更する場合です。
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
とりあえず、アップデート
root権限もありますね。アップデートしときましょう。
$ sudo apt update
$ sudo apt upgrade

さぁて、何して遊ぶ!?

・・・それはまた別の機会にします。
インスタンスの操作
インスタンスの操作は、AWSマネジメントコンソールのEC2画面を使います。

インスタンスの停止
停止したいインスタンスにチェックを付けて、①インスタンスを停止をクリックすると、OSをシャットダウンしてインスタンスを停止できます。
SSHでログインしてshutdownコマンド実行しても同様です。
インスタンスの再起動
再起動したいインスタンスにチェックを付けて、②インスタンスを再起動をクリックすると、OSをリブートしてインスタンスを再起動できます。
SSHでログインしてrebootコマンドを実行しても同様です。
インスタンスを終了
これを実行すると、インスタンスを停止してその環境を削除します。使い終わって不要になった環境を簡単に削除することができます。もちろん、ディスクの中身もすべて消えてしまうのでこれを実行する際は気をつけてください。
おまけ(Amazon Linux 2)
Amazon Linux 2 のインスタンスはこんな感じ
作り方の手順は同じです。AMIの選択時にAmazon Linux 2を選択するだけですので、慣れれば3分くらいで環境が作れます。

タイムゾーンの変更は、Ubuntuとちょっと違いますので書いておきます。
$ sudo rm -f /etc/localtime && sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
使わない時はEC2インスタンスを止めた方がよい?
アカウント作成から1年以内で、かつ無料の範囲内であればタダで使えます。
ただ、うっかりすると無料範囲内から飛び出して気がついたら課金されていたということもありますので、気をつけてください。

学習用として無料範囲内で利用したいと考えている場合、いくつインスタンスを作るかによって変わります。
2021.2.22 時点では、EC2は一ヶ月当たり750時間まで無料で利用できると記載されています。一日24時間、31日計算で744時間。つまり、t2.microインスタンスなら1ヶ月間起動しっぱなしでも無料ということになります。
2つ以上のt2.microインスタンスを無料で使いたい場合は、使っていないインスタンスは停止しておかないと無料枠からはみ出してしまいますね。
まとめ
- EC2はAWS上に仮想マシンを作れる
- 仮想マシンにインストールできるOSはLinux各種、Windowsサーバ各種あり
- インスタンスサイズが t2.micro は無料範囲内(詳細条件あり)
- 作成したインスタンスにはSSHで接続して操作できる
- 特定の環境(会社や学校等)からしか接続できないようにもできる

無料期間が12ヶ月間あるので、いろいろ触ってブログに書いていきたいと思いますので、お楽しみに!!!
コメント