MySQLを使ってみよう-インストール編

From: リスキルテクノロジー 松田航
新宿本校にて、、、

大規模なシステムから
スマホのアプリケーションまで

システム規模の大小を問わず
データベースが活用されています。

オープンソースの
代表格的なデータベースに

MySQL

...があります。

今回から数回にわたり
MySQLのインストールや設定、
簡単な操作方法などをご紹介しましょう。

ちなみに、PostgreSQLがうちのスクールでは主流ですが、
MySQLも取り入れていたりします。

MySQLとは?

MySQLとは
世界中で最も使われている
オープンソースのデータベースです。

大小さまざまな
システムで採用されており、

有名どころでは
facebookでも使われていますね。

facebookでは
何千台ものMySQLが
利用されているようです。

もともとは
スウェーデンの企業で
開発されたデータベースですが、

その後
サン・マイクロシステムズ社に買収され...

さらに
サン・マイクロシステムズが
オラクル社に買収されと...

いろいろと
歴史のあるデータベースなのです。

ともあれ、
MySQLは優れた性能を持っており、

それまで
商用で販売されていた
データベースと同等の性能を持っています。

将来有料化しないか心配ですが、
当分は大丈夫でしょう。

インストールする前に...

それでは、
以前インストールした
CentOS7にMySQLをインストールしましょう。

と、その前に...

まずは、

MariaDB

という製品が
インストールされていないか
確認する必要があります。

CentOSでは
MySQLが標準だったのですが、

バージョン7から
MySQLは標準ではなくなっています。

MySQLの代わりに
MariaDBというデータベースが
標準でリポジトリに入っています。

MariaDBとは
MySQLとの互換性を持った
データベースです。

このMariaDBについては
また別の機会にご紹介しますね。

MySQLとMariaDBは
同じ環境にインストールできますが...

割とややこしいので
今回はMariaDBに関するものを
アンインストールした上で進めましょう。

まずは、
MariaDBに関するものが
インストールされていないかを確認です。

root権限で
端末から次のコマンドを入力します。

step1

mariadb-lib
というものが入っているようです。

これを
次のコマンドで
アンインストールしましょう。

step2

アンインストールできました。

いよいよMySQLをインストール

まずは
MySQLの公式サイトから
次のコマンドでMySQLをダウンロードします。

step3

ダウンロードが完了しました。

そしていよいよ
MySQLとMySQLの動作に必要な
パッケージをインストールします。

yum -y install mysql
yum -y install mysql-devel
yum -y install mysql-server
yum -y install mysql-utilities

1行ずつコマンドを実行すると、
それぞれのパッケージのインストールが開始されます。

順番にインストールしましょう。

インストールが完了したら、
次のコマンドで確認しましょう。

step4

インストールされていますね。

これで
MySQLの準備が整いました。

次回は
MySQLの初期設定についてご紹介します。

リスキルテクノロジー
松田

PS
データベースを使ったプログラミングを学ぶならこちらから

システム開発の質を高めるバージョン管理ツールとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

「バージョン管理」

という言葉をご存知でしょうか。

システム開発においては
欠かすことのできない手法です。

これが欠けてしまうと
開発作業は大きく混乱してしまいます。

今日は
大切なバージョン管理に必要な...

「バージョン管理ツール」

...についてお話しましょう。

バージョン管理は何のために?

多くの場合、
システム開発は1人では行いません。

複数のエンジニアが集まり
システムを作り上げてゆきます。

システムを作るにあたっては
設計書やプログラム、マニュアルなど

多くのファイルを作りながら
進められてゆきます。

全て1人でするならば...

どのファイルに
どんなことを書いたのか、
どのように修正したのかなど、

ファイルの内容を
ある程度覚えておくことができます。

しかし、
複数の人で開発をする場合は別です。

自分が書いたファイルが
知らない間に他の人に修正されたり、

プログラムが書き換えられたりと
ファイルの状態を把握できなくなります。

ファイルの状態を把握できないと
何が起こるかというと...

本来は
プログラムのバグを修正した
最新のファイルを納品しないといけないのに

バグのある古いファイルで納品し
システムトラブルが発生することもあります。

