name: index class: title, smokescreen, shelf, no-footer # 第01回 Unix演習: OSの種類を調べる <div class=footnote> <small><small> </small></small> </div> --- class: compact # はじめに - Unix演習編について - - 春学期は体験だったので、細かいことを言いませんでしたが、 <br> システム構築の際は、ひとつひとつ作業内容と結果を確認しながら慎重に進めるべき - 本科目は、きちんと細かくやるつもり - <B>実務で使うコマンド操作を習います</B> - ふだんプロがどのようにUnixコマンドで、それをやっているのか?(の初歩)を修行 - 資格試験の勉強では、ありません - コマンド辞典などではありません/コマンドの使い方を網羅はしません - 第01回は? ... <B>使っているサーバのOSは何?</B> を確認 <small> - 対象としているサーバが違うかもしれません - OSが違う場合、作業指示がそもそも間違ってるかもしれません - つまり最低限の確認ですな、少なくとも致命的エラーは防げる </small> --- class: compact # 演習編の凡例 | 項目 | | デフォルト値 | 備考 | |------- |------------- |----------------------------- |------------------------------------- | | how | 何を使って | | Unixコマンド(CLI)を使う演習 | | who | ユーザ名 | admin | AWS EC2のDebianにログインするユーザ | | where | 作業場所 | /home/admin | EC2にログインした場所 | | | サーバ名 | www1.学籍番号.cluod.fml.org | 第03回以降はここにアクセス | | | ターミナル | AWS Academy(vocareum) | ブラウザの中からサーバへアクセス | | what | 何をするの? | | 作業内容は各回の指示書を参照 | | | 第01回 | OSの環境調査 | | | | 第02-03回 | プロセスの調査 | | | | 第05回 | メモリの調査 | | | | 第06回 | フィルタの調査(ACL) | | | | 第07回 | ファイルの読み方(ACL) | | | | 第08回 | デバイスの調査 | | --- class: compact # 凡例(講義スライドより再掲) <small> - 前提とする演習環境 - AWS Academy - AWS 提供の Debian GNU/Linux イメージ上で動作確認し、それを説明の基準とする - 動作確認環境: Debian GNU/Linux 12.4 (アーキテクチャはamd64) - Unixマニュアルの読み方と使い方について少々 - もともとが英語なので<B>単語のあいだにはスペースが必須</B>です。 スペースでもタブでもOK - <B>大文字小文字は区別</B>しています - コマンド引数は可変長。<B>オプションは`-`の右に英数字</B>。オプションの右に引数 <br> 例: ps -aux とか ls -l htdocs - <B>マニュアルでは、コマンド例の右端にENTERは書いてありません</B> <br> つねにコマンド入力の際には最後にENTERキーを押してください ``` $ ps -aux [ENTER} ``` <small> - 技術雑誌では、上の`[ENTER]`のあたりにENTERや矢印が書いてあるが、ふつうのマニュアルでは省略 </small> </small> --- class: compact # unameコマンドを使いUnixの種類を調べる <div class=footnote> <small><small> </small></small> </div> - OSの情報を表示する<B>uname</B>コマンド(たぶんunix nameの略なので、そう覚える)。 - Unixファミリーには標準搭載されているので、とりあえず実行してみるとよい - とりあえず大まかな種類は分る - カーネルバージョンや作成日なども分る - ただしOSのリリース情報/バージョン情報は分らない ``` [実行例] $ uname Linux $ uname -a Linux HOSTNAME 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64 GNU/Linux ``` <small><small> - 注: HOSTNAME 以下(右側)は環境ごとに異なる。この例ではKernel versionが4.19.0-25-amd64 - CPUはamd64(Intel 64bit)で、そのCPU用のDebian(x86_64)であることが読み取れる </small></small> --- class: compact # /etc以下の設定ファイルを調べてOSバージョンを知る <div class=footnote> <small> <small> (脚注) この debian の例では、 OSが*をよきに計らい、 cat /etc/debian_version /etc/os-release を実行した結果が表示されています </small> </small> </div> <small> ``` $ cat /etc/*version /etc/*release 10.13 PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" ``` <small> - `cat`コマンドは引数のファイル(群)を表示する(注:猫ではありません:-) - <B>`*`は「何にでもマッチする」魔法の特殊文字</B> ... 何かと便利なので覚えておくと良い - ファイル名はOSごとに異なるが、 たぶんversionかreleaseという文字列がつくと睨んで`*`つけて実行する </small> </small> --- class: compact,img-right # [例題] AWS Academy (vocareum)の環境を調査する <div class=footnote> <small> <small> 各回、例題は一緒にやる想定です </small> </small> </div> ![](/slides/service/aws/academy/images/vocareum-logined.png) 1. AWS Academy(右図)にログインし 1. 左側のブラウザ内ターミナルで、この環境を調べなさい <br> 前頁までのとおりにやってみてください --- class: title, smokescreen, shelf, no-footer # 第01回 AWS演習: EC2を作成しOSを調査 <div class=footnote> <small><small> </small></small> </div> --- class: compact # はじめに - AWS演習編について - - 春学期は体験で終わってしまったので - 同じテーマですが今回は<B>ガチで構築します</B> - 科目名のとおりに、クラウドらしいシステムを作る修行をします - AWSの資格試験対策では無いので、そちらは各自でがんばってください --- class: compact,img-right # 本日の演習 <div class=footnote> <small> <small> (脚注) Elastic IPの報告をうけて各自のサーバにドメイン名(<B>http://www1.学籍番号.cloud.fml.org/</B>)をつけていきます <br> 最終課題ではドメイン名を使う必要があるためです </small> </small> </div> ![](../../exercise/images/sysbuild-plan-minimum.png) - 春学期の復習をしつつ - 右図(最終課題)の部品群を少しずつ構築 - 今回は - EC2の作成(復習) - EC2に固定IPをつける <br> <B>(Elastic IPサービス)</B> - 提出物 1. EC2のOSの種類を調べて報告 <br> -> ポータルのレポートボックス 2. 取得したElastic IPを報告 <br> -> Google Form <!-- section-begin aws.console --> --- name: aws.ec2 class: title, smokescreen, shelf, no-footer # EC2の作成 <div class=footnote> <small><small> </small></small> </div> --- class: compact,img-right # AWS Academyの管理画面の中を移動 <div class=footnote> <small><small> (脚注) ログインするのは「Student Login」の方です </small></small> </div> ![height240px](/slides/service/aws/academy/images/aws-academy-login.png) ![height240px](/slides/service/aws/academy/images/vocareum-logined.png) 1. AWS Academyにログイン 1. 指定されたコースを選択 1. モジュールをクリック 1. 「AWS Academy Learner Lab を起動する」をクリック 1. 右図(下)の画面のページを出します --- class: compact,img-right # AWSを起動する ![](/slides/service/aws/academy/images/vocareum-logined.png) 1. 右図の画面のページが出てきたら 1. 上部メニューにある「Start Lab」をクリックして、しばらく待ちます 1. 上部メニューの左端にあるAWSマークが緑になったらAWS演習環境の準備が出来ています --- class: compact,img-right # AWS Consoleへ移動 <div class=footnote> <small> <small> </small> </small> </div> ![height240px](/slides/service/aws/academy/images/vocareum-logined.png) ![height240px](/slides/ise/deploy/ec2-www.py/images/aws-console.png) - AWS演習環境へ移動します 1. 右図(上)(AWS Academy)画面左上のAWSをクリック - (AWS READY=緑色になるまで) <br> 1分ていど待つと、 <br> AWS環境が利用できるようになる 1. 緑色のAWSをクリックすると -> <br> AWS Console(右図(下))へ移動できます <!-- section-end aws.console --> <!-- section-begin aws.ec2.new.www1 --> <div class=ec2-install-begin></div> --- name: aws.ec2 class: title, smokescreen, shelf, no-footer # EC2の作成 <div class=footnote> <small><small> </small></small> </div> --- class: compact,img-right # AWS Console -> EC2 <div class=footnote> <small> <small> </small> </small> </div> ![](/slides/ise/deploy/ec2-www.py/images/aws-console.png) 1. AWS ConsoleでEC2をクリックして下さい。 EC2の文字が見つからない場合は検索してEC2サービスを探してください --- class: compact,img-right # EC2の管理画面でインスタンスを作成 <div class=footnote> <small> <small> (脚注1) SSHの鍵の指定です。 ここを忘れるとログインできません </small> </small> </div> ![](/slides/ise/deploy/ec2-www.py/images/aws-console-ec2-top.png) - オレンジ色の「インスタンスの作成」をクリックし、 Debian GNU/Linuxのサーバを一台作成します - 仕様は以下のとおり <small> - EC2につける名前は<B>学籍番号</B><br>(以下では例としてb2902900) - OSイメージはDebian GNU/Linux - EC2の種類はt2.micro - キーペアはvockeyを指定(脚注1) - セキュリティグループはSSH,HTTPS,HTTPの3つが使えるように設定(次回以降に利用する) - ストレージ(ディスク)はデフォルトでよい </small> --- class: compact,img-right # EC2の作成 詳細(1) ![](/slides/service/aws/academy/images/aws-ec2-wizard-01.png) <small> - EC2につける名前は<B>b2902900</B> - OSイメージはDebian GNU/Linux - OS Imagesの右の方にあるので、右のほうを探してください - EC2の種類はt2.micro </small> --- class: compact,img-right # EC2の作成 詳細(2) <div class=footnote> <small> <small> (脚注1) SSHの鍵の指定です。 ここを忘れるとログインできません </small> </small> </div> ![](/slides/service/aws/academy/images/aws-ec2-wizard-02.png) <small> - <B>キーペアにvockeyを指定</B>(脚注1) 【重要】 - ファイアウォール(セキュリティグループ)はSSH,HTTPS,HTTPを許可してください - ようするに、すべてにチェックを入れてください </small> <div class=ec2-install-end></div> --- class: compact, img-right # <small>【重要】 ブラウザ上のターミナルからEC2にログインしてください</small> <div class=footnote> <small> <small> (脚注) 演習環境を統一するため、 演習では<B>ブラウザだけを使って下さい。 各自のPCの環境で作業はしません </B> <br> 慣れている人は自分のPCからSSHなり開発なりしてかまいませんが、トラブルは自分で何とかしてください </small> </small> </div> ![](../images/learnerlab.png) <small> 1. EC2の作成後は、 右図の画面に戻ってください 1. この頁の左側の演習環境(vocareum環境) - <B>vocareum環境からSSHしてください</B> - ユーザ名はadmin - SSHの秘密鍵の指定を忘れずに! <br> 注: この環境では秘密鍵は用意されています ``` ssh -i .ssh/labsuser.pem admin@10.20.30.40 ``` - 注: 10.20.30.40のところは各自のPublic IP </small> <!-- section-end aws.ec2.new.www1 --> <!-- section-begin aws.eip.new --> <div class=eip-setup-begin></div> --- name: aws.eip class: title, smokescreen, shelf, no-footer # Elastic IPの作成と関連付け <div class=footnote> <small><small> </small></small> </div> --- class: compact,img-right # EIPを取得してEC2につける(1) <div class=footnote> <small><small> </small></small> </div> ![height480px](/slides/service/aws/academy/images/aws-eip-01.png) - Elastic IPを検索してクリック - Elastic IPアドレスの管理画面で右上オレンジ色の「Elastic IPアドレスを割り当てる」をクリック --- class: compact,img-right # EIPを取得してEC2につける(2) <div class=footnote> <small><small> </small></small> </div> ![height480px](/slides/service/aws/academy/images/aws-eip-02.png) - 「Elastic IPアドレスを割り当てる」画面ではデフォルトのままでOK。 そのまま右下オレンジ色の「割り当て」をクリック --- class: compact,img-right # EIPを取得してEC2につける(3) ![height480px](/slides/service/aws/academy/images/aws-eip-03.png) - Elastic IPアドレスの管理画面に戻るので、 いま割り当てたIPアドレスを選択し、 「アクション」から「Elastip IPアドレスの関連付け」をクリック --- class: compact,img-right # EIPを取得してEC2につける(4) ![height480px](/slides/service/aws/academy/images/aws-eip-04.png) - 「インスタンスを選択します」のあたりにマウスを持っていくと、 - EC2の候補が表示されるので - 関連付けたいEC2を選択し - 右下オレンジ色の「関連付ける」をクリック <div class=eip-setup-end></div> <!-- section-end aws.eip.new --> --- name: exercises class: title, smokescreen, shelf, no-footer # 本日の課題 <div class=footnote> <small><small> </small></small> </div> --- class: compact # 本日の課題(必須) <div class=footnote> <small> <small> </small> </small> </div> 1. 自分が作成したAWS EC2で作成したサーバの種類とバージョン番号を調べなさい - ポータルのレポートボックスへ提出してください 1. EIPを報告してください - Google Form に書きこんでください --- class: compact # 本日の課題(自由,単位とは関係ない,加点対象) <div class=footnote> <small> <small> </small> </small> </div> - AWSがメニューで用意しているLinuxはオリジナルと何が異っているのか? たとえば、手元のPCにDebian GNU/Linuxを自分でインストールしたときと何が異なっているか? - 注: Amazon linux以外が対象。そもそもAmazon LinuxはAWSが保守するdistro - これもポータルの(別の)レポートボックスへ提出してください --- name: appendix class: title, smokescreen, shelf, no-footer # 付録 <div class=footnote> <small><small> </small></small> </div> --- class: compact # [参考] /etc以下の設定ファイル <small>(解説なし,質問があればどうぞ)</small> <div class=footnote> <small> <small> (脚注) 歴史のあるソフトウエアでは「識別する名前が6文字以内」のことが多い。 たとえばresolveではなくresolv(7文字目のeなし)であることに注意。 これは大昔8文字制限があったので関数を定義するファイルをresolv.cなどとする必要があったからだと思われる </small> </small> </div> <small> - Unixの伝統を理解する - システムの設定ファイルは/etc以下に配置 - ファイル名も作者ごとにバラバラだけど、だいたいのパターンはある。 たいていはconfigurationの略称である conf cnf cf などを拡張子とする or 拡張子なし - /etc直下にファイルがあるパターンは、1970年代まで遡る由緒あるプログラムに多い - /etc/ソフトウエア名.conf /etc/ソフトウエア名.cnf /etc/ソフトウエア名.cf - 例: /etc/syslog.conf ... syslog (ログをとる仕組み)の設定ファイル - 例: /etc/resolv.conf ... DNSクライアントの設定ファイル、これは名前解決(resolve)に由来 - ソフトウエアごとに「/etc/ソフトウエア名/」というフォルダを作成し、その下に設定ファイル群 - (比較的最近といっても1990年代後半〜の)ソフトウエアは、このパターンが普通 - 例: /etc/postfix/main.cf ... メールサーバ Postfix の一番重要な設定ファイル - 歴史的事情が分らないと分かりにくい例もあるが、それは比較的すくない。典型はDNSサーバのBIND - フォルダ名は/etc/namedb/ <br> (NAME server DataBaseの略, かつてはDNSサーバをネームサーバと言ったから) - その下にroot.cacheやゾーン名のファイルを作成する </small>