Ccmmutty logo
Commutty IT
0 pv4 min read

0から始めるAWS学習#1

https://cdn.magicode.io/media/notebox/blob_NNtfUQL
某アニメのようなタイトルですが、そのまんまの意味です。 これまでクラウドサービスに触る機会が無かったのですが、今後必要になるかもとのことで学習したいと思います。

クラウドサービスって何?

インターネット経由でさまざまなサービスを提供する事業で特定のアプリケーションやストレージ以外にも、サーバや大規模なシステムなど幅広く提供している。

クラウドサービスのメリット

クラウドサービスは一般的に導入、運用のコストが低く済む。 簡単なサービスであれば、利用者側に通像のインターネット環境が整備されているだけで使用でき、複雑・大規模なシステムを利用する場合でも、自社で同等のシステムを構築するよりもはるかに短い期間で運用開始に至れる。 また、各種IT機器の日常的なアップデートから定期メンテナンスまでクラウド事業者側が行うため、サーバやソフトウェアを用意したり、保守・管理する手間が省け、専門知識や人材が備わっていない企業でも比較的高度なシステムを運用可能。 その他、自社の所在地域で大規模な災害が発生しても、データシステムが損傷する可能性は低くなる利点もある。

AWSって?

AmaonWebServiceの略称。 Amazonが提供しているクラウドサービスで、200を超えるサービスが提供されており、システム運用やアプリ開発棟に必要な機能を揃えることが可能。

一部調べてみたものたち

Amazon EC2

Amazon Elastic Compute Cloudの略称。 AWS上で構築できる仮想サーバの一つ。 AWS上ですぐにLinuxやWindowsのサーバを構築できるため、業務の効率化に繋がる。 また、利用状況によってスペックの変更が可能である。

インスタンス

AWS上で稼働する仮想サーバのことを指し、仮想サーバを数える際の単位としても使われる。 AWSでは仮想サーバのCPUやメモリなどの組み合わせがインスタンスタイプとして定義されている。 必要に応じたインスタンスタイプを選択肢、OS、ストレージ容量などを決定してインスタンスを作成する。 また、インスタンスの負荷状況に応じて自動的にインスタンスをスケールアウト(台数増)/イン(台数減)することが可能なオートスケーリングなど、用途に合わせた柔軟な運用が可能。

セキュリティグループ(仮想ファイアウォール)

セキュリティグループによってインスタンスに入出力される通信を制御することで、セキュアな通信を実現する。

セキュアなログイン管理機能

インスタンスへのログイン情報を公開鍵暗号方式で管理できる。 公開鍵暗号方式とは公開鍵と暗号鍵の二種類の鍵を使用し、通信の暗号化・復号化を行う方式のこと。 パスワードのみの認証よりセキュリティが高い。

Amazon ECS

Amazon Elastic Container Serviceの略称。 Dockerコンテナの実行や停止、CPUやメモリの量を増減するスケーリングなどが簡単に行える。

コンテナとは

アプリケーションを動かすための環境を仮想化する技術。 アプリケーションを動作させるには、アプリケーション本体やOSの他にミドルウェア、ライブラリなど必要な要素が複数あるが、コンテナはそれらをパッケージングして、1つにまとめる技術。

サーバ仮想化との違い

コンテナと従来のサーバ仮想化との多くな違いは、「ハイパーバイザー」の有無。 ハイパーバイザーとは、コンピューターを仮想化して複数の仮想マシン(VM)を実行するためのソフトウェアで、物理的なマシンが1台でも、ハイパーバイザー上に複数のゲストOSを乗せられるため、作業やテストを並行的に進められるメリットがある。 サーバ仮想化では、物理マシンのホストOSにハイパーバイザー、その上に複数のゲストOSを乗せ、各ゲストOS上でアプリケーションを動作させる。 対して、コンテナにはハイパーバイザーの代わりに「コンテナエンジン」がある。 コンテナエンジンとは、コンテナの作成や実行、管理を行うソフトウェア。 コンテナエンジンがOSの基本的な役割を担うことで、コンテナは単一のOS上で、同時に動作できる。 物理マシンのホストOSにコンテナエンジンを置き、その上にコンテナを複数乗せることでアプリケーションを同時に動作できる。 コンテナはサーバ仮想化に比べて階層が少ないことで、起動時間の短縮に繋がる。

デメリット

構築した際のホストOSの環境に依存するため、構築時と異なるOS上に移行してもコンテナとして起動することができない。 コンテナは持ち運びがしやすいため、他のサーバに移して実行するようなこともあるが、ホストOSと同系列で互換性のあるOSであることを事前に確認しておく必要がある。 また、ホストOSに障害が発生すると、その中で連携して動く全コンテナにも影響が出てしまう点も課題。実サービスで利用する場合は、サービスが停止してしまう危険性があるため別途対策が必要。

Amazon ECSでできること

各コンテナを総合的に管理し、運用を行う。(コンテナオーケストレーション) 複数のコンテナを扱う際に、それぞれの管理や運用、保守を個別に行う必要があるが、複数のコンテナに対して、手動でコマンドを実行するのは手間がかかる。 Amazon ECSを導入することで複数のコンテナを一括管理してくれる。 主な機能は以下。

オートスケーリング

実行中のコンテナの負荷状況を確認し、必要に応じてCPUやメモリの増減を行う。

自動復旧

コンテナの運用を監視し、停止しているものがあった場合は新たなコンテナを起動するなどの自動復旧対応を行う。

スケジューリング

コンテナを配置する際に、サーバの負荷状況によって適正な配置を判断する機能。
また、Amazon ECSは、あくまでコンテナの管理を担うツールであり、コンテナの実行環境ではない。 コンテナの実行環境としては、Amazon EC2などを利用する。
一旦今日はこの辺で。 今後は今回調べたものをもっと深く調べたり、他機能についても調べる予定です。

Discussion

コメントにはログインが必要です。