AWS

Amazon EC2(Amazon Elastic Compute Cloud)

  • サーバーに必要なもの一式がクラウドで借りられるサービス

  • ハードウェア構成やOSの組み合わせを弾力的に(elastic)選べる

  • すぐに作れて、すぐに壊せる。試しに作成したい。一時的に使いたい時に
    対応できる

  • 不確定要素が多い場合でも気軽に初められる

  • AMI(Amazon Machine Image):仮想イメージ

    • OSのみのものから、ソフトウェア設定が終わっているものまで
      さまざまな AMIが用意されている

    • 自作も可能

    • 作成した構成のバックアップを使る。複製することもできる

  • キーペア

    • インスタンスに接続するときに認証に使用する鍵

  • EBS(Amazon Elastic Block Store)

    • AWSクラウド内のストレージ、インスタンスのストレージとして使う

    • ブロックストレージボリューム = データをバイトのブロック単位で保存する方法。ディスクに保存する際の一般的な方法

    • S3はオブジェクトストレージ方法

  • セキュリティグループ

    • 仮想的なファイアウォール

  • Elastic IP

    • 静的なIPv4アドレス

  • インスタンスタイプ

    • t2.micro

      • t2: インスタンスタイプ、サーバーの用途によりタイプが異なる

      • micro: インスタンスサイズ、CPUやメモリ容量など

  • ELB(Elastic Load Balancing)

    • 負荷分散装置

    • ALB、NLB、CLBの3種がある

    • ALB(Application Load Balancer)

      • HTTP, HTTPSに最適

      • アプリケーション層で動作

    • NLB(Network Locd Bulancer)

      • トランスポート層で動作

      • TCP、TLSに対応

    • CLB(Classic Load Balancer)

      • 古いタイプ

  • スナップショット(Snapshot)

    • ある時点でのサーバーのディスク状態を丸ごと保存したファイルやフォルダなどの集合

    • DLM(Data Lifecycle Manager)

      • スナップショットの作成、削除を自動化

  • Auto Scaling

    • サーバーへのアクセス状態によって、サーバーの台数を増減させる

Amazon S3(Amazon Simple Storage Service)

  • オブジェクトストレージ

    • データをオブジェクト単位で管理する形式

  • S3の特徴

    • スケーラビリティ

    • 可用性

    • 耐久性

    • 信頼性

    • 管理機能

    • インテリジェント

      • クエリ実行

      • 分析サービス

      • Lambda連携

  • ストレージクラス

    • ストレージの種類のこと

    • 標準、アクセスパターンに応じて階層を移動できるクラス

    • あまりアクセスしないデータに適したクラス

    • バケット単位ではなく、オブジェクト単位でクラスを選択できる

    • 標準

      • 3つ以上のAZ(アベイラビリティ・ゾーン)にデータを保存 → 可用性を保証

    • Intelligent - Tiering

      • 高頻度、低頻度それぞれに最適化された2つの階層に保存

      • 一定期間アクセスがないオブジェクトは低頻度層に自動で移る

    • 低頻度アクセス

      • 標準に比べて保存料金が安価

      • アクセス 料金が若干高い

    • 低冗長化ストレージ(RRS)

      • 標準に比べて冗長化のレベルが低く、低価格

      • 保存されるAZが1ヶ所、トラブルがあるとデータが失われる

    • S3 Glacier / S3 Glacier Peep Archive

      • 氷河

      • データアーカイブ・長期バックアップ用

      • データは「ボールド」というコンテナに格納

      • 保存したデータを読む時は他のS3バケットへ取り出す

    • バケット

      • オブジェクト(ファイル)を入れる場所

      • バケット内に子バケットを作ることはできない

      • 1つのバケットに保存できるオブジェクトの数に制限はない

      • 総容量制限もない

    • オブジェクト

      • バケット内に階層ではなく並列に置かれる

    • S3バケットのアクセス制限

      • バケットポリシー

        • 該当のバケットにアクセスできるユーザーを指定

      • ユーザーポリシー

        • アクセスできるバケットを指定

      • ACL(Access Control List)

        • 自分以外の他のAWSアカウントに対してRead/Write のそれぞれの操作を許可/拒否に設定する

      • アクセス制限の対象

        • リソース

          • 制御の対象となるバケットやオブジェクト

        • アクション

          • 実際にできる行動

          • GET, PUT, DELETE など

        • エフェクト

          • Allow / Deny

        • プリンシパル(Principal = 主な、主要な)

          • 許可もしくは拒否するユーザーやアカウントサービスなど

  • Webサイトホスティング

    • S3では静的なWebサイトをホスティングできる

    • バケットをそのままWebサイトとして公開する

  • Amazon Lightsail

    • 必要なものを選ぶだけで Webサイトに必要なサービスを一式を定額で揃えられるサービス

  • AWS Amplify

    • Webシステムを開発するためのツール一式を提供するサービス

    • JavaScriptでAWSの様々な機能を呼び出す

    • HTMLファイルや画像をS3経由で配信

    • Lambdaを使ってバックエンドプログラムを実行

  • S3へのアップロード・ダウンロード

    • マネジメントコンソール

      • ブラウザ上にドラッグ&ドロップ

    • CLI

    • API、SDK

      • サードパーティ製のツール

      • IAMユーザーでアクセスキーとシークレットキーを発行し、利用したいツールに設定

    • マルチパートアップロード

      • マネジメントコンソールやCLIでは大きなファイルを操作すると自動で切り替わる

    • AWS Transfer for SFTP

      • SFTPを使ってファイルを転送

    • AWS Data Sync

      • オンプレミスのストレージシステムとAWSのストレージ(EC2、S3)との大量のデータ移動を想定したサービス

