システム障害の「切り分け」とは!一次、二次の違いは?分かりやすく解説します!

ITによるサービスが一般的になった現代では、システム障害がつきものです。これら問題を解決するための作業が「切り分け」です。システム障害の原因には、ヒューマンエラーから、システムにある根本的な問題まで幅広くあります。そこで今回は、システム障害における「切り分け」について、一次と二次の切り分けの違いを交えながら解説します。

 

システム障害における「切り分け」とは

 

システム障害において大切なことは「障害切り分け」です。システム障害を解決するために、障害時の操作や環境を正確に把握し、障害が起こった根本的な原因を特定する必要があります。

例えば、インターネットに繋がらなくなったという障害ならば、以下のような原因を想定します。

 

・PCのネットワークドライバ(ソフトウェア)の問題

・PCへ新たにインストールしたソフトウェアの問題

・PCのLANポートの故障

・LANケーブルの断裂

・ルーターとケーブルの接続問題

・ルーターの物理的な破損

・ルーターのファームウェアの不具合

・プロバイダーへの料金支払い確認

 

などです。

ネットワークへの接続障害ひとつ取っても、環境やオペレーションに依存した原因が無数に存在します。システム障害における「切り分け」では、これら原因のどれに該当し、どのように解決へ導くかが最大の業務になります。

 

システム障害時の「一次切り分け」と「二次切り分け」の違い

 

システム障害の問題切り分けには「一次切り分け」と「二次切り分け」があります。これらはどちらも障害の原因を特定するものですが、それぞれの切り分けには重視するポイントに違いがあります。

 

一次切り分けは障害対応のはじめの一歩

 

 

一次切り分けは、障害の原因特定における最初のアクションであり、問題を正確に把握するための最も重要な役割とも言えます。

システム障害が起きた際、それがシステムに潜在的に潜む障害なのか、あるいはオペレーションミスなどのヒューマンエラーなのかを切り分ける必要があります。

この大まかな切り分けは、今後の問題解決方法にとって最も重要な判断となり、万が一原因を取り違えてしまえば、対応の手戻りが起こってしまうのです。

システム障害は、システムを利用するユーザーにとっては業務を止めてしまうほど致命的ですので、出来る限り迅速にシステムの回復へ導かなければなりません

一次切り分けに必要な情報には大きく以下の2つがあります。

 

・システム障害が起こる前に行ったオペレーションの把握

・システム障害が起こった後に行ったオペレーションの把握

 

これら情報を正確に聞き出すことが、システム障害の正確な一次切り分けに繋がります。

 

二次切り分けは専門的な障害対応

 

 

二次切り分けを行う段階では、ほとんどの場合オペレーションミスなどのヒューマンエラーは取り除かれている状態です。ですので、基本的にはソフトウェアやハードウェアの専門的な情報による問題切り分けとなります。

例えばネットワーク障害であれば、ネットワーク機器自体の不具合であるのか、あるいはファームウェア自体に不具合があるのかを切り分ける必要があります。二次切り分けは、システム障害を根本的な解決へ導くことが重要な使命なのです。

 

一次切り分けに必要なスキル

 

具体的な障害を正確にヒアリングするコミュニケーションスキル

 

 

一次切り分けに最も必要なスキルは、障害を正確にヒアリングするコミュニケーションスキルです。システム障害が起きた際に、事象をヒアリングすることは比較的容易ですが、障害が起きた際に行った前後の操作や、現状の障害範囲を詳細にヒアリングするには、ユーザーとのコミュニケーションが大切です。

システム障害を早く解決するために、ユーザーが焦っている場合も多いので、その状態から様々な事象をヒアリングしなければなりません。

冷静に且つユーザーに寄り添った口調でシステム障害の詳細をヒアリングするためには、コミュニケーション能力が不可欠なのです。

 

Geekly Media ライター

佐久森

1+

オープンソースって何?ソースの公開によるメリットは?代表的な例とともにわかりやすく解説!

オープンソースという用語は知っていても、具体的なイメージをつかめている、あるいは明確に説明ができるという人は少ないのではないでしょうか。そこで今回は、そもそもオープンソースとは何なのか、そしてソースコードを公開することのメリットや、それを利用する際のメリットとデメリットについて、具体例を交えながら解説します。

 

オープンソースって何?

 

オープンソースとは、ソースコードの全てが公開されているソフトウェアのことです。英語表記では「Open Source Software」と表現され、「OSS」と略されます。

ブログサービスなどを利用しているユーザーにとって一番身近なオープンソースは、CMS(コンテンツマネジメントシステム)のWordPressではないでしょうか。また、ITインフラを担う人たちにとって身近なオープンソースはOSのLinuxですね。CentOSなどが無償で利用できるのも、そのベースとなるLinuxがオープンソースだからです。

逆に、オープンソースではないソフトウェアと言えば、MicrosoftのWindowsやOfficeなどが代表的です。これらはソフトウェアのライセンスを有償で利用することになりますし、利用しているソフトウェアのソースコードに手を加えることはできません。

オープンソースであるか否かは、ソースコードを自由に変更できるか否かで判断できます

 

ソースコードを公開するメリット

 

それでは、オープンソースとしてソースコードを公開することにはどのようなメリットがあるのでしょうか。まずは、ソースコードを公開するメリットについて見ていきましょう。

 

技術の高さをアピールできる

 

 

IT技術と生活の結びつきが強くなるにつれて、高度なITサービスを実現するためのソフトウェアが必要になります。例えばIoTが実生活に普及すると、それに関連するソフトウェアは必須です。

ソフトウェアを開発した場合、ライセンスを有料で配布することはできますが、同時に様々な企業や技術者が開発するソフトウェアが競合するでしょう。

ここで、ソフトウェアをオープンソースとして公開し、それが優れたソフトウェアであると認められた場合はどうでしょうか。そのソフトウェアに賛同するコミュニティーが、より洗練されたソースコードを完成させていくでしょう。

そして、ソースコードをオープンソース化した個人や企業は、その分野における先駆者として、技術の高さや着想を高く評価されることとなるのです。

