AWSでLinuxの仮想サーバを作成する
AWSを利用して仮想マシン(インスタンス)を起動させる。
これをすることで、ターミナルでLinuxの環境をいじることができるようになる。
Amazon LinuxはRedHat系のディストリビューションらしい。
まずアーキテクチャを決定する。
x86:プログラムやデータを32ビット単位で処理するもの。
Arm64:プログラムやデータを64ビット単位で処理するもの。
ビットは「0か1が入っている箱」で、情報量を表す単位。
今の主流は64ビット版らしい。
数字が大きい方が頭が良い…
どうやら選択によってパフォーマンスに差が出ると言うこと?らしい。
ami64を選択した。
次にインスタンスタイプの選択。
この記事には「g系インスタンスファミリーであれば良い」と書いてあった。
インスタンスファミリーにはG系
とP系
があるらしい。
G系はコストが安い。
P系は数値計算に強いらしい。
キーペアを作成する。
これは仮想マシン接続時の身分証明に使用される。
パブリックキーとプライベートキーが作成されるが、
プライベートキーが割れると誰でも私の仮想マシンに接続できるようになっちゃうので間違ってもGitなど上げてはいけない。
SSH接続で安全性を確保している。
sshとは、TCP/IPネットワークを利用してネットワーク上に存在するサーバにアクセスし、UNIXコマンドを用いて直接サーバ操作ができるようになるプロトコル。「Secure Shell」の略。
パブリックキーはインスタンス内に保管される。
RSA: 暗号化と署名
EdDSA: 署名のみ。暗号を破るためにより高い計算量が求められる。
アルゴリズムとしての強度はEd25519のほうが高いらしい。
OpenSSHはSSHプロトコルを利用するためのソフトウェア。SShサーバおよびSShクライアントを含む。
セキュリティルールを編集する。
セキュリティグループは仮想インスタンスであるサーバを守るファイアウォールとして機能する。
守る対象のインスタンスに紐づける。
chmod 400 kotomi.cer
ssh -i "kotomi.cer" ec2-user@hogehoge.compute.amazonaws.com
chmod 400
chmod = change modeの略。
ファイルやディレクトリのアクセス権限を変更するためのコマンド。
400はアクセス権を指定するコマンド。
rootユーザー以外読み込みができない。また、rootユーザーであっても書き込みや実行はできない。
重要なファイルで設定するようなもの。
他権限の種類は以下。
権限の種類 | 対応する数字 | 大事 |
---|---|---|
全て許可 | 7 | |
読み取り&書き込み | 6 | |
読み取り&実行 | 5 | |
読み取り | 4 | ★ |
書き込み&実行 | 3 | |
書き込み | 2 | ★ |
実行 | 1 | ★ |
全て禁止 | 0 |
★マークの数字の足し算で他の権限は表現することができる。
例えば [読み取り:4] + [書き込み:2] = [読み取り&書き込み:6]
$ chmod 740 ファイル名
// 所有者:すべて許可
// グループ:読み取りのみ許可
// その他:すべて禁止
3桁指定の時 = 所有者の権限+グループの権限+ユーザーの権限
2桁指定の時 = グループの権限+ユーザーの権限
ex) chmod 33 = chmod 033 と同じ
1桁指定の時 = ユーザーの権限
ex) chmod 7 = chmod 007 と同じ
権限の種類 | 対応する記号 |
---|---|
読み取り | r = 4 |
書き込み&削除 | w = 2 |
実行 | x = 1 |
ユーザー指定 | 対応する記号 |
---|---|
所有者 | u |
グループ | g |
その他 | o |
全て | a |
権限 | 対応する記号 |
---|---|
権限を付与 | + |
権限を削除 | - |
権限にする | = |
$ chmod [ユーザー][記号][権限][ファイル]
$ chmod [ユーザー][記号][権限],[ユーザー][記号][権限][ファイル] // 複数のユーザーを指定する
# 所有者に書き込み権限を付与
$chmod u+r test.txt
# 所有者:すべて(rwx)
# グループ:読み・書き(rx)
# その他:読み込みのみ(r)
$ chmod u+rwx,g+rx,o+r test.txt