情報処理技術者試験の勉強~デルファイ法~

本来、未来の科学技術の進化などを予測する手法で、IT分野では

プロジェクトの工数の見積もりや、起こりうるリスクの想定などに用いられる。

 

デルファイ法の手法

デルファイ法は以下のステップの2~4を繰り返し行う。

1.複数の専門家にアンケートを行う

2.アンケートの結果をフィードバック

3.他の参加者の意見を見てもらう

4.再度同じテーマでアンケートを行う

2~4を繰り返すことで意見をある程度収束させることを目的としている。

 

デルファイ法のポイント

デルファイ法のポイントとして「アンケートは匿名で行われる」がある。

普通の会議では意見はあるが遠慮してしまい、素直に意見を発言できない、といったことがしばしば発生する。

アンケートを匿名で行うことにより参加者が、周りや自分の立場に関係なく意見を示すことができる。

 

Webサーバ~Nginx~

今回の記事ではWebサーバのNginxについて紹介します。

1ヶ月以上前ですが、Nginxが日本にオフィスを開設したというニュースが流れました。

今後よりNginxの需要が増えてくるのではないかと考え、Nginxについて少し勉強しました。

 

以下impressさんの記事の引用です。

it.impressbm.co.jp

 

Nginxの特徴

さてあらためて説明していきますが、NginxはWebサーバのひとつであり、フリーかつオープンソースです。

Nginxの特徴には以下のようなものがあります。

  1. メモリ使用量が少ない
  2. リクエストの処理性能
  3. リバースプロキシとして利用可能

 

1.メモリ使用量が少ない

NginxはApacheなどと違い単一のプロセスでリクエストを処理します。

そのためリクエストが複数来たからといって、プロセスが複数立ち上がり、

メモリ使用量が増加する、といったことが起きません。

 

2.リクエスト処理性能

調べたところNginxはイベント駆動型で非同期のI/O処理をしているから

同時に大量のリクエストを処理できる、らしい。

 

イベント駆動型はクライアントからのリクエストをイベントトリガーとし、プロセスが立ち上がりリクエストを処理する。

また同期式のI/O処理ではひとつのリクエスト処理が終了しないと、次のリクエスト処理が始まらない。

しかし非同期式のI/O処理では前のリクエストの処理の終了を待たずに、次のリクエスト処理に移っていける。

そのため大量のリクエストをメモリを消費せずに処理できる。(間違っていたらすみません)

 

3.リバースプロキシとして利用可能

Nginxはリバースプロキシとして利用することが出来ます。

そうすることでバックエンドの複数アプリケーションサーバにリクエストの処理を分散させるといった、ロードバランサーの役割を持たせることが可能です。

 

まとめ

Nginxの特徴は

  1. メモリ使用量が少ない
  2. リクエストの処理性能
  3. リバースプロキシとして利用可能

リクエストの処理性能のところはもう少し詳しく勉強したい。

inode ~Unix系ファイルシステムのデータ構造~

今回の記事ではinodeについて解説します。

 

inodeとは

そもそもinodeとはタイトルの副題にもあるとおりUnixファイルシステム

データ構造のことです。

データということは、当然データの中身があります。

inodeの中にもファイルサイズ、所有者、更新日などのさまざまな属性情報

が格納されています。また、データの中身の保存場所もあります。

またinodeにはそれに対応したinode番号が割り振られています。

inode番号はプログラムで処理するときのインデックスの役割をはたします。

 

inode番号(インデックス)とinode(属性情報)がセットになっています。

セットになっていることの意味は後述します。

 

さてこのinode番号ですが無限に割り振れるわけではありません。

以下はAWS上でEC2(Red Hat)を立ち上げて使用しているinode数を確認したものです。

使用したコマンド:df -i

f:id:sinmaiSE:20190226134333p:plain

1_inode

一番上のIUsedを見てもらうと43,828と表示されています。

Mounted onが / になっているので全体で使用しているinodeの総数ということがわかります。

それでは実際にファイルを作成し、値が変化するか見てみましょう。

f:id:sinmaiSE:20190226140116p:plain

2_サンプルテキスト作成

ためしにinode.txtを作成してみました。

IUsedを見ると値が43,829に増えていることがわかります。

次に作成したテキストのinode情報を見てみましょう。

inodeは stat  ファイル名で確認することが出来ます。

f:id:sinmaiSE:20190226140527p:plain

3_inode情報

書いてあることの全てはわかりませんが、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側の責任