評価は、その分野の技術が世の中に広まるにつれて価値を増していくでしょう。これがソースコードを公開するメリットのひとつとなるのです。

 

特定の技術者に依存しない

 

 

企業が開発するソフトウェアを、オープンソース化するメリットには、特定の技術者に依存することなく開発を進められる点にもあります。

企業内でソフトウェアを開発する際の、特定の技術者に依存した開発手法は危険であり不安定です。それは、技術者がその企業で働き続ける保証がないからです。

万が一、その技術者が退職をした場合、効率的なソフトウェア開発を続けられなくなる可能性がありますし、最悪の場合、改修さえままならない状況となってしまいます。

一方、ソフトウェアをオープンソース化することで、コミュニティーによる開発が進められるため、ソースコードは洗練されますし、誰かが開発を辞めても、コミュニティーという存在がソフトウェアを支えていくという期待が持てます

 

オープンソースソフトウェアもライセンスで守られている

 

 

ソフトウェアをオープンソース化することは、ソースコードを公開することですが、それによってソフトウェア自体の権利を全て放棄するということではありません。

オープンソースソフトウェアは、ソフトウェア自体を自由に変更し再配布も可能ですが、著作権者の表示をするコピーレフト型のライセンスに守られているのです。

これにより、開発したソフトウェアのソースコードを公開しても誰が作ったプログラムなのかを主張することができます

オープンソース化した後にソフトウェアが高評価を得れば、それがメリットとなりますし、著作権を保ったまま特定の技術者に依存しない開発を続けることが可能となるのです。

 

オープンソースを利用するメリット

 

次に、オープンソースを利用するメリットを見ていきましょう。

 

無償で使える

 

 

オープンソースソフトウェアの最大の魅力は無償で利用できることです。企業のオウンドメディアや個人ブログにも広く利用されているWordPressもまた、オープンソースソフトウェアですので、ソフトウェア自体は無料で利用しています。

例えば、個人的にWebサーバーを立て、ブログを運用する場合にも、サーバー機器やインターネットの基本料金はかかりますが、それ以外は全て無料で構築することが可能です。

OSにはLinuxを利用し、Linux上でWebサーバーを稼働させます。サーバーにWordPressをインストールすることで、無償で世界にブログを公開することができるのです。

 

ソースコードを自由に変更し再配布できる

 

 

オープンソースソフトウェアのソースコードは、ある程度自由に変更することが可能です。オープンソースを基盤として、利用目的に合ったソフトウェアを構築することができるのです。

ソフトウェアの基盤はできていますので、あとは用途に合わせた見た目や仕組みに作り変えることで、一からソフトウェアを開発するよりも圧倒的なコストの削減に繋がります

ただし、前述したようにコピーレフトに準じたライセンスについては十分に注意する必要があり、著作権に対するコピーレフトにも様々な種類がありますので、利用するソフトウェアごとに確認する必要があります。

 

オープンソースを利用するデメリット

 

オープンソースを利用することはメリットだけではありません。ライセンスが無償であるが故のデメリットも存在します。

 

Geekly Media ライター

佐久森

9+

【知っておきたい!】時価総額の調べ方をわかりやすく解説します!

企業の業績を見る指標の一つとして時価総額があります。証券取引所に自社株を上場している企業は、発行している株式の価格を会社の価値として見ることができるのです。時価総額の「調べ方」を知ることは、就職活動における企業研究の一環としても重要なことです。そこで今回は、時価総額の意味を確認しながら、その調べ方を解説します。

 

時価総額とは

 

時価総額とは、証券取引所に上場している企業の価値を評価するための指標の一つです。時価総額が大きい場合、現在の企業価値が高いことを示しており、更にその企業の将来性への期待が高いと言えます。

株式は常に株主によって取引されていますので、株主の心理が反映されています

株価が上がったということは、その企業が将来的に期待され、株主の資産が増えるという予想の元、株式が買われたことを意味します。

また、株価が下がったということは、その企業に何かしらの不安材料が見え、株主は資産がこれ以上下がらないうちに株式を売ったことを意味するのです。

このような心理は企業の信用や時価総額にも現れるため、数値として企業の信頼性を示す指標となります。

就職活動の企業研究の一環として時価総額を調べるということは、その企業が今どのくらい期待されているか、またその企業が将来的に成長する企業であるかを判断する材料にもなるのです。

 

時価総額の計算方法

 

 

時価総額は、以下のような方法で計算します。

 

時価総額 = 株価 × 発行済み株式数

 

数値が大きいほど、現在の企業価値が高く、投資家が期待している企業だと言えるのです。

また、時価総額の数値が高いほど、買収される可能性も低くなります。時価総額が高いことについてのデメリットは唯一、株式投資をする場合に一口の投資額が大きくなり買いにくいだけで、企業研究におけるデメリットはありません。

もちろん、時価総額が大きい企業は一流企業と言えますので、採用のハードルは高くなる可能性はあります。

 

株式上場の意味

 

時価総額を知るためには、株式を上場するという意味を把握しておく必要があります。

 

IPOは株式発行による資金調達

 

 

企業の株式を証券取引所に上場することは、投資家に対して自社株の取引を可能にすることで「IPOと言います。

IPOとは「Initial Pubic Offering」の略称で、株式を公開された売り物にすることです。このことにより、企業の株式を使って資金調達を行い、事業投資に当てる仕組みですね。

IPOを行うことが、新規に株式上場を行うということなのです。

IPOには企業の実績をはじめとした様々な信用が必要になりますので、証券取引所に上場できる企業は、社会的にも信頼性が認められている企業だと言えます。

証券取引所に株式を上場している事実は、企業研究においても”企業の信頼度を図る“という意味で重要なことなのです。

 

株式を上場できる取引所は複数ある

 

 

企業が自社の株式を上場できる証券取引所には、以下のような場所があります。

 

・東京証券取引所

・大阪証券取引所

・名古屋証券取引所

・福岡証券取引所

・札幌証券取引所

 

東京証券取引所については世界でもトップクラスに属する証券取引所で、東証という名称で聞いたことがあると思います。

