はじめに
皆さん、はじめまして。~~(会社のアドベントカレンダーを埋めるべく)~~今回初めてQiitaに投稿させて頂きます。
私はWEBアプリ開発の現場でフロントエンドもバックエンドも薄く広く2年だけ経験してきた、フルスタック(?)でロースキルな新人プログラマーです。
そんなへなちょこエンジニアの自分が一念発起してAWSクラウドプラクティショナー資格取得を目指し勉強に励んだのですが、
その際にAWSのサービス名だけではなく、一般的なインフラ用語でも詰まってしまいました…。
そんなわけで、今回は私のような新人プログラマーには耳馴染みの無かったインフラ用語を列挙して解説していこうと思います。
自分のような『開発系プログラマーだけどインフラも勉強してみたい!AWSを使ってみたい!』という方に少しでもお役に立てば幸いです。
対象読者
- AWSクラウドプラクティショナー資格を取得したい人
- その中でも基本的なインフラの用語が知りたい人
用語
スケールイン
システムを構成する仮想マシン(≒サーバー)の台数を減らすこと。対義語は『スケールアウト』。
例えば深夜にリクエスト数が低下するようなWEBサービスを、AWSのEC2インスタンス複数台を利用して構築している場合、
深夜の時間帯には余剰なEC2インスタンスを停止することで、AWS費用の低下が期待できる。
このリソースの削減をスケールインと呼ぶ。
また、t2.largeからt2.microに変更するといったように、利用している仮想マシンのスペックを下げることは『スケールダウン』と呼ばれる。
可用性
システムを極力障害で停止させること無く運用し続けられること。
単語としては『可用性のあるWEBサービス』のように使用される。
その指標としては、稼働率で表現される。
総時間 = サービス提供時間(稼働時間) + サービス停止時間
の関係にあるとき、
稼働率 = サービス提供時間(稼働時間)/ 総時間
で計算される。
ホスティング
(物理・仮想を問わず)レンタルサーバーを借りること。
日本国内では『レンタルサーバーを利用する』というが、海外では『ホスティングする』と言うのが一般的らしい。
~~え、前者のほうが理解しやすくない?とか言わない。~~文化の違いですね。
CIDR
Classless Inter-Domain Routingの頭文字をとったもの。
クラスを気にせずIPアドレスを使用するための仕組み。
端的な解説は困難なので、下記リンクを参照。
ROI
Return on Investmentの頭文字をとったもの。
ざっくり言うと、費用対効果やコストパフォーマンス、などに相当する概念。
得られた利益に対してAWS利用にかかる費用を割ったもの。
ROIが高いサービスほど、ビジネス的価値が高いと言える。
厳密に言うと若干異なるので、詳しく知りたい人は下記リンクを参照。
ROIの意味は?計算式まで理解して投資効果を正しく見極めよう!
NAT
Network Address Translationの頭文字をとったもの。
効率的にネットワークを分離し、IPアドレスを変換するための仕組み。
数種類あり、詳細は下記リンクを参照。
【図解】初心者にも分かるNATの仕組みと種類 ~静的/動的NAT/NAPT/(PAT),セキュリティ等メリット/デメリット~
Zone Apex
以下のようなサブドメインを含まないドメイン名。
- sample.co.jp
- sample.com
つまり、www.
のような接頭辞がつかないドメインのこと。
APEXとは頂点を意味する英単語であり、ゲームのApex Legendsもそれが由来と思われる。
つまりはVictory Royaleであり、ドン勝でもある。
…それはさておき詳細を知りたい人は以下のリンクを参照。
CNAME
Canonical Nameの略。
ドメイン名のエイリアス(≒あだ名)である。
これを利用することで、IPアドレスの割り当てロジックと命名を分離することができるため、IPアドレスの変更に強くなる(らしい)。
詳細は下記リンクを参照。
AレコードとCNAMEレコードを整理する
OAuth
ユーザー認証のプロトコルの1つ。
「Googleでログイン」はこのOAuth認証を利用している。
最近のユーザーログイン方式の流行りの1つなので、押さえておくと吉。
ベンダーロックイン
特定ベンダー提供の機能を利用しすぎるあまり、他ベンダーへの乗り換えが困難になること。
例えば、某ベンダーのサーバーのAPIを利用してブートのロジックを実装していたら、
別ベンダーのサーバーに移行する際に開発工数が発生してしまう、など。
モノリシック
ソフトウェア設計において、機能を少数のモジュールに詰め込むこと。
対義語は『マイクロ』。
マイクロサービス化して疎結合なアーキテクチャを実現する
といった文脈で利用される。
AWSでは各サービスがAPIにより疎結合となっており、マイクロサービスの代表例ともいえる。
また、一般に、マイクロサービス化が進んだシステムのほうが運用しやすく追加開発も行ないやすいとされている。
ただ、初期開発はモノリシックのほうが工期やスキルの面で何かと都合がよいことも…?
そういえば先日、IPAがこんなものを出していました。
~DXを実現するためのあるべきITシステム「スサノオ・フレームワーク」を紹介~
内容はさておいて、カッコイイ名前ですよね。
ブート領域
コンピュータの起動に必要なプログラムや設定情報が記録されたディスク上の領域。
私にはこの知識だけで充分だったのでそれ以上は調べず…。
もし詳しく知りたい方は、下記リンクを参照。
まとめ
いかがでしたでしょうか。
あ~基本情報で見たことあるな~という用語もちらほらありましたね。
本記事が皆様のお役に立てば幸いです。
それでは皆さん、よいエンジニアリングライフを。