AWSの仕組みがキーワードベースで理解できるようまとめてみた5

AWSの仕組みがキーワードベースで理解できるようまとめてみました。

1. AWSアカウント

AWSを利用するにはアカウントを作成してログインします。

ログイン後にリージョンを選択し、サービスを選んで操作します。

サービスはダッシュボードから操作します。

AWS[を利用するためのアカウントのことをAWSアカウントといいます。

メールアドレスとパスワード、連絡先や決済に用いるクレジットカードを登録することで、AWSアカウントを作れます。

AWSアカウントは、買い物に利用するAmazonアカウントとは別のアカウントです。

これらの操作は、すべてパソコン上のWebブラウザから、インターネット回線を介して行うため、インターネットのある場所であれば、いつでもどこでもアクセスし、操作できます。



複数のAWSアカウントを利用する

もちろん、一つの会社や組織が複数のAWSアカウントを持っていても構いません。

AWSアカウントを分けることで、例えば以下のメリットがあります。


1. AWS権限の明確な分離(セキュリティ・ガバナンス上のメリット)

もし同じAWSアカウント内に開発部署AのAWSリソースと開発部署Bのリソースが混在していると、お互いのリソースが「見えている」状態になります。

すなわち、リソース一覧に表示されるし、VPC(仮想ネットワーク)の設定によっては、相互に通信ができてしまいます。

また権限設定の不備があった場合、思わぬ事故(間違って設定変更してしまった、リソースを消してしまった...)ということも起こり得ます。

AWSアカウントを分けておけば、その部署のAWSアカウント以外のリソースは「見えない」ですし、見えなければ基本的に事故は起きません。

この分け方は「開発環境」「ステージング環境」「本番環境」のような区分けでも同じことが言えるでしょう。


2. AWS利用料金の明確な分離(コスト管理上のメリット)

たとえ一つのAWSアカウント内に開発部署AのEC2インスタンスと開発部署BのEC2インスタンスが混在していても、どちらの部署の利用で発生したEC2利用料金なのかは、EC2インスタンスに付与したタグ(タグ別明細機能)によって分類することが可能です。

しかし、例えば「専用線(Direct Conect)のデータ転送料金」など、一部の利用料金はタグ付けが不可能です。

またCloudTrailのログ保管料金など、必ず「共用管理費」のような浮いてしまう料金が発生します。

また、一部のAWSリソースにはそもそもタグ別明細に対応していないものもあります。

AWS利用料金はAWSアカウント単位で発生するため、AWSアカウントを分けることで完全に料金を分け、また請求書も分けることが可能です。

10. データベース移行ツールの違い

AWS DMSの他に、AWSではサーバーの移行サービスとして、AWS Server Migration Service(AWS SMS)やAWS Application Migration Service(AWS MGN)などがあります。

簡単に違いをまとめると以下のとおりです。


AWS Server Migration Service(AWS SMS)

主なユースケースとしては、オンプレミスのVMware、Hyper-Vからの大規模移行。

仮想アプライアンスを使用したエージェントレスのサーバー移行サービス


AWS Application Migration Service(AWS MGN)

シンプルな移行プロセスで、AWSへの移行をサポートする移行サービス。

AWS MGNエージェントをサーバーにインストールするのが必要(2021年11月のアップデートで一部、エージェントレスにも対応)


AWS Database Migration Service(AWS DMS)

あらかじめRDSやAuroraなどのマネージドデータベースサービスを用意した上で、AWS DMSを利用してデータを移行するサービス。

移行元・移行先データベースは、AWS DMSからインターネット/閉域での接続が必要

11. AWS Marketplace

データベースやアプリケーションなどがインストールされた、AMIを提供しているオンラインストアです。

AWS 上で実行されるソフトウェアやサービスを見つけて購入し、すぐに使用を開始することができます。

そのAMIを利用することで、EC2を立ち上げてから手動でインストールする必要はないです。

AWS Marketplace は、クラウドでお客様に提供するソフトウェア製品がある独立系ソフトウェアベンダー (ISV)、付加価値再販業者 (VAR)、システムインテグレータ (SI) 向けに設計されています。

パートナーは、わずか数日で AWS Marketplace の利用を開始し、世界中のお客様にソフトウェア製品を提供できるようになります。

2. AWSマネジメントコンソール

Webブラウザ上のGUIでAWSのサービス・リソースを管理する画面(管理ツール)です。

120以上もあるAWSマネジメントコンソールのすべてのリソースを視覚的に管理できるというメリットがあります。

3. AWSマネジメントコンソールーダッシュボード

マネージメントコンソールには、サービスごとにメニューがあり、それぞれの画面で操作します。

サービス操作におけるメイン画面をダッシュボードといいます。

EC2であれば「EC2ダッシュボード」、S3であれば「S3ダッシュボード」が用意されています。

AWSの各サービスを操作するには、AWSアカウントでログインしたあと、リージョンやサービスを選択し、該当のダッシュボードを開きます。

ダッシュボードでできる操作は、サービスによって異なりますが、サービスの開始や終了、各種設定、現在の状態についての一覧表示など多くのサービスで共通して利用できます。

開始して間もないサービスなどは、ダッシュボードがまだ日本語化されていないこともありますが、主要なサービスは日本語対応しているので安心してください。

4. IAM

IAM (Identity and Access Management)は日本ではよく「アイアム」と発音されます。

AWSアカウントと似ていますが、AWSアカウントは、契約を管理するアカウントであるのに対し、IAMは各種サービスへのアクセスを管理する機能です。

IAM自体は追加料金なしで、無料で使用できます。

作成したユーザが使用したAWSサービスには課金されますが、IAM自体は追加料金なしで、AWSアカウントに提供されている機能です。

なお、AWSではユーザ認証に、多要素認証 (MFA) の使用を推奨しています。


IAMーIAMユーザ

人に対して与えるIAMをIAMユーザといいます。


IAMーIAMロール

サービスやプログラムなどに与えるIAMをIAMロールといいます。


IAMーIAMグループ

IAMユーザ・IAMロールともに必要最低限の機能を付けて、必要な人にだけ渡しておくのが基本です。

「もしかして必要になるかもしれないから」と余計な権限を付けておくのは、セキュリティ的に望ましくありません。

また、1つのアカウントを複数人で使いまわすのも、望ましくありません。

何かあった場合に、誰が行った操作かわからなくなってしまうからです。

一方でAWSでは、複数のEC2インスタンスや、S3バケットを扱うケースがよくあります。

その1つ1つのサービスに対して、メンバー1人1人に権限を設定していくのは大変です。

そのため、ユーザーやロールの設定を効率的に管理する仕組みが用意されています。

ユーザはIAMグループとして、グループにまとめられます。

グループ化しておくと、同じ権限を与えたいユーザを一括で管理できます。


IAMーIAMポリシー

実行者(ユーザ、ロール、グループ)が、どのサービスにアクセスできるのか、決まりごとを設定する機能です。

実行者が何をできるのかは、個別に設定するのではなく、ポリシーを変更・付け替えするだけで、結び付くすべてのユーザやロールの設定を変更できます。

ポリシーは1実行者に対して、複数設定できますし、1つのポリシーを複数のユーザやロールに設定もできます。

IAMポリシーにも大きく分けて3種類あります。


AWS管理ポリシー

AWSが提供するIAMポリシーです。

各サービスに対して大まかな制御ポリシーが設定できます。

カスタマー管理ポリシー

ユーザがJSONファイルなどを利用して設定するポリシーです。

IPアドレスの制御など、AWS管理ポリシーよりも細やかな制御が可能です。


インラインポリシー

インラインポリシーは特定のIAMユーザやIAMロール専用に作成されるポリシーです。

AWS管理ポリシーやカスタマー管理ポリシーは1つのポリシーを作成すれば多くのIAMユーザなどにアタッチすることができますが、インラインポリシーは1つのIAMユーザなど、1対1でのアタッチしかできません。

5. Multi-Factor Authentication (MFA)

AWSでMFA(Multi-Factor Authentication)を有効にしていますか?

有効にしていない方はすぐに設定しましょう!


MFAとは、簡潔に分かりやすく一言で言うと、ログインID(メールアドレス)とパスワードによるログイン認証に加えて、さらにもう1つの認証要素を組み合わせて認証(ログイン)することです。

日本では、2段階認証、多要素認証のような名前で呼ばれます。

最近では、グーグル、ヤフーなどのサービスでも使われ始め、一般的になってきました。


MFAは何のために必要か?それは、第三者による不正なログインを防ぐためです。

ニュースをみていると、「情報漏洩」というキーワードが最近よく出てきます。

漏洩する情報は様々ですが、メールアドレスなどの他サービスのログイン情報として使われている情報が漏れてしまうことが多々あります。


このような場合で、かつ、色々なサービスのログインパスワードに、推測されやすい文字を設定していると、第三者に勝手にログインされてしまう可能性があるんです。

そんなときに身を守ってくれるのが、MFAです。

悪意を持った者に、もし、ログイン情報が漏れてしまっても、不正なログインを防ぐことができます。

6. ARN

Amazon Resource Name、ARNと呼ばれる。

IAMポリシー、Amazon Relational Database Service(Amazon RDS)タグ、APIコールなど、AWS全体でリソースを明確に指定する必要がある場合、ARNが必要です。


ARNは以下のような形式で定義されています。

arn:partition:service:region:account-id:resource

arn:partition:service:region:account-id:resourcetype/resource

arn:partition:service:region:account-id:resourcetype:resource

7. マネージドサービス

マネージドサービスとは、マネージド(Managed:管理)

クラウド事業者などによって運用・管理されているクラウドサービスを指します。


AWSの代表的なマネージドサービス

・RDS

・S3

・Lambda


大きなマネージドサービスのメリット

オンプレミスにデータベースを構築する場合を考えると、データセンターの契約から、物理サーバの設置や運用監視が必要となるため、高い運用コストが生じてしまいます。

また、データベースの利用が増加すると、ディスクの追加作業や、場合によってはデータセンターに新規のディスク装置を設置するなど、増設にも時間がかかります。

RDSではなく、EC2にデータベースを構築した場合も、OOSの稼働監視や、データの同期、バックアップ、障害時の切り替えといった設計や管理はすべて利用者側で行っていく必要があります。


しかし、マネージドサービスだと、データセンターや物理サーバの管理はもちろんのこと、サーバやデータベースエンジンのアップデートもAWSが行うため、運用にかかるコスト、特に人的なコストを大幅に下げることができます。

加えて、性能を増やしたい場合でも、データベースのCPUの性能や、ストレージの容量を簡単なマウス操作のみで増やすことができるため、急なデータ容量の追加にも対応することができます。

またもう一つのメリットはインフラ構築のスピードアップができることです。

8. AWS CLI

AWS コマンドラインインターフェース (AWS CLI) は、AWS のサービスを管理するための統合ツールです。

ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから AWS の複数のサービスを制御し、スクリプトを使用してこれらを自動化することができます。


コマンドラインとは、コンピューターに対する指示をコマンド (文字) で行う操作体系のことです。

AWS CLIは、Windows、 macOS、 Linuxの各OS向けに提供されており、主要なOSから、同じ操作でAWSを利用できます。

9. AWS DMS

AWS Database Migration Service(AWS DMS)は、その名前のとおりデータベースをAWSに移行するためのサービスです。

特徴としては以下のとおりです。

・簡単に、データベースのデータをAWSへ移行するマネージドサービス

・同種類のデータベースエンジンに加え、異なる種類間のデータ移行にも対応

・移行元はRDBMSだけでなく、NoSQLデータベースも利用可能