また、新興市場としては以下のようなものがあります。

 

・ジャスダック(JASDAQ):東京証券取引所が運営する株式市場

・マザース:東京証券取引所が運営する株式市場

 

最近では、ジャスダックやマザースに上場する企業も増えており、ジャスダックに上場している企業には、以下の企業があります。

 

・日本通信

・日本マクドナルドホールディングス

・ガンホー・オンライン・エンターテイメント

・鳥貴族

 

など。

いずれの市場においても、上場には厳しい審査がありますので、実際に株式上場を果たしている企業については信頼性があるということです。

 

時価総額を指標にする

 

時価総額は、世の中に対する企業の信頼性を表す指標です。ただし、時価総額を見る角度(立場)によっては意味が異なってきます。

 

株式投資の指標

 

 

 

株式投資としての時価総額は、投資家自身の資産を左右する指標となりますね。時価総額が高く、期待値が高い企業への投資は、将来的に大きな資産を生むことになります。

 

Geekly Media ライター

佐久森

13+

【ネットワークエンジニア】将来性ってあるの?仕事内容から必要なスキル、そのなり方まで徹底解説!

IT化された社会において、ネットワークが止まることは許されません。ITサービスはもちろん、社内や家庭でも“繋がって当たり前”のネットワークを支えるのがネットワークエンジニアです。そこで今回は、ネットワークエンジニアの将来性や、その仕事内容や必要なスキル、そしてネットワークエンジニアのなり方を徹底解説します。

 

ネットワークエンジニアとは

 

IT技術としてのネットワークは、今や日常生活に必要なガスや電気、水道や公共施設と同等の重要性を担っているのです。ネットワークエンジニアとは、社会インフラの一つであるネットワークを支える技術者なのです。

ネットワークには、インターネットを代表するWAN(Wide Area Network)や、限定的な範囲繋げるLAN(Local Area Network)があります。

多くの場合、ネットワークエンジニアの業務は設計から構築、運用・保守に至るまで、LANを対象とした業務となりますが、スキルとしてはWANLANの両方の知識を習得しておかなければなりません。

ネットワークエンジニアは、企業の中でも”繋がっていて当たり前”という前提のインフラを担当しますので、一つの設定ミスが大規模障害を引き起こします

ですので、何よりも重要なものは経験であり、知識だけでは通用しない業種の一つでもあります。

 

ネットワークエンジニアの仕事内容

 

それでは、ネットワークエンジニアの仕事内容を詳しく見ていきましょう。

 

ネットワークインフラの把握

 

 

ネットワークエンジニアの仕事において大切なことは、TCP/IPを中心としたネットワークインフラを正確に把握することです。

新規にネットワーク構築をする業務もありますが、最初は企業内のネットワークインフラを把握することが第一段階となるでしょう。

社内に導入しているネットワーク機器や、そこに繋がるサーバーやPCの構成、IPアドレスの割り振りやルーティングの全体イメージから詳細設定までを把握する必要があります。

 

ネットワークの運用・保守

 

 

ネットワークインフラを把握したら、ようやく運用および保守を行うことができます。運用では、ネットワークが滞りなく機能していることを監視しなければなりません。

もちろん、障害が起こらないように、物理的なネットワーク機器(ルーターやLANケーブル)についても定期的にメンテナンスやチェックを行う必要があります。

それでも、ネットワークには障害がつきものです。ネットワークエンジニアの仕事内容の多くがネットワークのトラブルシューティングになるでしょう。

ネットワークに繋がる機器は、常に電源が入っているか、あるいはPCのように毎日電源をON・OFFするため、必ず劣化します。劣化すればトラブル発生率が高まるため、ネットワーク規模が大きい程トラブル原因は些細な機器故障(LANケーブルの断裂など)が起こりやすくなります。

これらを迅速に、またその他業務への影響を最小限に抑えることが、ネットワークエンジニアの重要な役割でもあるのです。

 

ネットワークの要件定義

 

 

ネットワーク要件定義では、ネットワークを繋げる上で実現したいインフラの把握、そこに存在する問題の洗い出しと解決方法などを把握し、ネットワークの全体像を作成します。この時点で、実現できること実現不可能なことをしっかりと区別しておくことが大切です。

利用規模によっては、WAN側回線の帯域幅にも気を配る必要があり、万が一規模を間違えてしまえばWAN回線が頻繁に途切れると言った、取り返しのつかない障害を起こしてしまいます。

 

ネットワーク設計

 

 

要件定義が固まったら、次はネットワーク設計です。新規にネットワークを構築したり、ネットワークの拡張をする際には、まず設計を行います。

ネットワーク設計では、全体のネットワーク図やIPの割り振り、必要なネットワーク機器の選定などを行い。更に保守体制もこの時点で決めてしまうことで、運用をスムーズにします。

VPNなどを利用する場合には、機器選定時にメーカーへの確認を怠らないようにしましょう。

 

ネットワーク構築

 

 

詳細設計までが終わったら、いよいよネットワーク構築です。

構築をする時点では、設計書はもちろん必要な機器は全て揃っている状態で、WAN側も事前に開通(プロバイダー契約など)していることが大前提となります。

作業は通常、業務時間外に行うことが主となるので、休日出勤もネットワークエンジニアの仕事内容に含まれるかもしれません。

どんなに詳細設計が完璧であっても、実際の構築時にはトラブルがつきものです。設計時には想定していなかった新品機器の故障やケーブルの断裂なども起こり得ます。

機器との疎通が上手くいかない場合には、構築をしながらトラブルシューティングを行うと言ったシーンも経験していかなければなりません。

 

ネットワークエンジニアに必要なスキル

 

それでは、ネットワークエンジニアに必要なスキルを詳しく見ていきましょう。

 

TCP/IPのスキル

 

 

ネットワークエンジニアに最も必要なスキルは、ネットワークの基本であるTCP/IPに関する知識です。これを習得しなければ、ネットワーク設計書などの資料を見ても理解することが出来ないからです。

IPアドレスを見た時に、瞬時にサブネットマスクが何なのかを判断できるようになり、「xxx.xxx.xxx.xxx/xx」の表記の意味を理解し、応用できるようになります。

