ノートブック - AWS リファレンス
サイト管理者の個人的なメモ

[ Linux / Unix リファレンスガイド ] - [ ノートブック ] - [ aws ]


Contents


Amazonのクラウドサービス AWS に関するノート、備忘録。

【注】AWSはどんどん仕様やサービスが更新されているため、このメモは2017年あたりの情報となる。(←2018年5月更新

◆AWS用語
AWS Amazon Web Services Amazon社が提供するクラウドコンピューティングサービス

サーバやN/W機器、高価なF/Wやロードバランサーの購入や設置をせずにに手早く構築・サービススタートが可能となる。 一度購入してしまうとスケールアップやスケールダウンの難しいオンプレと異なり、利用状況に応じて規模を拡大(縮小)することが容易に可能。H/WやN/W機器などの多くはマネージドサービスとして提供されており、面倒な修理作業、交換部品の手配や入管申請などベンダーコントロールなどが不要となる。 また、サーバや機器を購入しないため、償却資産ではなく、月額のサービス利用料金として損金処理できることも魅力。購入を伴わないため、機器の保管や廃棄も不要で、煩わしい仕事から開放される。

リージョン アメリカ合衆国のいくつかの州、東京、カナダ、ロンドン、シンガポールなど世界中にAWSの拠点が存在し、その地域区分をリージョンと呼ぶ。利用の際にどの国(地域)のリージョンを使用するか検討する。日本向けシステムの場合は東京を選択すれば良いが、多国籍企業のシステムでは、アクセスの多い国や地域、時間帯や経路などから複数のリージョンの中からベストなリージョンするか、あるいは複数のリージョンを組み合わせて使用する。また、国内企業でも障害復旧環境としてアジア地域やアメリカの環境を確保する場合もある。

アベイラビリティーゾーン(AZ) AWSは世界中にリージョンと呼ばれる拠点が存在するが、さらにリージョンはアベイラビリティーゾーンと呼ばれるデータセンターの単位に分割される。2017年現在では東京は、AとCの2つのゾーンが設けられている。

2018年あたりに大阪も追加された[希望者のみ利用可能])ので、アメリカやシンガポールなど海外リージョンを利用せずとも、国内のみで、DRサイト(災害時用のバックアップ環境)を構築できるようになった。

EC2 Amazon Elastic Compute Cloud 仮想サーバやLBなどのインスタンスを提供する
AWSでサーバを構築する際、一番よく使うのがこのEC2。Linux、FreeBSD、WindowsなどのOSの他、Junos、Big-IP、DataOntapなどたくさんのOSイメージが利用可能。

ELB Elastic Load Balancing AWSの標準ロードバランサー。LB専用機よりかなり使いやすいが、専用機ほど複雑なことはできない。2017年まで、Classic Load Balancer と Apprication Load Balancer の二種が用意されていたが、2017年、これらに加え、Network Load Balancerが追加された。

ELBは簡単に設置できるフルマネージドのロードバランサーで、スケーリング等は自動で行われる。表外に記載している通り、仕様に基づく制限がいくつかあるので導入の際は注意すること

Classic ELB
Layer4ベースのルーティング(バランシング)を行う

Application ELB
Layer7ベースのルーティング(バランシング)を行う
ホスト名、アクセス先のパスベースで振り分けが可能だが、EB専用機ほど複雑な設定は行えない

Network ELB
HTTPやHTTPSにも利用できるが、TCPで転送されたアプリケーション用データなどの振り分けが可能。ELBで唯一固定IPアドレスでの運用が可能

EIP Elastic IP Address AWSの固定グローバルIPアドレス。サーバインスタンスやネットワーク機器のインスタンスに関連付けて使用する。

インターネットゲートウェイ インターネットへのゲートウェイ。VPCに関連づけて使用する。

NATゲートウェイ NAT変換でインターネットへアクセスするゲートウェイ。外には出たいが、外からは接続したくないセグメントで使用する。NATゲートウェイはIPv4専用なので、v6でのNAT接続を行う場合は Egress Only Internet Gateways を使用する。

VPNゲートウェイ 自宅や会社とAWS VPCをVPNで接続する際に利用するVPN用ゲートウェイ