そのような問題を避けるために
ファイルのバージョン管理を行う...

「バージョン管理ツール」

...が、
ほとんどの開発現場で導入されています。

ファイルのライフサイクルを管理する

バージョン管理ツールとは
ひとことで言うと...

「ファイルのライフサイクルを管理するツール」

...だと言えます。

ファイルに対して...

誰が、いつ作成したのか?
誰が、いつ、どこを修正したのか?
ファイルが何回修正されたのか?

...などをデータベースで管理します。

プログラムだけでなく、
様々なフォーマットのドキュメントや、

画像ファイルや動画ファイル、
音楽ファイルに至るまで、
あらゆるファイルを管理することができます。

また、
複数の人が同じファイルを
同時に変更することがないように

誰が今、ファイルを変更しているか?

といったことも管理することができます。

バージョン管理ツールには
大きく分けて2つのタイプがあります。

■集中型

まず1つ目は「集中型」と呼ばれるタイプ。

これは、
ファイルのバージョン管理をする

「リポジトリ」

と呼ばれるデータベースのようなものが、
専用のサーバーで一元管理されているタイプです。

比較的古いバージョン管理ツールは
この集中型のものが多いですね。

■分散型

そして2つ目は「分散型」と呼ばれるタイプです。

分散型も集中型と同じように
リポジトリでファイルを管理しますが、

作業する人がそれぞれに
リポジトリのコピーを持つことで、

たとえば
ネットワークに繋がっていなくても
修正することができるというのが特徴です。

最近開発された
バージョン管理ツールは分散型が多いですね。

代表的なバージョン管理ツール

それでは、
代表的なバージョン管理ツールを見てみましょう。

■CVS

CVSとは
Concurrent Versions Systemの略称で、
並行バージョン管理システムを意味します。

1990年に開発された
比較的歴史の古いバージョン管理ツールです。

こちらは集中型の
バージョン管理システムになります。

■Apache Subversion

多くの開発現場で使われていた
CVSの問題点を改善するために作られたツールです。

2000年に開発され、
操作がCVSと似ていることから、

CVSからSubversionに
乗り換えるユーザが多くいました。

CVSと同じく
集中型バージョン管理システムです。

■Visual Source Safe

1994年にMicrosoft社が開発した
集中型のバージョン管理ツールです。

CVSやSubversionと違い
フリーウェアではなく商用ツールですが...

ファイルの破損といった
トラブルがけっこうあったツールですね。

商用だから良い!
というわけではありませんね。

■Git

2005年に開発された
分散型のバージョン管理ツールです。

Linuxカーネルの
ソースコード管理のために開発されたもので、

今では多くの開発者に使われている
人気のバージョン管理ツールです。

開発者は
Linuxカーネルの生みの親である
リーナス・トーバルズです。

もちろんフリーウェアです。

フリーで使えて質が良い...