このスキルが役に立つのは、設計時だけではありません。疎通ができないといったトラブル時にも、機器のIPを見直す時に原因を比較的早く見つけられる可能性が高くなります。VPNを利用しているネットワークなどでは、この知識は不可欠です。

 

Geekly Media ライター

佐久森

14+

『ブロックチェーン』のメリット・デメリットを徹底解説!その仕組みや未来像までわかりやすく解説します!

2017年に価格が高騰し話題になったビットコインやアルトコインですが、これら暗号資産を支えるシステムがブロックチェーン技術です。今回は、ブロックチェーンにはどのような利用価値があるのか、その仕組みを理解しながらメリットやデメリット、そしてブロックチェーンの未来像をわかりやすく解説します。

 

ブロックチェーンの概要

 

ブロックチェーン技術は、ビットコンシステムと共に登場しました。ビットコインシステムが動作するインフラがブロックチェーンです。

また、その他のアルトコインもブロックチェーン上で動作します。ブロックチェーンの上にはビットコインや、イーサリアムを筆頭とするアルトコインのプラットフォームが構築されます。※リップルだけはブロックチェーン技術を使用していません。

ビットコインやアルトコインの取引内容が記録されたブロックを基として、次のブロックが作られていきます。これまでに作られたブロック、現在のブロック、そして次に作られるブロックは全て関連しており、この関連性をチェーンと表現するため、ブロックチェーンと呼ばれます

ブロックチェーンに一度記録されたデータは改ざんすることができないため、取引履歴の信頼性についてはこれ以上のシステムが存在しません。

取引を意味するものは、暗号資産のトレードはもちろん、コインの送受信など、ブロックチェーン上で発生したトランザクション全般を指します。

 

ブロックチェーンはシステム基盤

 

 

ブロックチェーンはデータ記録をするための新しいシステム基盤です。

これまでは、データの保存をDBに行っていました。しかし、DBの内容については不正改ざんの余地がありますよね。root権限を奪われてしまうと、簡単に改ざんができます。

しかし、ブロックチェーン上のデータはそもそもの考え方が違うため、過去のデータを改ざんする手段が無いのです。

改ざんできるとすれば、トランザクションがブロックチェーンに記録される前に改ざんする必要がありますし、それができるのはコンセンサスアルゴリズムの中でもPoWだけです。

ビットコインやアルトコインは、あくまでもユーザーの資産です。人の資産に対して改ざんや不正が起こることは絶対に許されませんよね。

取引データは確実に、だれであっても手を加えることがあってはなりません。それを実現するのが、過去の取引データ改ざんが不可能なブロックチェーン技術なのです。

そして、ブロックチェーンは信頼してデータを記録できるシステム基盤であると言えるのです。

※暗号資産関連でニュースになった数々の事件は、ブロックチェーン技術を否定する内容では一切ありません。

 

ブロックチェーンの仕組み

 

ブロックチェーンは、ブロックチェーン技術を利用したプラットフォームがあって成り立ちます。

代表的なものはもちろんビットコインですね。ビットコインは日本円とBTCをトレードすることで、日本円の価値に相当するBTCというコインを買います。

この「トレード」というトランザクション(取引)が発生した瞬間から、初めてブロックチェーンへの記録作業が始まります

トランザクションは取引をチェックするマイナーたちが、不正や改ざんが無いことを”承認“した後、初めてブロックチェーンに記録され、この瞬間取引が成立したことなるのです。

また、取引の承認作業は、世界中でマイニングに参加している者の中から、より早く承認作業終えたマイナーに報酬が入る仕組みになっています。報酬を得ることが目的のマイナーたちは、トランザクション(取引)が発生した瞬間一斉に承認競争を始めるのです。

ブロックチェーンを利用したシステム上では、トランザクション(取引)を発生させる利用者と、それを承認するマイナーが存在し、最終的に正しいと承認されたデータがブロックチェーン上に記録されるという仕組みで成り立っています。

 

ブロックチェーンのメリット

 

それでは、ブロックチェーンのメリットを見ていきましょう。

 

過去のブロックを改ざんできない

 

 

ブロックチェーンにおいての最大のメリットは、過去のデータに対する不正なデータ改ざんができないということです。

承認された全ての取引はブロックに記録されます。また、承認作業では一つ前の記録にあるデータを基に、取引データとして正しいことを承認し、次のブロックへ記録することで、連続性のあるブロック(ブロックチェーン)が生成されるのです。

ブロックに連続性がある場合、どこか一つのデータを改ざんすることはほぼ不可能です。連続性を持たせているチェーン上のデータは、前後全ての連続性を改ざんしなければならず、チェーンの全てを改ざんすることは事実上不可能なのです。

 

P2Pでの取引が可能になる

 

 

どのようなデータでも、DBサーバーに格納して取引をする場合には、必ず管理者などの中央集権が必要でした。

しかし、ブロックチェーンならば仲介者は必要なく、ブロックチェーン上に接続していればP2PPeer to Peer)での取引が可能となるのです。

ブロックチェーン上で取引をすることで、個人の取引は全てブロックチェーンに記録されるため、不正や改ざんの心配はありません。中央の管理者がいなくても、直接の取引に信頼性があるということなのです。

これは、暗号資産などのコイン取引に限ったことではなく、デジタル化できるデータの全てに適用できるメリットと言えるでしょう。

 

ブロックチェーンのデメリット

 

それでは次に、ブロックチェーンのデメリットを見ていきましょう。

 

ユーザーが理解にくい

 

 

パソコンやインターネットが普及した時も同じでしたが、ブロックチェーン技術も一般的なユーザーに理解しにくい概念です。

パソコンは直感的に操作ができたため、比較的早く利用者が増えました。しかしインターネットの仕組みを理解して利用している人は少ないはずです。

ブロックチェーン技術はおそらく、インターネットと同じように無意識に利用するレベルに持っていく必要があるほど、イメージしにくい技術でもあります。

ブロックチェーン技術とある程度深く関わる場合には、比較的高いITリテラシーが必要になるでしょう。

 