アクセス管理

  • アクセスログ

    • サーバーに対してどのようなリクエストがあったかを記録

  • ストレージクラス分析

    • オブジェクトへのアクセス頻度を分析

  • オブジェクレロック

    • オブジェクトに対する一切の変更を許さない

  • S3 インベントリ(Inventory = 目録・棚卸し表)

    • バケットに入っているオブジェクトのメタデータを毎日 / 毎週一覧にして生態

  • バージョニング

    • オブジェクトを複数バージョンを保存する機能

  • ライフサイクルポリシー

    • オブジェクト群に対し、定期的に行うアクションを設定できる機能

    • 例:別のストレージクラスへ移動する有効期限がきをオブジェクトを削除

  • クロス・リージョン・レプリケーション(CRR、Cross Resion Replication)

    • 異なるリージョンに作成したバケットに、オブジェクトを非同期でコピーする

    • 海外のサーバーにバックアップを取ることができる

データベース

  • S3 Select、Amazon Athena

    • CSVやJSONのような構造化されたテキスト形式のデータに対してSQLのSELECT文を実行するクエリ機能

  • Amazon Redshift Spectrum

    • S3 Select等と同じ機能、大量のデータを処理できるのでRedshift クラスタが必要

    • 何をどのように検索するのかを事前に構成

    • 事前に分析用サーバーを起動しておく

    • 処理能力に応じて、性能、コストを決められる

    • 分散処理で分析できる

  • S3 Select

    • マネジメントコンソールからSQLを入力することで実行できる

  • Athena

    • 何をどのように検索するのかを事前に構成

    • 実行するたびに分析サーバーが自動的に作られるので実行したときだけ費用がかかる

  • DBMS(Database Management System)

    • データベースを実際に操作する役割を担うソフトウェア

    • 例:MySQL、PostgreSQL、Oracle DataBase

  • SQL

    • データベースに命令する際に使われる言語

  • RDB(Relational Database)

    • データの種類を細部まで設定するので、準備に時間がかかる

    • データに対する操作にSQLを使う

  • 非リレーショナルデータベース

    • 構造が単純

    • アクセスが高速

    • キー・バリュー型(Key - Value)

    • ドキュメント型がある

    • NoSQLデータベース

  • Amazon RDS(Relational Database Service)

    • Amazon Aurora, PostgreSQL, MySQL. ManiaDB,Oracle Database, SQL Server が使える

    • マネージドサービス、アップデートが自動で行われる

  • AWS DMS(Database Migration Service)

    • 既存のデータベースからの移行や複製をするサービス

  • Amazon Aurora

    • MySQLやPostgreSQLと互換性のあるリレーショナルデータベース

    • MySQL+PostgreSQLと比べ高速

  • Amazon DynamoDB

    • Key - Valueストア型のデータベース、VPCなしで接続できる

  • Amazon Elastic Cache

    • インメモリ型のデータベース

    • データベース操作のたびに外部記憶装置と読み書きを行うのではなく、頻繁に読み出しのあるデータは一時的にメモリに置く(Cacheする)

    • 高速

    • インスタンスの再起動時にデータが削除される

  • Amazon DocumentDB

    • MongoDB互換

    • ドキュメント指向型データベース

    • JSON形式をバイナリ化したBSON形式でデータを保存

  • Amazon Neptune

    • グラフデータベース

    • いろいろな要素間の関係や処理の流れを示すためにノード同士の連結を、方向を含めて記述

  • Amazon Timestream

    • 時系列データベース

    • 時間経過に伴う事物の変化を記録

    • IoTデータを扱うのに適している

  • Amazon Quantum Ledger Database(QLDD)

    • 台帳データベース

    • データの各変更を追跡して履歴をとして維持

    • ジャーナル形式

    • ジャーナル内のデータは変更・削除不可

    • SHA-256で変更履歴の改ざん防止

    • Quantam:量子

    • Ledger:台帳