ダイレクトコネクト 自宅や会社とAWS VPCを専用線で接続するサービス。国内外の回線業者が提供しているので、性能やコストを比較して、回線業者を選んで接続する。

VPC Amazon Virtual Pricate Cloud AWS上に設けれられたアカウント別に管理するクラウド基盤の基本単位。VPCを作成し、VPC上にネットワークサブネット、サーバインスタンス、ゲートウェイなどを配置して、システムをくみ上げていく。一つのアカウントで複数のVPCを作成し、それぞれ別のシステムとして運用することが可能。

Route53 AWSが提供するDNSサービス。Amazonによる独自の拡張が施されており、ELBでZoneApexを利用する際は利用が必須。

セキュリティグループ AWSが提供するパケットフィルタリング機能。インスタンス単位で動作する。LinuxやWindowsなどのOSが提供するFirewallとは別に動作する。自社からの接続はすべて許可などの設定を登録しておき、複数のインスタンスに割り当てることが可能。AWSが提供するネットワークACLとの違いを確認して、使い分ける必要がある。

ネットワークACL 仮想ネットワーク機器のACL(アクセスコントロールリスト)。サブネット単位で設定を行う。セキュリティグループとACLの違いを意識して通信制御を設計すると後の運用が楽になる。

インスタンス AWSではデプロイしたサーバやロードバランサーなどの仮想マシンをインスタンスと呼ぶ

ターゲットグループ アプリケーションロードバランサー(Application ELB)を構成する際のサーバクラスタ。

S3 Amazon Simple Strorage Service バケットと呼ばれる入れ物に大量のデータを格納することが可能。イメージとしてはバックアップ用の外付けNAS。ただし、AWS独特の概念や使い方を覚える必要がある。S3サービスの実体は巨大な KVS(Key-Value型データストア)

RDS EC2をデータベースに特化したもの。EC2にデータベースをインストールして使用することも可能だが、RDSを使用することでより楽に運用を行うことが可能。

デプロイするだけでMySQL、PostgreSQL、Oracleなどをすぐに利用することができる。

OSやH/Wレベルでのマネージドサービスとなっており便利ではあるが、SSHなどで接続してOSの設定を変更したり、ログを確認すると言ったことができず、また、オンプレ環境で日常的に行っていたオペレーションもAWSの管理画面から設定するなど手順の大幅な変更や、RDSの制限に苦労する部分もある(記事執筆時、RDSのログはUTCのみなどの制限)。ログもローテーションしており、24時間で消えてしまうので、長期保存するにはバックアップスクリプトの作成が必要となる。

EC2 Container Service EC2をDockerに特化したもの。EC2上のLinuxインスタンスにDockerをインストールして使用することも可能が、EC2 Container Service を使用すればより楽に運用を行うことが可能。アプリケーションELBと組み合わせて利用したい。

IAM AWSマネージメントコンソール用のユーザや権限管理、AWS CLIの権限などはIAMで行う

AWS CLI AWS Command Line Interface AWSが提供するコマンド・ツールセット。これらを利用することで、GUIを使わずコマンドラインからVPCやインスタンスの設定や制御が可能。AWS CLIで許可する権限付与はIAMで設定する


◆AWSに必要な知識
AWSはレンタルサーバではなく、ネットワーク、サーバ、回線装置などシステム全体を提供する総合クラウドサービスであるため、AWSを使用するにはフルスタックな知識が必要となる。レンタルサーバとの違いがAWS利用の一番意識しておくポイントとなる。(レンタルサーバではOSやミドルウェアの設定などは提供側がやってくれているし、セキュリティーパッチの適用なども提供側でやってもらえる)

サーバやネットワークの知識がなくてもアプリケーションを走らせる機能や簡単にサーバをデプロイしてスタンドアロンで手早く立ち上げる仕組みなども用意されているが、それでもある程度の幅広い基礎知識がないとサーバやサービスを公開して運用を続けることは難しいため、レンタルサーバからのAWSへの以降は注意が必要。

OSの基本的な設定、ミドルウェアの設定、ファイアウォールやパケットの制御、ゲートウェイの設置やルーティング設定、キーペアの作成・管理、DNSのレコードの登録・管理あたりは自身、もしくは自社で行う必要がある。さらにある程度の規模のシステムでは、ロードバランサー、S3などのストレージ、サブネットの分割なども必要となる。

