リソースグループとは
https://prtechblogfd-crhzb5g6hkhqafdm.z01.azurefd.net/drupalimages/beforemigration/2019-05-31-evening-azure-challenge-002-001.png
管理グループ:複数のサブスクリプションをまとめて管理する機能
サブスクリプション:Azureの契約、課金の単位
リソースグループ:「リソース」の「グループ」。リソースをまとめ、サブスクリプションに紐づけます。
パブリックIPアドレスとプライベートIPアドレスの違い
https://rainbow-engine.com/wp-content/uploads/2021/07/RP-IT0395_PublicIP_PrivateIP_difference/RP-IT0395_111_PublicIP_PrivateIP.jpg
パブリックIPアドレス:「インターネットに接続する」ために利用されるIPアドレス
プライベートIPアドレス:ローカルネットワーク内(組織や学校)で使用するためのIPアドレス
インターネット上の通信には使えないIPアドレス
Azure Application GatewayとLoad Balancerの違い
Application Gateway:HTTP/HTTPS など Web アプリケーションの通信の負荷分散を行いたい場合に利用
Load Balancer:レイヤー 4(トランスポートレイヤー)で動作する TCP/UDP 向けのロードバランサー
仮想マシンスケールセット内のインスタンスへの通信の負荷分散を実現し、性能・可用性に優れたシステムを構築することができます
NIC(ネットワークインターフェース)とNATの違い
https://image.itmedia.co.jp/l/im/ait/articles/1705/25/l_wi-azurefig03004.png#_ga=2.248969159.1150720435.1669874795-753509869.1669874795
NIC:1台の仮想マシンには、1つ以上のネットワークインタフェース(NIC)を付けることができます。
IPアドレスを割り当てることができます。
NAT:AzureではデフォルトでSNATされる仕組みがあり、パブリックIPを持たないVMからでも外部へアクセスすることが可能です。
しかしながら、この仕組みではIPアドレスが動的に変化してしまいます。
Azure上の仕組みでIPアドレスを固定する方法は何パターンか存在しますが、その一つの方法としてNATゲートウェイを利用しIPアドレスを固定化することができます。
※SNAT:ネットワーク境界のルータやゲートウェイなどが、両ネットワークの特定のアドレス同士を対応付け、パケットに含まれる送信元アドレスを転送時に自動的に書き換えることで、一方のネットワークにある機器からもう一方のネットワークへ透過的にアクセスできるようにする。
コンテナ化について
https://cloud-ace.jp/wp-content/uploads/2021/12/image02-2.png.webp
昨今のIT技術において、コンテナ化と呼ばれる仮想化技術がトレンドになっています。このコンテナ化によって、次のようなメリットがあります。
・他のソフトウェアやプロセスに依存したり紐付けられたりせず、あらゆるプラットフォームやクラウドで一貫性のある均一な動作が可能となる
・機能が軽量なため、サーバーの効率が向上しサーバーやライセンスのコストを削減できる
・起動する ゲストOS がないため、起動時間が短縮される
・アプリケーションを分離し、他のアプリケーションから独立して動作させることができる(1つのコンテナに障害が発生しても、他のコンテナの動作に影響を与えない)
コンテナとはOS上に論理的な領域を作成し、アプリケーションを動作させるのに必要なライブラリやアプリケーションなどを1つに統合することで、一つのサーバーのように動作します。また、OSなどのリソースを論理的に分けることで、複数のコンテナでリソースを共有して使うことができるようになります。
アプリケーションやソフトウェアの動作環境が複数ある、1台のパソコン(OSは1つ)をイメージしてみるとわかりやすいでしょう。
Dockerについて
コンテナ技術について解説しましたが、コンテナの話題が出たときに欠かせないのがDockerです。Docker とは、Docker社が開発したコンテナ仮想化を用いてアプリケーションの開発や実行する環境を構築できるプラットフォームのこと。現在では、コンテナといえばDockerというのが主流になっています。
Kubernetesについて
コンテナ技術を用いることによって、これまで以上に開発環境を効率的に利用できたり、リソースの節約ができたりするメリットがあります。しかし、コンテナ化によって管理すべきコンテナが増加してしまい、その管理や運用に手間がかかったり、煩雑になってしまったりするというデメリットが存在します。そこで、このデメリットを解消するために用いられるツールが、コンテナオーケストレーションです。コンテナオーケストレーションの利用によってコンテナ化されたアプリケーションのデプロイやスケーリング、管理などが自動的にできるため、コンテナの管理が容易になります。
そして、Kubernetesがこのオーケーストレーションツールの一つであり、コンテナの運用管理と自動化を実現するオープンソースソフトウェアです。Kubernetesは、Google社が社内で利用していたコンテナ管理ツールが汎用化され、オープンソースソフトウェアとなったもの。複数のコンテナを統合的に管理しつつ、スケールイン・アウトなども自動化することができます。そのため、大規模なシステムの運用管理の工数削減に役立つでしょう。そして今では、Kubernetesがコンテナオーケストレーションツールのデファクトスタンダードとなっています。
Azure Container registryとは
オープンソースの Docker Registry 2.0 が基になっている管理されたプライベートな Docker レジストリ サービスです。
プライベート Docker コンテナー イメージおよび関連する成果物を保存、管理する Azure コンテナー レジストリを作成、管理します。
既存のコンテナーの開発およびデプロイ パイプラインで Azure コンテナー レジストリを使うか、Azure Container Registry タスクを使って Azure にコンテナー イメージをビルドします。
必要に応じてビルドするか、またはソースコードのコミットやベース イメージの更新などのトリガーでビルドを完全に自動化します。
Docker、Kubernetesを利用していく上では、レジストリサービスもセットで必要となります。