やはり
オープンソースはいいですね(笑

開発の生産性と質を高めるために

この他にも
多くのバージョン管理ツールがありますが、

現在の主流は
SubversionとGitです。

Subversionのシェアは高いですが、
それを追うようにGitがシェアを広げています。

これらの
集中型と分散型の代表的なツールを
一度は触っておいたほうが良いでしょう。

私はプログラムを触らないから...

という方も、
一度は触っておいてください。

なぜなら、
管理するファイルはプログラムだけでなく、

業務資料や仕様書といった
さまざまなファイルが対象となるからです。

バージョン管理ツールを
活用することで...

システム開発の生産性を高め、
開発の質そのものを高めることに繋がるのです。

リスキルテクノロジー
松田

実践的な開発手法を習得するならこちら

サービスを停止させないクラスタリングとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

システムの障害などにより
サーバーが停止してしまうと、

ビジネスだけでなく
生活にも大きな影響を与えてしまいます。

今日は
システムを停止させない技術である、

「クラスタリング」

についてお話しします。

クラスタリングって何ですか?

現代社会では
システムが止まってしまうと、

大きな混乱が
発生してしまいます。

また、
システム利用者の増加によって

大量のデータや
通信のやりとりが発生しています。

システムを
停止させないように、

そして、
できるだけ高速に
処理を行うように考えられた技術が

「クラスタリング」

という技術です。

「クラスタ」とは
「ぶどうの房」という意味で、

複数のサーバーを統合して
処理を行うことを言います。

複数のサーバーを
統合することにより、

1台のサーバーでは
実現できないサービスを提供できます。

クラスタリングは大きく分けて…

・HAクラスタ(High Availability)

と…

・HPCクラスタ(High Performance Computing)

…の2種類があります。

では、
それぞれの特徴を見てみましょう。

高可用性を実現するHAクラスタとは?

HAクラスタは
高可用性を目的としたクラスタリングです。

「可用性」

とは、
継続して稼働できることを意味します。

言い換えれば、
システムの壊れにくさですね。

HAクラスタは
さらに2種類に分けられます。

 

■1:フェイルオーバー型

同じ役割を持つノードを
複数用意しておき、

一方を稼働系
もう一方を待機系とします。

※ノード:サーバーやネットワーク機器などの総称

常に動いているのは
稼働系のノードです。

そして稼働系ノードに
何か障害が発生したときには、

待機系ノードが
稼働系ノードに切り替わります。

こうすることで、
サービスを停止することなく、
システムを稼働することができるのです。

稼働系がActive、
待機系がSatndbyなので
Active-Standby型とも言われます。

■2:負荷分散型

同じ役割を持つノードを
複数用意しておき、

いずれも並行して
稼働させておく方法です。

1つのノードが停止しても
他のノードが処理をするので、

サービスを停止することなく
システムを稼働させられます。

また、
複数のノードで処理をするため、

各ノードの負荷が減り、
高い処理性能を発揮することができます。

いずれもActiveなので
Active- Active型とも言われます。

高い処理性能を実現するHPCクラスタとは?

HPCクラスタとは
処理速度を高めるための手法で、

スーパーコンピュータでも
使われている技術です。

HA構成では
各サーバーの役割は同じでしたが、

HPC構成では
それぞれの役割が異なります。

 

ヘッドノードは
クラスタの管理を行う役割で、

各ノードの管理や
クライアントとのやりとりを行います。

そして、
計算用ノードは
計算処理を専門に扱うノードで、

複数の計算用ノードが
平行して処理を行う事で
高い計算能力を発揮します。

データベースとのやりとりは
データノードが行います。

このように、
それぞれの処理を専門に行い、

処理の高速化をするのが
HPCクラスタの特徴なのです。

インフラエンジニアの大切な役目

ひと昔前までは
クラスタリングをするには、

高額なアプリケーションや
専用の機器が必要でした。

しかし、
オープンソースソフトウェアにより
安価に導入できるようになり、

多くの企業や研究機関で
クラスタリングが行われています。

Linuxをはじめとする
オープンソースの普及が、

現代のITを
リードしていると言えるでしょう。

これからの時代、
インフラエンジニアを目指すなら、

サービスを停止させずに
高い処理性能を維持する、
クラスタリングのノウハウは必要です。

多くのシステムは
人々の生活に大きく影響しています。

インフラエンジニアには
そのようなシステムやサービスを

停止させないという、
大切な役目があるのです。

リスキルテクノロジー
松田

PS

サーバーエンジニアや
ネットワークエンジニアを目指すならこちらから

マルウェアとは、どんなプログラム?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

この社会では
コンピューターを触らない日はない!

...と言っても過言ではありません。

そのコンピューターを
危険な状態にしてしまうプログラムに

「マルウェア」

...があります。

今回はマルウェアについて
お話ししましょう。

マルウェアって何?

マルウェア(malware)

とは

英語で「悪いこと」を意味する

「mal-」

という接頭語にソフトウェアの

「ware」

を付けた言葉です。

マルウェアと言うと
わかりにくいかも知れませんが

「コンピューターウィルス」

と言えば皆さんご存知でしょう。

とはいえ、
コンピューターウィルスは
あくまでマルウェアのうちの1種類で、

他にもコンピューターに
さまざまな障害をひきおこす
マルウェアが存在します。

ひと昔前までは
せいぜいコンピューターを
実行できなくする程度のものでしたが、

今では
ネットワーク環境の発展にあわせて
さまざまな障害を引き起こしています。

マルウェアは
現代のネットワーク社会において
非常に大きな問題となっているのです。

代表的なマルウェアの種類

それでは、
マルウェアの種類を見てみましょう。

とても多くの種類がありますが、
ここでは代表的なものをご紹介します。

■1:ウィルス

ユーザーが
気づかないうちに増殖して
ファイルに感染していくマルウェアです。

メディアやネットワークを通じて
他のコンピューターに感染します。

感染して
すぐに発症するものもありますが、

潜伏期間を過ぎて
発症するものもあります。

■2:ワーム

ウィルスのように
ファイルに感染することなく
自己増殖してゆくマルウェアです。

ネットワークを通じて
自分のコピーを別のコンピューターに作るため、

コンピューターの
ネットワークリソースを消費します。

■3:トロイの木馬

一見すると
何もないプログラムですが、

実際には
ウィルスやワームなど

害を与えるプログラムを
運ぶためのマルウェアです。

プログラムを
知らずに実行すると、

トロイの木馬が
運んできたマルウェアが動作します。

■4:スパイウェア

ユーザーが知らないうちに
クレジットカードやパスワードなど、
個人情報を盗み出しマルウェアです。

盗み出された情報は
スパイウェアの製作者に送信されます。

■5:ボット

コンピューターを
外部からコントロールするためのマルウェアです。

ボットに感染したコンピューターは

「ゾンビPC」

と呼ばれ、
他のコンピューターに操られてしまいます。

■6:ボットネットワーク

ボットに感染した
複数のゾンビPCで構成されたネットワークで、

悪意あるユーザーが
ゾンビPC指令用サーバーを経由して
ゾンビPCに一斉に命令を指示します。

マルウェアに感染するとどうなる?

感染するマルウェアによって
引き起こされる症状はさまざまですが、

大きく分けると
次のような影響があります。

■1:ウィルスの拡散

ネットワーク内にある
他のコンピューターにウィルスを拡散します。

遠隔操作系のマルウェアなら
新しいマルウェアを
次々と送り込まれる可能性もあります。

■2:情報の漏えい

システム情報や
ルートパスワードなど

コンピューターにとって
非常に大切な情報を盗まれることもあります。

管理者権限を持つ
ユーザー情報を盗まれた場合は

コンピューターが
乗っ取られる可能性もあります。

■3:他のコンピューターへの攻撃

マルウェアの1種である
ボットに感染したコンピューターの場合、

ボットネットワークを通じて
ゾンビPCに一斉に命令を置くることで、

迷惑メールの送信や
ネットワーク障害を起こすことがあります。

マルウェア対策の重要性

「Linuxはマルウェアに強い」

と言われています。

しかし、
Linuxユーザーが増えるにつれ、

Linuxを狙ったマルウェアが
増えているのも残念ながら事実です。

基本的なマルウェア対策としては...

・ファイアウォールを利用する
・セキュリティソフトを利用する
・不要なサービスを起動しない
・知らないファイルを実行しない
・パスワードを定期的に変更する

...などが挙げられます。

Linuxは
サーバーやクライアントだけでなく、
家電製品などに組み込まれるケースが増えています。

そして
ライフラインを管理するような
重要なシステムにも使われているため、

これまで以上に
セキュリティ対策が必要です。

万が一、
マルウェアの標的にされたとしても

問題を起こさないような
セキュリティ対策を心がけるようにしましょう。

リスキルテクノロジー
松田

PS

Linuxの構築から運用
そしてセキュリティまで学びたいならこちら

VirtualBox使ってみよう! 副題:1台で複数のOSを動かす仮想化とは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

Linuxを使いたい時などに、
パソコンそのまま使うのは大変ですよね?

今回は
1台のパソコンを
2台にも3台にもすることができる

「仮想化」+「VirtualBox」

についてお話ししましょう。

仮想化って何ですか?

一般的には
パソコン1台につき
1つのOSがインストールされています。

ですが、
新しい環境が必要になった時、

毎回新しいパソコンを
購入するのは費用がかかってしまいます。

この問題を解消するのが...

「仮想化」

...という技術で、
1台のパソコンの中に、

複数のOSを同居させることを
可能とする技術です。

仮想化で作られた環境を...

「仮想マシン」

と呼び、仮想マシンで動作するOSを...

「ゲストOS」

と呼んでいます。

つまり、
仮想化されたパソコンには
複数の仮想マシン・仮想OSが同居しています。

仮想化を理解するには、
賃貸マンションをイメージしてください

マンションの空き部屋を
別のOSに貸し出すようなイメージです。

この例だと
空き部屋が仮想マシンですね。

内装やインテリアは
住む人によって違うのでさまざまです。

内装が仮想OSにあたります。

同じ物件を使っているので、
物理的な資源は共有しています。

つまり、
CPUやメモリーなど、

パソコンが持つ資源をシェアして
複数のOSを動作させることができるのです。

仮想化するには仮想化ソフトが必要

仮想化するには
専用のソフトをインストールして、
仮想環境を作ります。

代表的な仮想化ソフトを
いくつか見てみましょう。

■1:VMWare

アメリカのVMWare社が開発した
仮想化ソフトウェア。

サーバーの仮想化など
多くの企業で採用されています。

個人用途には
VMWare Playerがあり、

業務用のVMWareと
同じ仮想化技術が使われています。

■2:VirtualBox

DBやJavaで有名な
アメリカのOracle社の仮想化ソフトです。

商用利用すると
ライセンスが必要となるVMWareと異なり、

オープンソースなので
無料で使用することができます。

■3:KVM

Linux標準の仮想化技術で
イスラエルのQumranet社が開発した仮想化ソフトです。

正式名称は

「Kernel-based Virtual Machine」

と言い、
Linuxカーネルの機能を
最大限に利用することができるソフトです。

■4:Xen

イギリスのケンブリッジ大学で
研究されたソフトがベースの仮想化ソフトです。

こちらもオープンソースなので
無料で仮想化環境を作ることができます。

VirtualBoxで仮想マシンを作ろう!

仮想化するには
どのようにすればいいのでしょうか。

実は意外と簡単に
仮想環境を作ることができるのです。

VirtualBoxを使った
仮想マシンの構築法をご紹介しましょう。

まずは、
VirtualBoxをダウンロードします。

「VirtualBox platform packages」

にあるリストから、
仮想環境を作りたいパソコンの
OSに合うソフトウェアをダウンロードします。

ダウンロードしたら、
インストールしましょう。

インストール時に
いろいろ設定画面が出ますが

特に変更する必要はありませんので、
そのままインストールしてください。

step1

インストールが終わったら
VirtualBoxを起動して仮想マシンを作りましょう。

「新規」ボタンをクリックします。

step2

ゲストOSはCentOSにします。

(CentOSのDVDイメージファイルが必要です)

step3

ゲストOS(今インストールしているこれのこと)に
割り当てるメモリーの量を指定します。

上限はパソコンで使える
メモリーの最大量ですので、

あまり負担をかけ過ぎないように
設定しましょう。

step4

仮想マシン用の
ハードディスクを作成します。

step5

ハードドライブのファイルタイプは
「VDI(VirtualBox Disk Image)」

step6

物理ハードドライブにあるストレージは
「固定サイズ」

step7

ファイルの場所とサイズでは
「16.00GB」

...に設定して
「作成」ボタンをクリックします。

サイズはパソコンの
空き容量にあわせて設定してください。

step8

これで仮想マシンができました。

CentOSを選択して
画面上の「起動」ボタンをクリックします。

step9

最初の起動ですので…

「起動ハードディスクを選択」

という画面が表示されますが、
右のフォルダアイコンをクリックして…

あらかじめダウンロードしておいた
CentOSのDVDイメージファイルを選択します。

これで
CentOSのインストールが開始されます。

仮想環境に接する機会はますます増える

仮想化技術は
多くの企業が採用している技術です。

レンタルサーバーなどでは
1台のサーバーに複数の仮想マシンを構築し、

仮想マシンを
レンタルするサービスが多いです。

また、
実際にサーバーを購入すると

コストや維持費がかかるため、
自社サーバーを仮想化する企業も増えています。

インフラエンジニアだけでなく
アプリケーションエンジニアでも

仮想環境に接する機会は
これからますます増えて行くことでしょう。

仮想化技術についての
基本的なノウハウを持つようにしてください。

リスキルテクノロジー
松田

PS
仮想化の講座ならこちらから

CentOSのインストール方法

From: リスキルテクノロジー 松田航
新宿本校にて、、、

このブログを
読んでくださっている方は、

Linuxに大きな関心を
持っている方が多いことでしょう。

「Linuxを実際に触ってみたい!」

そう思うこともあるかと思います。

では、
実際にLinuxに触ってみましょう。

下記でより細かいことを解説もしてみましたので、こちらもご参考ください。

かなり詳しく!CentOS7のインストール方法

Linux環境の構築方法

今回はLinux環境の
構築方法をお教えします。

パソコンを1台だけ
用意しておいてください。

Linuxに興味はあって
パソコンも持っているけど、
他のOSが入ってしまっている...

という方でも大丈夫です。

ほとんどのOSには
無償の仮想化ソフトがあります。

仮想化というのは
1台のパソコンの中に、

別のパソコンがあるかのように
新しい環境を作ることを言います。

詳しくは
ネットで検索してみてください。

また、このブログでも近いうちに
ご紹介していきます。

もちろん
仮想化ではなく、

他のOSから
Linuxに乗り換えるのもアリですね。

まぁ、なかなか難しいかと思いますが、
楽しいですよ。

CentOSをインストールしよう

CentOSとは
Linuxディストリビューションのひとつで

Red Hat Enterprise Linux(RHEL)と
互換性のあるディストリビューションです。

RHELのクローンOSとして有名で、
安定性の高さで評判が高く、

Webサーバーの
およそ20%でCentOSが使われており、

当スクールの授業でも
このCentOSを使っています。

それでは、
CentOSを入手しましょう。

CentOSは
以下のサイトで手に入ります。

出典:CentOS
centos

今回は

「DVD ISO」

を選択して
CentOSのDVDファイルを選びます。

すると、
何やらリンクの一覧が出てきます。

mirrorサイト

これはCentOSを
ダウンロードできるサイトの一覧です。

「Actual Country(現在の国)」

にあるリンクが
日本で入手可能なサイトになります。

この中のいずれかから
ダウンロードしましょう。

ダウンロードした
DVDイメージをメディアに書き込んで
準備完了です。

なお、現時点での
CentOSの最新バージョンは7です。

CentOSインストール手順

いよいよインストールです。

先ほど準備した
メディアからをパソコンに入れて
起動しましょう。

step1

インストールの初期画面です。

Enterキーを押せば
インストールが始まります。

step2

しばらくすると
言語の選択画面が表示されます。

日本語を選択しましょう。

step3

インストールの概要画面です。

ここではいくつか設定変更します。

・ソフトウェアの選択(S)

次に表示された画面で
「GNOME Desktop」を選択して
[完了(D)]ボタンをクリックします。

・インストール先(D)

次に表示された画面で
何もせずに[完了(D)]ボタンをクリックします。

最後に
[インストールの開始(B)]
を選択すると、インストールが始まります。

step4

インストールが始まると
root(管理者)パスワードと
ユーザーが作成されていないと表示されます。

それぞれ、

・rootパスワード(R)
・ユーザーの作成(U)

をクリックして設定します。

インストールが終われば
[再起動(R)]ボタンをクリックします。

step5

これでCentOSが使えるようになりました。

実践で活躍するには多くのノウハウが必要

いかがでしたか?

Linuxのインストールは
意外と簡単にできるのです。

ただ、
今回ご紹介した構築法は
あくまでLinuxに触れるためだけの構築法です。

実践で活躍できる
エンジニアになるためには、
多くのノウハウの習得が必要になります。

まずはLinuxを
身近に感じるためにも

CentOSを
インストールしてみるのもいいでしょう。

それが、
あなたがエンジニアになるための
第一歩になるかも知れません。

リスキルテクノロジー
松田

PS

Linuxの
体系的なノウハウの習得は、
独学ではなかなか難しいと言えます。

基礎から実践まで
体系的にマスターしたいならこちらから。

Linuxの専門スクール

Linuxディストリビューションとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

Linuxには
さまざまな種類があり、

それらを

「ディストリビューション」

...と呼びます。

今回はさまざまな
Linuxディストリビューションについて
お話ししましょう。

そもそもディストリビューションとは?

ディストリビューションとは

「流通」
「配布」

という意味で、
Linuxが配布される形態のことを言います。

本来、
Linuxという言葉は
Linuxカーネルのことを意味していますが、

カーネルだけでは
OSとして手軽に使うことはできません。

そこで、
Linuxを利用しやすいように

アプリケーションなどをパッケージにして
すぐに使える状態にしたものを

「ディストリビューション」

...と呼びます。

自動車で例えるとわかりやすいですね。

自動車には
エンジンの他にハンドルやタイヤなど

さまざまな部品があって初めて
自動車として利用することができます。

Linuxも同じで、
カーネル以外にも
さまざまなアプリケーションがあって初めて

Linuxとして
利用することができるのです。

そして同じ自動車でも
いろいろな車種があるように

Linuxにも
いろいろなディストリビューションがあるのです。

代表的なLinuxディストリビューション

代表的なディストリビューションを
いくつかご紹介しましょう。

■Red Hat Enterprise Linux (RHEL)

アメリカのRedHat社が開発した
商用向けのLinuxディストリビューションです。

クライアントPC用途ではなく
大規模システムのサーバーに利用されています。

■Fedora

FedoraはRedHat社が
支援しているディストリビューションです。

RHELは商用向けで有料なのに対し
Fedoraは無料で使うことができます。

Fedoraは次世代のRHEL向けの
検証用ディストリビューションとしての役割があり、

実際にFedoraで検証された
多くの新しい技術がRHELに採用されています。

■Debian

Debianは
世界中の有志が集結して作り上げた、

100%フリーで使うことができる
Linuxディストリビューションです。

さまざまなCPU上での動作サポートと
数万にもおよぶ膨大なアプリケーション数が特徴で、
多くの企業のシステムに採用されています。

■CentOS

CentOSはRHELのクローン(複製)OSで
RHELの商用部分を取り除いたディストリビューションです。

Fedoraのように
RHELの実験的要素を含んだOSとは異なり、

安定性も比較的高く、
商用でも使われる機会も増えています。

うちの授業はこれでやっています。
Centいいですよ。

■Ubuntu

Debianをベースに作られた
世界的な人気を持つディストリビューションです。

使いやすいデスクトップで
初心者にも抵抗なく使えるのが特徴ですが、

Debianと同じく
多くの企業のシステムにも使われています。

Linuxディストリビューションのトレンドは?

Linuxには
多くのディストリビューションがありますが、

実際に使われているのは
どのディストリビューションなのでしょうか。

実際にWebサイトで使われている
ディストリビューションを見てみましょう。

dist

出典:W3Techs

これは
2014年から2015年にかけて、

Webサイトで使われている
Linuxディストリビューションの割合を示したものです。

2015年3月時点で...

1位:Debian … 32.4%
2位:Ubuntu … 26.2%
3位:CentOS … 20.3%

…と全体の78%以上を
Debian、Ubuntu、CentOSが占めています。

リリース当初は人気が高かった
Red Hat Enterprise Linuxですが、

Debian系ディストリビューションの人気が高く、
少しずつ利用率が減ってきています。

どのLinuxを使うかは企業によりますが、

・Debian系(Debian、Ubuntu)
・RedHat系(RHEL、CentOS)

...といったLinuxが
現時点でのトレンドであることを覚えておいてください。

操作自体は大きく変わりませんが、
コマンド等が変わってくるので、
注意しましょう。

Linuxテクノロジーをしっかり学ぶことが大切

ディストリビューションは違っても
Linuxというテクノロジーに違いはありません。

まずはLinuxという
テクノロジーをしっかり学ぶことが大切です。

ディストリビューションに左右されない
正しいノウハウがあれば、

どのようなディストリビューションにも
対応できるエンジニアになれるのです。

「環境に左右されないエンジニア」

そんな素晴らしいエンジニアを目指してください。

リスキルテクノロジー
松田

PS

Linuxテクノロジーを学び
環境に左右されないエンジニアを目指すならこちらから

Linuxならリスキルテクノロジー

エンジニアに必要なスケジュール管理能力とは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

先日、
あるプログラマーが
こんなことを言っていました。

「仕事をこなしても家に帰れない」

スケジュールが遅れたり
プログラミングが進まなかったりすると
よくあることですが...

いつまでに仕事をすればいいのかわからない

そのプログラマーは
大きなプロジェクトに参画しています。

システム化にあたって
作らなければいけない機能は多いのですが、

参加している
エンジニアの数も多いので
何とかなるだろうと考えていたようです。

彼は割り振られたプログラムを
難なく作っていくのですが...

「いつまでに作ればいいのかわからない」

...と言うのです。

プロジェクトリーダーに
いつまでにプログラムを作ればいいか尋ねても...

「できるだけ早く!」
「できるだけ前倒しで!」

...と言われるだけで、
期日がはっきりしないのだそうです。

そのため、
毎日遅くまで残業が続き
なかなか家に帰れないのだそうです。

欠けているのは「スケジュール管理能力」

同じ経験をしている
エンジニアは多いと思いますが...

このようなプロジェクトでは
ひとつ欠けているものがあります。

それは、

「スケジュール管理能力」

...です。

もちろん、
突発的な仕事が起きた場合には

スケジュールが進んでいれば
対応しやすいと言えるでしょう。

しかし、単純に...

「早く仕事を済ませたい!」

...という理由で

「できるだけ早くしてほしい」

といった指示をする管理者も少なくありません。

ほとんどの場合、
最終的な納期しか理解しておらず、

いつまでに、
何をする必要があるのか

プロジェクトを
詳細まで分解して理解できていない場合に
このような指示がされやすいのです。

スケジュールを立てるには
やることを詳細まで分割したうえで、

それぞれの作業ごとに
スケジュールを立てなければいけません。

スケジューリング能力が
不足しているということは

全体の仕事を
作業項目に分ける能力が
不足しているということにもなるのです。

管理者以外にも必要な能力なの?

もちろん
プロジェクトを管理する側だけでなく

プロジェクトメンバーにも
スケジュール管理能力は必要です。

仕事をするにあたっては、
自分が受け持った作業の期日だけでなく...

自分のスキルも判断したうえで
いつまでに終わらせることができるか?

その仕事を終わらせるために
どのような作業項目があって、
どのような流れで対応するのが効率的か?

そして、
想定した作業で高い品質を保てるか?

...といったことを
意識して対応する必要があります。

スケジューリングの対象が...

プロジェクト全体なのか、
個人の作業レベルなのか、

...それだけの違いです。

いずれにせよ、
しっかりスケジューリングできなければ、

作業の期限ギリギリになって
慌てて作業することになってしまいます。

慌てて仕事をすることは、
品質を下げる結果に繋がりかねません。

エンジニアとしての価値を高めるために

エンジニアの仕事には
必ず納期というものがあります。

なければ決めるべきでしょう。
締め切り効果って実際にありますからね。

その納期に向けて
早めに対応する越したことはありませんが、

早く終わらせることを目的にすると
品質が低下するリスクが高くなります。

システムやサービスを提供する側としては、
品質の低下は避けなければなりません。

そのためにも...

いつまでに、
何を、
どこまで終わらせるか、

といったスケジューリングは
エンジニアにとって必要な能力なのです。

たとえそれが
プロジェクトを管理する
立場の者であってもなくても、

普段から
スケジュールを意識しておかなければ、

その場その場の
対応だけになってしまいます。

全体を見据えて個々の仕事を行う...

その姿勢は
あなたのエンジニアとしての
価値を高めてくれることでしょう。

リスキルテクノロジー
松田

PS

スクールの開発演習で力をつけましょう

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する