Geekly Media ライター

佐久森

11+

AWSについて徹底解説!導入によるメリット・デメリット含めて分かりやすく解説します!

AWSでは多くの幅広いサービスを提供しているため、大まかなイメージすら掴みにくいという声をよく耳にします。便利そうだけど何から始めて良いか分からない、と言うのが正直なところでしょう。そこで今回は、AWSの概要を交えながら、導入によるメリットとデメリットを含めて分かりやすく解説します。

 

AWSの概要

 

AWSとは「Amazon Web Services」の略称で、Amazonが提供するクラウドコンピューティングサービスです。AWSには、利用できるサービスだけでも19ものカテゴリーに分かれており、それらサービスを世界190カ国以上で展開しています。

基本的には、各サービスのインフラだけを提供していますので、利用する際にはユーザー自らが構築・運用・保守を行う必要があります

とはいえ、クラウドコンピューティングに必要なリソースは全てAWSが提供してくれますので、ユーザーはサービスに必要な機能を選択するだけで、効率的なシステム構築が実現できるのです。

 

イメージしやすいAWSの活用シーン

 

Webサイトの作成

 

 

クラウドコンピューティングで最もイメージしやすいのがWebサイトです。Webサイト構築サービスを提供するレンタルサーバーは多く存在しますが、そのほとんどは月額料金によるリソースのレンタルです。また、初期費用が必要な場合も多く、Webサイト運用後のアクセス数などをあらかじめ予測し、プランを選択する必要があります。

しかしAWSでは、利用開始後のアクセス数や負荷に応じてリソースを調整することができ、月の利用料金は従量課金制ですので、リソースをそれほど使わない利用開始直後の時期に高額の固定料金を支払う必要はありません。

また、AWSは初期費用も不要ですので、使わなければ基本的にコストがほぼかかりません

 

クラウドストレージ

 

 

近年、社内ファイルサーバーなどのストレージもクラウド化が主流となっています。利用されるサービスは様々ですが、もちろんAWSでもクラウドストレージサービスが存在します。

ストレージを利用する人数やファイルサイズによっては、月額プランのクラウドストレージサービスではオーバースペックになるケースが多くみられます。

AWSの従量課金による拡張性は、クラウドストレージの利用が一番イメージしやすいかもしれません。

利用人数や保存ファイルサイズが増加すると、ストレージの残容量を気にしなければなりませんが、AWSのクラウドストレージサービスであればそのような心配は皆無です。

また、セキュリティ認証においても信頼性のあるプラットフォームを実現していますし、データの複製(バックアップ)を自動で行い分散管理することで、万が一災害が起こった場合のデータに対する耐久性を確保しています。

 

開発環境

 

 

AWSでは、ソフトウェア開発環境も提供しています。本来、サーバーなどのハードウェアから準備をしなければいけませんが、AWSを利用することでそれらの準備は必要なく、更に以下のような様々なOS環境も自由に構築することが可能です。

 

・Redhat Enterprise Linux

・SUSE Linux

・Amazon Linux

・Windows

・CentOS

 

など。

サーバー機器のハードウェア購入や機器納品までの期間を気にすることなく、必要な開発環境を効率的に構築することが可能なのです。

 

運用管理支援

 

 

AWSではマネージドクラウドポータルとして、情報システムの管理機能をクラウドサービスとして提供しています。AWSが提供するサービスならば、情報システム担当者(社内インフラ担当者)も管理・運用が効率的に行えるということですね。

また、バックアップも自動化されているので、いざという時のロールバックにも手間取ることはないでしょう。

 

AWSを導入するメリット

 

用途や利用タイミングの自由度が高い

 

 

AWSでは、多くの用途に合わせたクラウドコンピューティングを提供しています。また、サービスを導入したいタイミングですぐに利用開始できるというメリットがあります。

例えば、ファイルサーバー利用に対する要求がある場合、通常はハードウェアの選定・購入・納品・設定といった工程を要しますが、AWSならばアカウント登録をして、必要なサービスをGUIによって選択するだけで運用を開始できます。

これまで導入から運用までに時間を要していたITサービス全般について、時間やコスト面を含め効率的に導入することができるのです。

 

費用は利用したリソースへの従量課金

 

 

AWSが提供するほとんどのサービスが従量課金制となっているため、コストは基本的には利用したリソース分のみです。ですので、新しく導入するITサービスに対して、大幅なコストカットが見込めるということです。

 

Geekly Media ライター

佐久森

13+

【Linux】シェルってなに?!その内容から具体的な役割・機能まで徹底解説!

Linuxにおけるシェルとは、Linuxの核となるカーネルへ要求を伝達するプログラムです。そして、ユーザーとLinuxOSを繋ぐインターフェイスの役割を果たしています。今回は、Linuxを知る上で必ず理解しておかなければならない「シェル(shell)」について、その具体的な役割や機能を徹底解説します。

 

シェルってなに?!

 

Linuxを扱う技術者にとって、シェル(shell)は基本知識です。

逆に、シェル(shell)を理解することである程度自由にLinuxを使いこなすことができるようになります。

 

Linuxのカーネルとユーザーを繋ぐインターフェイス

 

 

シェルは、LinuxOSの核となるカーネルとユーザーを繋ぐインターフェイスといった関係性です。

Linuxのカーネルという心臓部は、LinuxOSを支える多数のプログラムによって構成されています。ユーザーはこれらプログラムの集合体に、必要な動きを要求することで、Linuxを”コンピューター“として利用しているのです。

ユーザーによる要求はまずシェルが受け取ります。シェルは受け取った要求を翻訳してカーネルに渡します。そしてカーネルは、シェルから受け取った翻訳済みの要求を実行するわけです。

シェルは、カーネルを包む「殻」のようなポジションであることから、英単語の「shell」、つまりシェルと呼ばれているのです。

 

シェルスクリプトは要求コマンドのかたまり

 

 

一般的に「シェルを使える」という技術は、「シェルスクリプトを書くことができる」という意味で使われます。

シェルに対するコマンドを理解し、一連の要求をコマンドで組み立てることができるということです。