AWS側はリージョンやデータセンター、コンピューティング(EC2)やストレージ(S3)など
AWSが提供しているサービス自体に対する責任を負います。
例えばデータセンターは場所が秘匿にされていて、監視カメラなどによる物理的なセキュリティ対策を実施しています。
簡単に言うとクラウドという大枠のセキュリティに対して責任を負います。

ユーザ側の責任

ユーザ側はクラウド内のセキュリティに対して責任を負います。
OSから上のレイヤの管理・運用に対して責任を持つ必要があるといったほうがわかりやすいかもしれません。
例えばミドルウェアのパッチやアカウントの権限管理、ネットワークのファイアウォール、データの暗号化などがあります。

またアカウントの権限管理はIAM(AWS Identity and Access Management)、ファイアウォールはセキュリティグループ
、セキュリティチェックを行ってくれるAWS Trusted Advisorなど、多種多様のサポートサービスがリリースされています。

まとめ

AWS側とユーザ側で協力しながら責任を分担

AWS側:物理リソースやサービスそのもののセキュリティに対する責任

ユーザ側:提供されるサービス内のセキュリティに対する責任

「今話題のAWSでサーバを立ててみる」の補足

こんにちは

新米SEです。

前回の記事ではAWSで実際にサーバを立ててみました。

その際いくつか新しい単語が出てきましたが、特に説明はしていませんでした。

なので今回の記事はいくつかの単語をピックアップし、その補足説明的な

記事になります。

 

それでは本題に入ります。

今回説明するのは、AMIキーペアセキュリティグループです。

 

AMI(Amazon Machine Image)

AMIとはEC2インスタンスを作成する際に使用する、仮想マシンイメージのことです。

AWSではRed HatUbuntuWindowsサーバなどたくさんあります。

またAMIは自分で作成することもできます。

 

AMIを作成すると何が良いか?

結論から言うと、同じ設定のEC2インスタンスが簡単に複製できます。

オンプレ環境と比べるとわかりやすいかもしれません。

たとえばオンプレ環境で50台のサーバがあったとします。

そうした場合、50台全てにログインし設定しなければいけません。

AWSではAMIを一度作れば、以降はそのAMIでEC2インスタンスを作れるので、

設定の手間が省けます。以下イメージ図です。

f:id:sinmaiSE:20190130154609p:plain

 

キーペア

キーペアは、公開鍵と秘密鍵のペアのことです。

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マネジメントコンソールにログインします。

f:id:sinmaiSE:20190127194417p:plain


サービス一覧の[コンピューティング]からEC2を選択

f:id:sinmaiSE:20190127194428p:plain

インスタンスの作成

f:id:sinmaiSE:20190127194439p:plain

AMIを選択

AMI(Amazon Machine Image)はEC2インスタンス作成時に選択する仮想マシンイメージです。今回は無料で利用できるRed Hatを選択。

f:id:sinmaiSE:20190127194450p:plain

インスタンスタイプの選択

無料利用枠のt2.microを選択し[確認と作成]。

f:id:sinmaiSE:20190127194502p:plain

インスタンスタイプ作成後、以下の画面で[セキュリティグループの編集]

f:id:sinmaiSE:20190127194515p:plain

デフォルトでSSH用のポートは開いているので必要に応じて追加する。

f:id:sinmaiSE:20190127195702p:plain

新しいキーペアの作成を選択し、キーペア名を入力してキーペアのダウンロード。

ダウンロードした後、[インスタンスの作成]

f:id:sinmaiSE:20190127194527p:plain

以下の画面になれば、サーバが立ちました。

[インスタンスの表示]から先ほど作成したインスタンスが確認できます。

f:id:sinmaiSE:20190127194542p:plain

インスタンスの詳細です。

f:id:sinmaiSE:20190127194555p:plain

実際にTeratermでサーバにアクセスしてみます。

ホスト名にはインスタンスの詳細のパブリックDNS(Ipv4)を入力します。

f:id:sinmaiSE:20190127194605p:plain

ユーザ名はデフォルトで作られているec2-userです。

パスワードではなく先ほど作成した鍵を使用します。

f:id:sinmaiSE:20190127201034p:plain

f:id:sinmaiSE:20190127194614p:plain

f:id:sinmaiSE:20190127200905p:plain

ログインできたので、無事にサーバが立っていることが確認できました。

このようにAWSでは本当にサーバを簡単に立てることができます。

今回の記事に出てきたAMIやセキュリティグループなどについては、また別の機会に記事にしようと思います。

 

まとめ

AWSでサーバ立てるのすごい楽