◆AWSのネットワーク(ネットワークの制限)
AWSのネットワークは、ネットワークアドレス、ブロードキャストアドレスの他に、3つのアドレス(ネットワークアドレスに1~3を足したもの)が予約されているので、1セグメント(CIDRブロック
)辺り、この5つのアドレスを使用することができない。 CIDRを使って28bitとかで区切ると運用に入ってからいろいろ面倒くさいことになるので、最低でも27bit以上で分割おく。

AWSで予約されているアドレス 10.0.0.0/24の場合
の例

IP-address (10進) IP-address (2進) 備考
10.0.0.0 00001010.00000000.00000000.00000000 ネットワークアドレス
10.0.0.1 00001010.00000000.00000000.00000001 DNS
10.0.0.2 00001010.00000000.00000000.00000010 AWS予約
10.0.0.3 00001010.00000000.00000000.00000011 AWS予約
10.0.0.255 00001010.00000000.00000000.11111111 ブロードキャストアドレス
上記のアドレスは使用することができない。

◆ELBの仕様(ELBの制限)
Classic LBとApplication LBはデフォルトで冗長化されており、IPアドレスは非固定となっている。このため利用にはAWSのFQDNを利用する。自社DNS登録の際には、Aレコードは使用できないためレコード種別に注意。
この上記仕様のため、ELBを経由させる場合、ZoneApex(http://foobar.comなどの短い名前)は利用できないので要件定義・基本設計の段階で盛り込まないよう注意する。 ELBを利用してZoneApexを利用する場合、Amazonが独自に拡張したAWSのDNSサーバであるRoute53の利用が必須となる。

◆アカウント作成
個人・法人問わずアカウントの開設にはクレジットカードが必要となる。 よくわからないままいい加減な設定を施して放置しているとクレジットカード会社から想定外の請求が来る可能性があるので注意して設計・運用する必要がある。

使用量に応じて課金されるが、インスタンスの使用やネットワークの使用、アドレスの確保などさまざまな項目で課金される。うまく設計すれば、オンプレミスよりかなり価格を安く構築・運用することができる。請求費用が一定額を超えると通知メールが届く機能も用意されている。

◆AWS用語その2
Glacier S3よりさらに安価に大量のデータを保存できる仮想デバイス。データを安価に大量に保存できる反面、取り出しには、申請が必要でデータダウンロードが可能になるまで数時間かかる。いつでもすぐに気軽に使えるS3がNASとするなら、Glacierはテープドライブに例えられる。年単位で長期間保存するが、緊急性がなく滅多に取り出さないデータはGlacierに保存すると良い。
Elastic Beanstalk AWSのレンタルサーバ的なサービス。EC2インスタンスをデプロイして、OSやミドルウェアを設定し、ELBを設定し・・みたいな作業をAWSに任せて、開発者は開発・プログラミングに注力することができる。が、Elastic Beanstalkの初期設定がなれないうちは大変だったりする。
Lambda サーバレスがキーワードのAWSのイベントに応じて処理を実行するサービス。たまにJobをキックするためだけに存在するサーバとかそういうのをLambdaに任せてしまえば、稼動するインスタンスを少なくすることができる。Linuxベースのサンドボックスのようなミニマム環境が提供され、イベントドリブンでスクリプトを実行することができる。スクリプト言語としてNode.js (JavaScript)、Python、Java (Java 8 互換)、C# (.NET Core) に対応している。
DynamoDB 超高速でフレキシブルなNoSQLタイプのデータベースサービス。毎秒数十万クエリの豪雨にさらされるスマホのバックエンドなど大活躍しそうなサービスです。
Lightsail マウスをポチポチとクリックしていくと、RedmineやWordpressなどが手ががるにデプロイできるサービス。簡単さゆえに、接続元IPアドレスを指定できないとか、自分で作成したVPCと接続するためにはいろいろ設定しないといけないとかあるので、目的によっては不便です。あくまで手早く簡単に、短いプロジェクトで短期間だけそのツールを使いたい、お試しで気になるソフトウェアを使ってみたいなどの用途で大活躍するかと思います。



今後も更新予定

以上





(c) 2012 - 2018 copyright oskp.net all rights reserved.