そして、組み立てられたコマンドのひとかたまりを「シェルスクリプト」と言います。シェルスクリプトは一種のプログラミングです。

コマンドの羅列はもちろん、以下のような条件分岐やループ文など利用できます。

 

・if文

・for文

・while文

・case文

 

これらを駆使して、Linux運用におけるバッチ処理などを操るシェルスクリプトをプログラミングすることが可能なのです。

 

シェルスクリプトの種類

 

 

ユーザーがシェルへ送るコマンドのかたまりをシェルスクリプトと言いますが、シェルスクリプトにも以下を代表する様々な種類が存在します。

 

・sh:Bourne shell

・bash:Bourne-Again shell

・csh:C shell

・ksh:Koran shell

 

などです。

Linuxでは基本的に「sh」や「bashを利用する人が多いのではないでしょうか。

 

shBourne shellBシェル)

 

sh (Bourne shell/Bシェル)は、AT&Tベル研究所のスティーブン・ボーン氏が1977年に開発したシェルで、コマンド名を「sh」としています。

Bシェルとも呼ばれており、現在では標準的なシェルプログラムとして広く使用されているシェルです。

コンパイルを不要とし、シェルスクリプトには変数などが利用できるようになったものBシェル(Bourne shell)が初めてです。

それまでのシェルに比べるとプログラミング要素を多く取り入れており、シェルスクリプトを組みやすくなったシェルでもあります。

 

bashBourne-Again shell

 

bash(Bourne-Again shell)は、sh(Bourne shell/Bシェル)をベースに様々な機能が拡張されたシェルです。Linuxでもbashが多く使われています。

bashはもちろんsh(Bourne shell/Bシェル)と互換性がありますが、更に複雑なシェルスクリプトを組むことが可能です。

 

シェルの具体的な役割と機能

 

シェルの役割と機能のイメージは掴めたと思いますので、ここでは、より具体的な例を見ていきましょう。

 

シェルの役割と機能の具体的な動き

 

 

シェルの役割は、ユーザーの要求をカーネルに伝えることでした。ユーザーは基本的に、ターミナルからLinuxに接続し、コマンドを入力することでLinuxを操作します。

ターミナルとは、CUIコマンドを受け付けるための画面で、イメージとしては“ハッカーが使う黒い画面”ですね。

例えば、今現在ユーザーが見ているディレクトリである「カレントディレクトリ」を確認する要求を、具体的な動作と順番で整理すると次のようになります。

 

1.ユーザーがPC上でターミナルを開く

2.ターミナル上で「pwd」コマンドを入力

3.エンターキーで決定

4.「pwd」コマンドがシェルに渡される

5.シェルが「pwd」コマンドの意味を「カレントディレクトリの表示要求」と解釈する

6.シェルは「カレントディレクトリの表示要求」をカーネルに伝える

7.カーネルは「カレントディレクトリ」をシェルに伝える

8.カーネルから教えてもらった「カレントディレクトリ」をシェルがターミナルに表示する

9.ユーザーはターミナルに表示されたカレントディレクトリを確認する

 

一つの要求コマンドでは、簡単にイメージするだけでもこれだけの動作が行われており、その中でもシェルは、ユーザーとカーネルの間で重要な役割を果たしているのが分かりますね。

 

Geekly Media ライター

佐久森

11+

【サーバーエンジニア】仕事内容から必要なスキル、その将来性まで徹底解説!

PCやスマートフォンでインターネットを利用する時、無意識に接続しているのがITサービスを提供するサーバーです。そして、そのサーバーを構築して運用や保守を行うのがサーバーエンジニアと呼ばれる技術者です。今回は、サーバーエンジニアの主な仕事内容や必要スキルを、将来性を含めて徹底解説します。

 

サーバーエンジニアとは

 

ITサービスを提供するサーバー機器は、Webサービスやメール、その他サービスによって必要なミドルウェアが違います。それぞれのサーバーを用途に合わせ、構築から運用・保守に至るまでを手がけるのがサーバーエンジニアです。

また、サーバー構築における最初の過程となるサーバー選定や、用意したサーバーのキッティング、ラックへのマウントやLANケーブルをはじめとした配線の取り回しもサーバーエンジニアの業務範囲に含まれます。

 

ITサービスが稼働する前段階、プログラミング開発が行われる環境構築から始まり、サービス稼働後の運用や保守を行うサーバーエンジニアは、プロジェクトの全体像を把握しておく必要があるのです。

保守作業については、基本的には他のプロジェクトメンバーが休みの時を狙って作業をする必要がありますし、サーバールームに数十時間居続けることが日常茶飯事という現場もあります。

 

サーバーエンジニアの仕事内容

 

それではサーバーエンジニアの仕事内容を詳しく見ていきましょう。

 

サーバー選定

 

 

ITサービスを提供するにはサーバーが必要です。サービス内容ある程度決まると、必要スペックを算出してサーバーの選定を行います。

サービス規模にもよりますが、サーバーにはプログラマー達が開発に使うサーバーと、サービスを稼働させる本番サーバーが必要です。

サーバーエンジニアは、開発用と本番用それぞれが滞りなく稼働できるスペックのCPUやメモリーを導き出し、プロジェクトの予算も考えながらハードウェアを選定します。

ですので、サーバーエンジニアはサービスが稼働した時にかかる負荷なども考慮する経験が必要となるのです。

 

ハードウェアキッティング

 

 

サーバー選定を終えて、実際にサーバー機器が手元に届いたらサーバー構築が始まります。

キッティングが終わっていないモノならば、CPUやメモリーを実装するといった作業から、キッティング済みのサーバー機器ならばラッキング(電源やLANケーブルの接続および取り回し)を行います

 

サーバー構築

 

 

キッティングを終え電源を入れたら、次はOSのインストールです。サーバーで使われるOSは主にLinuxですが、Windows Serverの場合は既にOSがインストール済みの場合が多いでしょう。

例えばWebサーバーを構築する場合には、以下のような手順になります。

 

➀ OSのインストール

➁ ネットワーク設定

➂ ファイアウォールの設定

