★★★ Twitterやってます。フォローして頂けると嬉しいです(*^^*) ★★★

AWSを使ってクラウド上に自分専用のLinux環境を作る方法

IT
このような方にオススメ
  • とりあえずAWSを使い初めてみたい
  • AWS EC2を触ってみたい
  • AWS上にLinux環境を作ってみたい
  • Amazon Linuxを触ってみたい
  • どこからでも繋がる自分専用のLinux環境をクラウド上に作りたい

AWSを使うっていうと、まずクラウド上にサーバーを構築するところが第一歩になると思います。この記事では、AWSのEC2を使ってクラウド上にサーバを構築するところをやってみようと思います。

EC2:Amazon Elastic Compute Cloud
AWSのハイパーバイザー上で動作する仮想マシンのことです。

スポンサーリンク

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を許可します。

警告メッセージが表示されているのは、ソースのIPが未設定(0.0.0.0/0)になっているためです。この設定だと世界中どこからでもSSHで接続できてしまうため警告表示されています。

私の自宅は外部IPが固定されていないのでフリーにしますが、会社などで外部IPが固定の場合はそのIPを設定することで会社からしか接続できないセキュアな状態を作れます。

インスタンス作成・起動

選択したAMIと無料枠の対象かどうか最終確認して、問題なければ起動ボタンをクリックします。

インスタンスのセキュリティを強化してください、という警告が再度表示されます。現在のセキュリティ設定では、どこからでもSSHで接続できてしまいますので危険です。そのため、この次でキーペアを作成し、そのキーファイルを持っていないとSSHで接続できないように設定するので心配しないでください。

キーペアの作成 or 既存キーペアの選択

安全にAWSと通信するためのキーペアを作ります。AWSと自分しか持っていない合鍵です。

既にキーペアを作成している場合

既存のキーペアをプルダウンから選択します。次のようなキーペアが見つからない場合は、新しく作ります。

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

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

この鍵ファイルは大事に保管してください。このファイルが無いとリモートからSSHで接続できなくなりますし、外部に流出して悪用されると勝手にサーバにログインされてしまう恐れがあります。

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

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

インスタンス起動!!

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

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

このようにステータスが変化すればインスタンスの作成完了です。これでAWSのデータセンターの中のどこかにあなただけのLinuxマシンが立ち上がりました!

あれ、名前がありませんね。設定するところありました?

とりあえず、名無しさんだとかわいそうなので、名前を付けてあげましょう。ここをクリックすると名前が入力できます。

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

スポンサーリンク

起動したLinuxサーバにSSHでログイン

次は起動したUbuntuにSSHでログインしてみましょう。

まずは、接続先を確認します。作成したインスタンスIDがリンクになっていますので、それをクリックします。

接続先情報の確認

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

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

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

ピンク枠で囲まれている文字列が接続名になりますので、クリップボードにコピーしておいてください。

WindowsパソコンからSSHで接続

私はWindowsを使っているので、WindowsからTeraTermを使って実際に接続してみます。

TeraTermって何? という方は、こちら記事でインストール方法を書いていますので参考にしてみてください。インストールが終わったらまたこちらへ戻ってきてください
(参考記事)UbuntuでTelnetを使えるようにする

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

接続できない場合は、この辺を確認してみてください

  • TeraTermのサービス選択ミス:SSHではなく、Telnetを選択いることがよくあります
  • 最新の接続先を確認:インスタンスは一度停止すると接続先名が変わります
  • OSのユーザ名を確認:選択したOSによって異なります
  • キーファイルの選択ミス:複数キーファイルがある場合によく間違えます

タイムゾーン変更

クラウド上のサーバーはUTC(世界標準時間)で動いていますので、自分の地域にタイムゾーンを変更したい場合は、設定変更しておきましょう。これは東京に変更する場合です。

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

とりあえず、アップデート

root権限もありますね。アップデートしときましょう。

$ sudo apt update
$ sudo apt upgrade

さぁて、何して遊ぶ!?

・・・それはまた別の機会にします。

スポンサーリンク

インスタンスの操作

インスタンスの操作は、AWSマネジメントコンソールのEC2画面を使います。

インスタンスの停止

停止したいインスタンスにチェックを付けて、①インスタンスを停止をクリックすると、OSをシャットダウンしてインスタンスを停止できます。

SSHでログインしてshutdownコマンド実行しても同様です。

インスタンスを停止すると、外部IPアドレスが開放されます。次回インスタンスを起動した際は別のIPで起動するため、接続先は毎回EC2の画面で確認する必要があります。

今回は触れませんが、もちろん外部IPを固定化する方法もあります。

インスタンスの再起動

再起動したいインスタンスにチェックを付けて、②インスタンスを再起動をクリックすると、OSをリブートしてインスタンスを再起動できます。

SSHでログインしてrebootコマンドを実行しても同様です。

インスタンスを終了

これを実行すると、インスタンスを停止してその環境を削除します。使い終わって不要になった環境を簡単に削除することができます。もちろん、ディスクの中身もすべて消えてしまうのでこれを実行する際は気をつけてください。

インスタンスを終了ってちょっと紛らわしいですよね。Hyper-V的なノリでいくとインスタンス停止は一時停止、終了がシャットダウンのイメージなので、最初間違えてしまいました。

スポンサーリンク

おまけ(Amazon Linux 2)

Amazon Linux 2 のインスタンスはこんな感じ

作り方の手順は同じです。AMIの選択時にAmazon Linux 2を選択するだけですので、慣れれば3分くらいで環境が作れます。

Amazon Linux 2 の場合は、ユーザ名のデフォルトは、ec2-user です

タイムゾーンの変更は、Ubuntuとちょっと違いますので書いておきます。

$ sudo rm -f /etc/localtime && sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

使わない時はEC2インスタンスを止めた方がよい?

アカウント作成から1年以内で、かつ無料の範囲内であればタダで使えます。

ただ、うっかりすると無料範囲内から飛び出して気がついたら課金されていたということもありますので、気をつけてください。

(注)2021.02.22 時点のスクリーンショット

学習用として無料範囲内で利用したいと考えている場合、いくつインスタンスを作るかによって変わります。

2021.2.22 時点では、EC2は一ヶ月当たり750時間まで無料で利用できると記載されています。一日24時間、31日計算で744時間。つまり、t2.microインスタンスなら1ヶ月間起動しっぱなしでも無料ということになります。

2つ以上のt2.microインスタンスを無料で使いたい場合は、使っていないインスタンスは停止しておかないと無料枠からはみ出してしまいますね。

スポンサーリンク

まとめ

  • EC2はAWS上に仮想マシンを作れる
  • 仮想マシンにインストールできるOSはLinux各種、Windowsサーバ各種あり
  • インスタンスサイズが t2.micro は無料範囲内(詳細条件あり)
  • 作成したインスタンスにはSSHで接続して操作できる
  • 特定の環境(会社や学校等)からしか接続できないようにもできる
ばったん
ばったん

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

コメント

タイトルとURLをコピーしました