ネットワーク

  • Amazon Cloud Front

    • 高速コンテンツ配信ネットワーク

    • Contents Delivery Network(CDN)

    • Webサーバーの中身をキャッシュするエッジサーバーを利用

    • エッジサーバーは各リージョンに置かれているのでネットワーク距離が近いサーバーにアクセスする

  • Amazon VPC(Virtual Private Cloud)

    • AWS アカウント専用の仮想ネットワーク

    • ルーティンプはソフトウェアで行う

    • ルータはIPアドレスを持たな

    • 1つのルートテーブルに対して複数のサブネットを設定できる

    • インターネットゲートウェイは1つのVPCに対して1つ

    • サブネット間通信はルーターなしで直接通信できる

  • デフォルトVPC

    • サブネットやインターネットゲートウェイがあらかじめ設定されてる

  • CIDR表記

    • 172.31.0.0/16

  • サブネットマスク表記

    • 172.31 0.0 / 255.255.0.0

  • IPマスカレード(NAPT、Network Address and Port Translation)

    • プライベートIPアドレスとグローバルIPアドレスを変換するゲートウェイの機能

    • これによりLAN内からインターネットへは出られるようになる

  • NAT(Network Address Translation)

    • IPマスカレードは1 対 多、ポートの変換をする

    • NATは多 対 多、ポートの変換はしない

  • インターネットゲートウェイ

    • インターネット側からのリクエストに対して VPC内にあるインスタンスのプライベートIPアドレスに変換してリクエストを届ける

  • NATゲートウェイ

    • VPC側からインターネットへリクエストした時に応答を受けられるようにする

    • インターネットからVPC内へは接続できない

  • ネットワークACL

    • サブネットに対して動作する仮想ファイアウォール

    • 1つのサブネットに1つのネットワークACLしか設定できない

  • セキュリティグループ

    • インスタンスに対して動作する仮想ファイアウォール

    • デフォルトはインバウンドは不許可、アウトバウンドは許可

  • VPCエンドポイント

    • VPC内からVPC外へ接続するための接続点を作るためのサービス

    • S3やDynamoDBはVPC内に置けないサービスなので、VPCエンドポイントサービスを使い、VPCとS3等をインターネットゲートウェイを介さずに接続する

  • インターフェイスエンドポインス

    • ネットワークインターフェイス(ENI、Elastic Network Interface)として構成するVPCエンドポイント
      プライベートIPアドレスを持つENI
      Private Linkに対応していればAWS以外のサービスとも接続できる

  • ゲートウェイエンドポイント

    • ルートテーブルに記載してルーティングするVPCエンドポイント

    • サービスのリージョン単位でルートテーブルに記載する

  • VPCピアリング

    • VPC同士を接続するための機能

  • AWS Direct Connect

    • AWSと社内LANを専用線として接続、引き込み工事が必要

  • AWS VPN

    • AWSとVPN接続

  • トランジットゲートウェイ

    • VPCやオンプレミスネットワークを1つにとりまとめて互いに接続する「接続点」を提供するサービス

    • 複数のネットワークを中央に集約して、通信経路を統合的に扱う

  • Amazon Route 53

    • DNS

    • ドメインの取得もできる


コンテナ

  • AWS Lambda

    • データやリクエストのリアルタイム処理やバックエンド処理を自動実行するしくみ

    • 必要なイベントに応じて自動実行される

    • Lambda 関数をLambdaサービスに登録する

    • SES(Simple Email Service)と組み合わせて、メール受信時にアクションを起こす

    • API Gatewayと組み合わせると、WebブラウザなどからAPIが呼び出された時に処理を実行する

  • コンテナ

    • プログラムの実行環境を隔離するしくみ

    • アプリケーション、ライブラリ、データのみを隔離できる

    • AWSではDocker形式のコンテナをサポート

  • Amazon Elastic Container Registry(ECR)

    • コンテナを配置、管理するためのサービス

  • Amazon Elastic Container Service(ECS)

    • コンテナ化したアプリケーションの実行やコンテナ同士の調整を行うオーケストレーションサービス

  • Amazon Elastic Kubernetes(クーベネティス)

  • Kubernetesと互換性のあるサービス

  • コンテナの運用管理と自動化をするためのシステム

  • AWS Fargate

    • 必要に応じてEC2インスタンスを起動し、その中にコンテナを割り当てて実行する仕組み

この記事が気に入ったらサポートをしてみませんか?