④ Webサーバー(Apacheなど)を含めたミドルウェア設定

⑤ 疎通確認

 

大まかな手順ですが、ここまでを構築してからプログラマーに引き継ぐのが一般的です。

 

サーバー運用および保守

 

 

サービスに必要な開発が終わり本格的に稼働を始めたら、次は状況に応じた運用です。

想定以上にアクセスがあればコンフィグのチューニングが必要ですし、帯域が足りなければネットワーク回線の見直しも必要でしょう。

サービスは定期的にバックアップを世代管理で行いますので、バックアップデータを捌くことも必要になります。

 

何かしらのトラブルがあれば、別サーバーにサービスを逃し、トラブル解決をしなければなりません。

もちろん、全てをサーバーエンジニアだけで行うわけではなく、プログラマーやネットワークエンジニアと連携しながら安定した運用・保守を実現していきます。

 

サーバーエンジニアに必要なスキル

 

それでは、サーバーエンジニアに必要なスキルを具体的に見ていきましょう。

 

ハードウェアに関するスキル

 

 

サーバーの選定から任されるサーバーエンジニアには、ハードウェアに関するスキルは必須です。

それは、CPUやメモリー性能にとどまらず、設置場所(ラック幅など)や電源の確保など、モノの設置にまで及びます。

データーセンターなどを見学し、配線の取り回しなどを学ぶことも一つのスキルとして重宝されるのです。

 

サーバー構築スキル

 

 

サーバー構築スキルには、サーバー機器の物理的な知識やOSについてはもちろんのこと、各サービスに必要なソフトウェア全般の知識が必要です。

代表的なサーバーとしては以下のようなものがあります。

 

・Webサーバー

・メールサーバー

・ファイルサーバー

・FTPサーバー

・プロキシサーバー

・DHCPサーバー

・DNSサーバー

・DBサーバー

 

など。

WordPressを使うようなメディアサービスを行うにはWebサーバーが必要ですし、プログラマーが開発する環境にはファイルサーバーやFTPサーバーも必要になるでしょう。

特定のネットワーク接続が必要なサービスならばプロキシサーバーを建てる必要がありますし、ネットワークをコントロールするためにDNSサーバーを自ら建てる環境も少なくありません。

サーバー機器は1台でも、その中には複数のサーバーを立ち上げ、それらを安定稼働させるのがサーバーエンジニアのスキルです。

 

Geekly Media ライター

佐久森

5+

IoTと組み込みの関係性を徹底解説!組み込みエンジニアが求められるようになる開発スキルも合わせて解説します。

ネットワークへの接続手段として、主にPCやスマートフォンが思い浮かびます。しかし今後広がるIoTでは、家電を含めた身近なデバイスがインターネットに接続されます。キーワードとなるのは「IoT」と「組み込み系」です。今回はIoTの概要を交えながら、IoTと組み込みの関係性と組み込みエンジニアに必要なスキルを解説します。

 

IoTの概要

 

IoTは「Internet of Things」の略称で、日本語では「モノのインターネット」と翻訳されます。

産業に関わる機器から家電に至るまで、モノがインターネットに繋がることで“状況を把握して最適な動作を実行する“ことが一つの目的です。

 

・IoTが細部まで浸透すると、次のようなことが期待されます。モノの状態を知る

・遠隔でモノを操作する

・モノが状況に合わせて稼働する

 

例えば、モノの状態を知ることで、機器や建物の老朽化などを事前に察知することができますし、帰宅に合わせて自宅の家電にスイッチを入れることも可能です。

また、モノ同士がお互いのデータを確認することで、状況に合わせた動作(家主が自宅から数メートル圏内に入ったらスイッチをONにするなど)を、人が意識することなく実行できるようになります。

 

ここに深く関わる技術が「センサー」であり、それはモノの周辺データを収集する機能です。

温度や湿度、距離や場所、人の体調やこれまでの行動データまで、あらゆる情報をセンサーで集め、インターネットを経由することで人の行動よりも一歩先の動作を行うのです。

 

IoTから想像される日常生活

 

 

具体的に、IoTが普及した未来の一日を想像してみましょう。

朝目覚める10分前に「コーヒーメーカー」がコーヒーを沸かし始めます。朝起きると同時に「テレビ」と「電気」にスイッチが入り、カーテンが開きます。

 

これら家電の動作は、全てベッドに搭載された生体センサーによって人体のデータが収集され、インターネットを通じて情報を受信した家電(モノ)が判断し、実行しました。

靴を履き玄関を出て1メートル歩くと、玄関の鍵が施錠されます。部屋にある機器で不要なモノの電源はOFFになり、必要最小限の電力だけで待機します。

これらは、スマートフォンに搭載されたGPSで家からの距離を読み取り、その情報を家中のモノがインターネットを通して受信し、実行しました。

 

仕事が終わり帰路に着き、駅の改札を通過した情報が自宅の家電に伝わります。その日の気温と湿度から、エアコンや加湿器が稼働を始めます。

自宅に近付いた時、バスタブには既にちょうど良い湯加減のお湯が張られており、玄関のドアから1メートル前に近付くと鍵が空きます。

 

人は何も操作することなく、大まかな目的のために動いているだけで、モノが状況に応じて実行するのです。全ては、家電(モノ)に搭載されたセンサーが状況を知り、インターネットを通じて連携した結果なのです。

上記はかなり先の話になってしまいますが、このような未来を実現できるひとつの概念が「IoT」なのです。

 

組み込みエンジニアの役割

 

まずは、組み込みエンジニアの役割を見ていきましょう。

 

組み込みエンジニアとは

 

 

私たちが日常生活で使用する冷蔵庫や電子ジャー、そしてお風呂に至るまで、あらゆる家電には全てコンピューターが搭載されています。

それらコンピューターは、温度調整やタイマー機能をはじめとした制御機能を持っており、人がどのような操作をしても基本的には壊れない(エラーにならない)作りになっていますね。

組み込みエンジニアとは、身の回りの家電や自動車など、機器に搭載されているコンピューターの制御システムを開発するエンジニアのことなのです。

 

