情報処理技術者試験の勉強~デルファイ法~
本来、未来の科学技術の進化などを予測する手法で、IT分野では
プロジェクトの工数の見積もりや、起こりうるリスクの想定などに用いられる。
デルファイ法の手法
デルファイ法は以下のステップの2~4を繰り返し行う。
1.複数の専門家にアンケートを行う
2.アンケートの結果をフィードバック
3.他の参加者の意見を見てもらう
4.再度同じテーマでアンケートを行う
2~4を繰り返すことで意見をある程度収束させることを目的としている。
デルファイ法のポイント
デルファイ法のポイントとして「アンケートは匿名で行われる」がある。
普通の会議では意見はあるが遠慮してしまい、素直に意見を発言できない、といったことがしばしば発生する。
アンケートを匿名で行うことにより参加者が、周りや自分の立場に関係なく意見を示すことができる。
Webサーバ~Nginx~
今回の記事ではWebサーバのNginxについて紹介します。
1ヶ月以上前ですが、Nginxが日本にオフィスを開設したというニュースが流れました。
今後よりNginxの需要が増えてくるのではないかと考え、Nginxについて少し勉強しました。
以下impressさんの記事の引用です。
Nginxの特徴
さてあらためて説明していきますが、NginxはWebサーバのひとつであり、フリーかつオープンソースです。
Nginxの特徴には以下のようなものがあります。
- メモリ使用量が少ない
- リクエストの処理性能
- リバースプロキシとして利用可能
1.メモリ使用量が少ない
NginxはApacheなどと違い単一のプロセスでリクエストを処理します。
そのためリクエストが複数来たからといって、プロセスが複数立ち上がり、
メモリ使用量が増加する、といったことが起きません。
2.リクエスト処理性能
調べたところNginxはイベント駆動型で非同期のI/O処理をしているから
同時に大量のリクエストを処理できる、らしい。
イベント駆動型はクライアントからのリクエストをイベントトリガーとし、プロセスが立ち上がりリクエストを処理する。
また同期式のI/O処理ではひとつのリクエスト処理が終了しないと、次のリクエスト処理が始まらない。
しかし非同期式のI/O処理では前のリクエストの処理の終了を待たずに、次のリクエスト処理に移っていける。
そのため大量のリクエストをメモリを消費せずに処理できる。(間違っていたらすみません)
3.リバースプロキシとして利用可能
Nginxはリバースプロキシとして利用することが出来ます。
そうすることでバックエンドの複数アプリケーションサーバにリクエストの処理を分散させるといった、ロードバランサーの役割を持たせることが可能です。
まとめ
Nginxの特徴は
- メモリ使用量が少ない
- リクエストの処理性能
- リバースプロキシとして利用可能
リクエストの処理性能のところはもう少し詳しく勉強したい。
inode ~Unix系ファイルシステムのデータ構造~
今回の記事ではinodeについて解説します。
inodeとは
そもそもinodeとはタイトルの副題にもあるとおりUnix系ファイルシステムの
データ構造のことです。
データということは、当然データの中身があります。
inodeの中にもファイルサイズ、所有者、更新日などのさまざまな属性情報
が格納されています。また、データの中身の保存場所もあります。
またinodeにはそれに対応したinode番号が割り振られています。
inode番号はプログラムで処理するときのインデックスの役割をはたします。
inode番号(インデックス)とinode(属性情報)がセットになっています。
セットになっていることの意味は後述します。
さてこのinode番号ですが無限に割り振れるわけではありません。
以下はAWS上でEC2(Red Hat)を立ち上げて使用しているinode数を確認したものです。
使用したコマンド:df -i
一番上のIUsedを見てもらうと43,828と表示されています。
Mounted onが / になっているので全体で使用しているinodeの総数ということがわかります。
それでは実際にファイルを作成し、値が変化するか見てみましょう。
ためしにinode.txtを作成してみました。
IUsedを見ると値が43,829に増えていることがわかります。
次に作成したテキストのinode情報を見てみましょう。
inodeは stat ファイル名で確認することが出来ます。
書いてあることの全てはわかりませんが、Inode番号やファイルサイズ、権限やアクセスなどさまざまな属性情報が確認できます。
さて、これからinodeがコンピュータの中でどう使われているかinode.txtを例に説明していきます。
inode.txtの中身を見たい場合、まずはファイル名(inode.txt)で検索をかけます。
そうするとinode.txtがヒットして、inode.txtのinode番号がわかります。
先ほどinode番号とinodeはセットになっていると説明しました。
なのでinode.txtのinode番号がわかると、セットになっているinodeがわかります。
inodeの中にはデータの中身の保存場所が書かれています。
ここでようやくコンピュータはデータの中身がわかったので、inode.txtの中身を見ることができる、という流れになります。
まとめ
・inode番号とinodeはセット
・inodeにはさまざまな属性情報が入っている
・ファイルの中身を見るときはファイル名→inode番号→inode→ファイル
AWS~責任共有モデル~
こんにちは
新米SEです。
今回はAWSを語る上で欠かせない、責任共有モデルについての記事になります。
資格試験にも頻出なので、覚えておく必要があります。
責任共有モデルとは
簡単に言うと「責任」を「共有」することです。
この説明で理解できる人はここから先は読まなくても大丈夫です。
もう少し詳しく説明します。
責任共有モデルのポイントは2つです。
1. サービスを提供するAWS側と利用するユーザ側でセキュリティ対策の責任を負う境界を明確にする
2.分担・強力しながらセキュリティを強化していく
これらの考え方を「責任共有モデル」と呼びます。
実際にどのように責任を分担しているか説明していきます。
「今話題のAWSでサーバを立ててみる」の補足
こんにちは
新米SEです。
前回の記事ではAWSで実際にサーバを立ててみました。
その際いくつか新しい単語が出てきましたが、特に説明はしていませんでした。
なので今回の記事はいくつかの単語をピックアップし、その補足説明的な
記事になります。
それでは本題に入ります。
今回説明するのは、AMI、キーペア、セキュリティグループです。
AMI(Amazon Machine Image)
AMIとはEC2インスタンスを作成する際に使用する、仮想マシンイメージのことです。
AWSではRed Hat 、Ubuntu、Windowsサーバなどたくさんあります。
またAMIは自分で作成することもできます。
AMIを作成すると何が良いか?
結論から言うと、同じ設定のEC2インスタンスが簡単に複製できます。
オンプレ環境と比べるとわかりやすいかもしれません。
たとえばオンプレ環境で50台のサーバがあったとします。
そうした場合、50台全てにログインし設定しなければいけません。
AWSではAMIを一度作れば、以降はそのAMIでEC2インスタンスを作れるので、
設定の手間が省けます。以下イメージ図です。
キーペア
キーペアは、公開鍵と秘密鍵のペアのことです。
EC2のログインは公開鍵認証方式をとっています。
鍵の管理について
鍵の管理は以下のようになっています。
公開鍵:AWS
秘密鍵:ユーザ
公開鍵はEC2インスタンス起動時にコピーされ、AWS側で管理してくれます。
秘密鍵はユーザ側で、ダウンロードして管理します。
なので紛失/流失しないように注意が必要です。
セキュリティグループ
一言で表すと、ファイアウォール機能です。
EC2インスタンスなどに適用します。
セキュリティグループで制御できる通信は2種類あります。
EC2から出て行く通信:アウトバウンド
EC2に入ってくる通信:インバウンド
特徴は?
デフォルトではアウトバウンド通信は全て許可。インバウンド通信はすべて拒否。
プロトコル・ポート番号・IPアドレスなどで通信許可ルールを設定可能。
また似たような機能としてネットワークACLがあります。
セキュリティグループとネットワークACLの違いについては、また別の機会に
まとめたいと思います。
まとめ
AMI
・仮想マシンイメージ
・自分でも作成できる
キーペア
・公開鍵と秘密鍵のペア
・秘密鍵はユーザ側で管理
セキュリティグループ
・インバウンドとアウトバウンドの2種類をEC2インスタンスに適用
・通信設定ルールを自分で設定可能
もう少しかっこいい図とか作って載せたい・・・orz
今話題のAWSでサーバを立ててみる
こんにちは
新米SEです。
知識のアウトプットをかねてブログを始めました。
記念すべき第一回目は私が最近勉強し始めた、AWSについてです。
AWS
まず初めにAWSについて説明します。
結論から言うと、AWSとはAmazon Web Servicesの略称です。
名前に入っているとおり、Amazon.comにより提供されているクラウドコンピューティングサービスです。
サーバやデータベースなどさまざまなサービスをクラウド上で提供しています。
今回はAWSが提供するサービスのひとつであるEC2を使用してサーバを立てていきま
す。
EC2
また新しい単語が出てきました。
EC2とはAmazon Elastic Compute Cloud、AWSが提供している仮想サーバのサービスです。EC2の利用料金は従量課金制で利用した分だけコストが発生します。
またAWSではたった2~3分でサーバを立てることが可能です。
実際にやってみましょう。
まずはAWSマネジメントコンソールにログインします。
サービス一覧の[コンピューティング]からEC2を選択
インスタンスの作成
AMIを選択
AMI(Amazon Machine Image)はEC2インスタンス作成時に選択する仮想マシンイメージです。今回は無料で利用できるRed Hatを選択。
インスタンスタイプの選択
無料利用枠のt2.microを選択し[確認と作成]。
インスタンスタイプ作成後、以下の画面で[セキュリティグループの編集]
デフォルトでSSH用のポートは開いているので必要に応じて追加する。
新しいキーペアの作成を選択し、キーペア名を入力してキーペアのダウンロード。
ダウンロードした後、[インスタンスの作成]
以下の画面になれば、サーバが立ちました。
[インスタンスの表示]から先ほど作成したインスタンスが確認できます。
インスタンスの詳細です。
実際にTeratermでサーバにアクセスしてみます。
ホスト名にはインスタンスの詳細のパブリックDNS(Ipv4)を入力します。
ユーザ名はデフォルトで作られているec2-userです。
パスワードではなく先ほど作成した鍵を使用します。
ログインできたので、無事にサーバが立っていることが確認できました。
このようにAWSでは本当にサーバを簡単に立てることができます。
今回の記事に出てきたAMIやセキュリティグループなどについては、また別の機会に記事にしようと思います。
まとめ
AWSでサーバ立てるのすごい楽