IoTと組み込みの関係性

 

それでは、IoTと組み込みの関係性を見ていきましょう。

 

IoTはデバイスに組み込まれるセンサーが重要

 

 

IoTが普及するには、あらゆるモノにセンサーの搭載が必要となります。そして、センサーから収集されるデータは、モノが動作するために組み込まれたコンピューターで制御されます。

センサーとモノ(機器)を繋ぐのが「組み込みエンジニア」の役割となるのです。

 

IoTの具体例

 

 

IoTは既に、私たちの生活の中に少しずつ入り込んでいるのです。その具体例としては、以下のようなものが挙げられます。

 

・家電の遠隔操作:スマートフォンを使ったIoTリモコン

・電池型IoT:スマートフォンで電池を直接コントロール

・空き状況の確認:会議室や公衆トイレの空き状況をリアルタイムモニタ

・建物のモニタリング:橋や建物の異常をモニタリング

 

などです。

 

家電から公共施設まで、あらゆるモノの情報をインターネットに繋げる具体例が、今実際に広がりつつあるのです。

 

Geekly Media ライター

佐久森

4+

『Javascript』でできることってなに?!アプリの事例とともに具体的な仕組みを徹底解説!

インターネットの入り口として利用されるのがブラウザです。そして、私たちがブラウザを利用する上で、無意識に触れているプロブラムがJavascriptなのです。今回は、Webサイトには欠かせないJavascriptとは何なのか、Javascriptの仕組みについて具体例を交えながら紹介します。

 

Javascriptとは

 

Javascriptは、Webサービスを提供するサイトに使用されるプロブラミング言語です。

私たちは普段、パソコンやスマートフォンで何かを調べる場合、ブラウザを利用しますよね。ブラウザには様々な種類がありますが、そのほとんどに対して汎用性を持つのがJavascriptなのです。

Javascriptは一般的に「JS(ジェーエス)」と略されていますが、一部では「ジャバスク」とも呼ばれています。

 

JavascriptJavaの違い

 

 

Javascriptに似た名称の言語として「Java」があります。名称は似ていますがJavascript」と「Java」はまったく異なる言語ですので間違えないようにしましょう。

JavascriptとJavaの違いについてWebサービスを例に挙げ、簡単に表すと以下のようになります。

 

・Javascript:サービス画面上でUIに動きをつけるプロブラミング言語

・Java:サービスそのものを構築するプロブラミング言語

 

もちろんWebサービスだけではなく、社内システムなどあらゆる場面で基礎となり得る言語であると言えます。

ちなみに、Javascriptが創られた当初は「LiveScript」という名称でした。しかし、Javascriptを広めるためのマーケティングのために、当時から人気のあったJavaの名称に寄せて「Javascript」に改名しました。

これが、JavascriptとJavaを名称的に区別し難くなった原因でもあるのです。

 

Javascriptの仕組み

 

Javascriptはその名の通りスクリプト言語です。スクリプト言語とは、テキスト形式で書かれたソースがパソコンなどで変換され、ユーザーがコンパイルなどを意識することなく実行できるプログラムです。

 

Javascriptが動く環境

 

 

JavascriptはWindowsやMacOSはもちろん、あらゆるブラウザで動作します。

開発環境についても、基本的にはメモ帳などのテキストエディタとブラウザが必要なだけで、特別な開発環境は必要ありません

簡単なJavascriptを試してみたい場合にも、基本的なHTMLの中に、Javascriptを記述するか、あるいは作成した「.js」のファイルを読み込ませるだけなので、15行ほどのプログラムで終わります。

 

Javascriptを含むHTMLファイルを開くことでブラウザが立ち上がり、Javascriptが実行されるのです。

またChromeなどでアドオンをインストールすれば、Javascriptはブラウザのみでもプログラミング可能で、テキストエディタすら必要ありません。

 

Javascriptでできること

 

Javascriptでできることは、主にWebブラウザ上において、画面の遷移無しでUIに動きをつけることです。

これにより、インターネットが普及した初期のWeb画面と比べても表現や操作に圧倒的な自由度が生まれました。

 

ブラウザ上で情報登録する際のフォームで数字だけを入力させる制御などは、Javascriptの入力データチェックによって行われます。また、サイトごとのCookie作成にもJavascriptが使われます。

Webサイト操作した時に出てくるポップアップウィンドウや、動的な画面サイズ調整もJavascriptが用いられているのです。

普段私たちが使うブラウザが、いかにJavascriptで制御されているかが分かりますね。

 

Javascriptの事例

 

それでは、Javascriptの事例を見ていきましょう。

 

ポップアップ画面

 

 

Webサイトにおけるポップアップ画面は、Javascriptが利用されています。

情報入力後の最期の確認として、わざわざ画面遷移をしなくてもポップアップ画面で表示できる機能は画期的な動作でした。

 

オンマウスでのメニュー表示

 

 

企業のWebサイトなどでも多く見られますが、オンマウスによるメニュー一覧の表示もJavascriptです。

これも、画面遷移せずにメニューを確認できる方法で、ユーザーのストレスを大幅に減らすと共に、サイト構成を簡易的に認識することが可能です。

 

電卓

 

 

Webブラウザ上で利用できる電卓も作成可能です。

サイトに埋め込まれた電卓を利用すれば、その場で計算が可能な上に、計算結果をその場でコピー&ペーストできます。

また、Javascriptを勉強する際の初期のテーマとしても採用されることがあります。

 

カレンダー

 

 

Googleカレンダーと同じようなモノもJavascriptで作ることができます。

日や曜日を取得することで、Web画面を開いた瞬間に今日が表示されていると言った、リアルタイムな情報をWebサイトで表現できますし、一つの画面上でカレンダーを編集できます。

 

チャート

 

 

リアルタイムなチャートやグラフを、ブラウザに表示することができます。

株価チャートのロウソク足などもJavascriptで作成することができるのです。1画面で確認すべき情報は、画面をリロードすることなく利用できる必要がありますね。

Javascriptでは、これらも実現できるのです。

 

Geekly Media ライター

佐久森

3+