VPC

VPCの概要

Virtual Private Cloud(VPCVPCAWSクラウド内に論理的に分離されたセクションを作り、ユーザーが定義した仮想ネットワークを構築するサービス

・任意のIPアドレス範囲の選択して仮想ネットワークを構築 ・サブネット作成、ルートテーブルやネットワークゲートウェイの設定など仮想ネットワーキング環境を完全に制御可能 ・必要に応じてクラウド内外のネットワーク同士を接続することも可能 ・複数の接続オプションが利用可能

VPCとの接続

Direct Conect

お客様のデータセンターやオフィスを専用線などを介してAWSへプライベートに接続するサービス

◾️メリット ・安価なアウトバウンドトラフィック料金 ・ネットワーク信頼性の向上 ・ネットワーク帯域幅の向上

Direct Connectロケーションに物理的に自社オンプレ環境を接続することでAWS環境との専用線接続を実現する

Direct Connect gateway

同一アカウントに所属する複数リージョンの複数AZから複数リージョンの複数VPCに接続

VPNとDirect Connect

VPNの方が安く素早く利用できるが、信頼性や品質は専用線が勝る

VPCエンドポイント

グローバルIPをもつAWSサービスに対して、VPCないから直接アクセスするための出口

Gateway

サブネットに特殊なルーティングを設定し、VPC内部から直接外のサービスと通信する ◾️特徴 ・アクセス制御:エンドポリシーを設定 ・料金:無料 ・冗長性:AWS側が対応

PrivateLink型

サブネットにエンドポイント用のプライベートIPアドレスを生成し、DNSが名前解決でルーティングする ◾️特徴 ・アクセス制御:セキュリティグループを設定 ・料金:有料 ・冗長性:マルチAZ設計

NATゲートウェイ

プライベートサブネットのリソースがインターネットまたはAWSクラウドと通信が可能になる ◾️特徴 ・AWSによるマネージドNATサービス ・EIPの割り当て可能 ・最大10Gbpsの高パフォーマンス ・ビルトインで冗長化されている高可用性 ・アベイラビリティーゾーン毎に設置する

VPC Flow logs

ネットワークトラフィックを取得しCloudWatchでモニタリングできるようにする機能 ・ネットワークインターフェースを送信元 / 送信先とするトラフィックが対象 ・セキュリティグループとネットワークACLのルールでaccepted / rejectされたトラフィックログを取得 ・キャプチャウィンドウと言われる時間枠(約10分間)で収集、プロセッシング、保存する ・RDS、Redshift、ElasticCache、WorkSpacesのネットワークインタフェーストラフィックも取得可能 ・追加料金はなし

VPCの設定上限

・リージョンあたりのVPCの上限数 5 ・VPC当たりのサブネットの上限数 200 ・AWSアカウント当たりの1リージョン内のElasticIP数 5 ・ルートテーブル当たりのルート上限数 100 ・VPC当たりのセキュリティグループの上限数 500 ・セキュリティグループ当たりのルールの上限数 50

VPCを分割するケース

・アプリケーションによる分割 ・監査のスコープによる分割 ・リスクレベルによる分割 ・本番/ 検証 / 開発フェーズによる分割 ・部署による分割 共通サービスの切り出し

VPC Peering

2つのVPC間でのトラフィックルーティングが可能

・異なるAWSアカウント間のVPC間をピア接続可能 ・一部リージョン間の異なるVPC間のピア接続も可能 ・単一障害点や帯域幅ボトルネックは存在しない

EC2

EC2の概要

数分で利用可能となる従量課金で利用可能な仮想サーバー

・起動、ノード追加、削除、マシンスペック変更が数分で可能 ・汎用的なIntelアーキテクチャを採用 ・管理者権限で利用可能 ・WindowsLinuxなどのほとんどのOSをサポート ・OSまでは提供されているタイプを選択することで自動設定され、OSより上のレイヤーを自由に利用可能 ・独自のAmazon Machine ImageにOS設定を作成し、保存して再利用が可能

EC2とは

利用する単位をインスタンスと呼び、任意のAZにインスタンスを立ち上げてサーバーとして利用する

①利用するAMIイメージ(OSセッティング)を選択 ②インスタンスタイプを選択 ③ストレージを選択 ④セキュリティグループを選択 ⑤SSHキーペアを設定

AMIイメージ

OSセッティング方式を選択すること

リサーブドインスタンス

利用期間を長期指定して利用する形式で、オンデマンドに比較して最大75%割安になる

スポットインスタンス

予備のコンピューティング容量を、オンデマンドインスタンスに比べて割引(最大90%引き)で利用できるEC2インスタンス

・予備用を入札式で利用するためとても安い(最大90%引き) ・起動に通常よりも少し時間がかかる ・予備用のため途中で削除される可能性がある  →一時的な拡張などの用途で利用

Saving Plan

1〜3年の期間に一定の使用量を守ることによりAmazon EC2コストを削減する

リザーブインスタンスと同様に、1年または3年の期間に特定の量の処理能力(USD/時間で測定)を使用する契約を結ぶことで適用される割引契約 ・AWSコンピューティング使用料金を最大72%節約できる ・Amazon EC2AWS Fargate、AWS Lambdaに適用可能

キャパシティーの予約

特定のアベイラビリティーゾーンのEC2インスタンスに対して任意の期間キャパシティーを予約する

物理対応可能なインスタンス

物理サーバーにインスタンスを起動して制御が可能なタイプのインスタンス

・ハードウェア専有インスタンス  専用HWのVPCで実行されるEC2インスタンス  ホストHWにレベルで、他のAWSアカウントに属するインスタンスから物理的に分離する  同じAWSアカウントのインスタンスとはHWを共有する可能性がある

・Dedicated Host  EC2インスタンス容量を完全に利用できる物理サーバー

・Bare Metal  アプリケーションが基盤となるサーバーのプロセッサーとメモリーに直接アクセス可能なインスタンス  AWSの各種サービスとの連携が可能でOSが直接下層のハードウェアにアクセス権限

ストレージ

EC2で直接利用するストレージは不可分なインスタンスストアと自分で設定するEBSの2つ

インスタンスストア  ・ホストコンピュータに内蔵されたディスクでEC2と不可分のブロックレベルの物理ストレージ  ・EC2の一時的なデータが保持され、EC2の停止、終了と共にクリアされる

Elastic Block Store(EBS)  ・ネットワークで接続されたブロックレベルのストレージでEC2とは独立して管理される  ・EC2をTerminateしてもEBSは保持可能で、SnapshotをS3に保持可能  ・別途EBS料金が必要

セキュリティグループ

インスタンスへのトラフィックのアクセス可否を設定するファイアーウォール機能を提供

キーペア

キーペアを利用して自身がダウンロードした秘密鍵とマッチした公開鍵を有するインスタンスにアクセスする

EC2のバックアップ

EC2インスタンスは定期的にバックアップすることが重要

・定期的にバックアップを取る ・定期的にリカバリプロセスを確認する ・複数のAZに重要なアプリケーションをデプロイすること ・ファイルオーバー対応を準備すること ・イベントをモニタリングして対応できるようにすること ・インスタンス起動時に動的IPアドレス処理の設定を行うこと

EBSの概要

EC2にアタッチされるブロックレベルのストレージサービス

◾️基本 ・OSやアプリケーション、データの置き場所など様々な用途で利用される ・実態はネットワーク接続型ストレージ ・99.999%の可用性 ・サイズは1GB〜16TB ・サイズと利用期間で課金

◾️特徴 ・ボリュームデータはAZ内で複数のHWにデフォルトでレプリケートされており、冗長化不要 ・セキュリティグループによる通信制御対象外であり、全ポートを閉じてもEBSは利用可能 ・データは永続的に保存 ・EC2インスタンスは他のAZ内のEBSにはアクセスできない ・EC2インスタンスに複数のEBSを接続することはできるが、EBSを複数のインスタンスで共有することはできない ・同じAZ内のインスタンスに付け替えできる

Snapshot

EBSはスナップショットを利用してバックアップを取得する

◾️特徴 ・Snapshotでバックアップ ・SnapshotからのEBSを復元する際は別AZにも可能 ・SnapshotはS3に保存される ・Snapshotの2世代目以降は増分データを保存する増分バックアップとなる(1世代目を削除しても復元は可能) ・Snapshot作成時にブロックレベルで圧縮して保管するため、圧縮後の容量に対して課金が行われる

スナップショットはリージョン間をまたいで利用可能 Snapshot作成時はデータ整合性を保つため静止点の設定を推奨

◾️Snapshot作成時はデータ整合性を保つため静止点の設定を推奨 ・ソフトウェアの機能を利用 ・ファイルシステムの機能を利用 ・バックアップソフトウェアの機能を利用 ・アプリケーションの停止 ・ファイルシステムのアンマウントなど

◾️保存期間や世代数は無制限 ◾️世代管理が必要な場合はAWS CLIAPI等で自動化する

スナップショットとAMI Amazon Machine ImageはOS設定のイメージであり、Snapshotはストレージのバックアップとなる

◾️AMI ・ECインスタンスのOS設定などをイメージとして保持して新規インスタンス設定に転用するもの

◾️Snapshot ・ストレージ / EBSのその時点の断面のバックアップとして保持するもの ・ストレージの復元や複製に利用

EBSのボリュームタイプ

ユースケースに応じて性能やコストが異なる5種類のボリュームタイプから選択

◾️SSD ・汎用SSD  →仮想デスクトップ  →低レイテンシーを要求するアプリ  →小〜中規模のデータベース  →開発環境

・プロビジョンドIOPS  →高いI/O性能に依存するNoSQLやアプリ  →10,000IOPSや160MB / s超のワークロード  →大規模DB

◾️HDD ・スループット最適化HDD  →ビックデータ処理  →DWH  →大規模なETL処理やログ分析

・コールドHDD  →ログデータなどアクセス頻度が低いデータ  →バックアップやアーカイブ

◾️マグネティック(Magnetic)  →旧世代のボリュームで基本利用しない  →データへのアクセス頻度が低いロークロード

インスタンスストア

EC2が利用するのはインスタンスストアとEBSの2タイプのストレージ

◾️インスタンスストア ・ホストコンピュータに内蔵されたディスクでEC2と不可分のブロックレベルの物理ストレージ ・EC2の一時的なデータが保持され、EC2の停止、終了とともにデータがクリアされる ・無料

◾️Elastic Block Store(EBS) ・ネットワークで接続されたブロックレベルのストレージでEC2とは独立管理 ・EC2で終了してもEBSデータは保持可能 ・SnapshotをS3に保持可能 ・別途EBS料金が必要

IAM

AWSの仕組み

・アンマネージド型  スケーリング / 耐障害性 / 可用性を利用者側で設定し、管理する必要がある  メリット:設置が柔軟に可能  デメリット:管理が面倒

・マネージド型  スケーリング / 耐障害性 / 可用性がサービスに組み込まれており、AWS側で管理される  メリット:管理が楽  デメリット;設定が限定的

IAM

概要

セキュリティに対してAWSとユーザーとで責任分界して対応する(責任共有モデル)

ユーザー側の責任範囲 ・IAMによるアカウント管理 ・セキュリティグループの設定 ・アプリケーションのロールベースのアクセス設定 ・ネットワーク / インスタンスオペレーションシステム(バッチ)などの設定 ・OS / ホストベースのファイアーウォール設置

IAMとは

AWS Identity and Access Management(IAM)は安全にAWS操作を実施するための認証・認可の仕組み →アクセス権限をどう管理するか・どう与えるかなどのアクセス権限全般の管理をする認証などの仕組み

AWS利用者認証の実施 ・アクセスポリシーの設定 ・ユーザー個人またはグループ設定

ユーザー

ルートユーザー

最初に作成されるのがルートユーザー。 普段はあまり使わない。

AWSルートアカウントのメールアドレスやパスワード変更 ・IMAユーザーの課金情報へのアクセスに関するactivate / deactivate ・他のAWSアカウントへのRoute53のドメイン登録の移行 ・CloudFrontのキーペア作成 ・AWSサービス(サポート等)のキャンセル ・AWSアカウントの停止 ・コンソリデイテッドビリングの設定 ・脆弱性診断フォームの提出 ・逆引きDNS申請

IAMユーザー

IAMポリシー内でAWSサービスを利用できるユーザー。 基本操作はIAMユーザーで実施することになる。

設定上限 1アカウントで5000ユーザーまで作成可能

設計内容 ユーザー名 パス(オプション)  ユーザーにオプションとして設定できる情報であり、パスを元にユーザーの検索が可能となる。  組織階層やプロジェクトなどを設定できる。

所属グループ  10のグループまで設定可能。

パーミッション  AWSサービスへのアクセス権限

IAMグループ

設定上限 1アカウントで300グループまで作成可能

設計内容 グループ名

パス(オプション) 組織階層などをセット

パーミッション グループに設定したパーミッションはIAMユーザーに付与したパーミッションと同時に評価する。

IAMポリシー

IAMポリシーを作成してユーザーなどへのアクセス権限を付与(JSON形式)

・管理ポリシー AWS管理ポリシー  AWSが作成および管理する管理ポリシー

カスタマー管理ポリシー  AWSアカウントで作成、管理する管理ポリシー。  同じポリシーを複数のIAMエンティティにアタッチできる。

・インラインポリシー 自身で作成および管理するポリシー  1つのプリンシパルエンティティ(ユーザー、グループ、またはロール)に埋め込まれた固有ポリシーで、プリンシパルエンティティにアタッチすることができる。

IAM設計

AWSを利用するユーザーの役割やアクセス権限を自社の組織構造と合わせて設計することが重要。

ベストプラクティス

1、アカウント設定などの重要な場合を除いて、ルートユーザーを利用しない 2、ルートユーザーなどの特権ユーザーに対して、MFAを有効化する 3、利用者ごとにIAMユーザーを作成する 4、組織利用の場合は、役割ごとのIAMグループを作成してグループで管理するのを基本とする 5、最小限の権限設定と不要な認証情報は削除を心がける 6、ユーザーのために強度の高いパスワードポリシーを設定する 7、EC2インスタンスで作動するアプリケーションなどプログラムから利用する場合はなるべくロールを使用する 8、モバイルやアプリケーションも含め、一時利用にはSTSなどで最小限の利用許可を与える 9、AWSアカウントのアクティビティを常に監視する

AWS Organizations

IAMのアクセス管理を大きな組織でも楽に実施できるようにするマネージド型サービス

複数アカウントの一元管理 ・新規アカウント作成の自動化 ・一括請求

組織という単位を構成して、マスターアカウントがメンバーアカウントを管理するという仕組み

機能セットの選択

支払い一括代行とアカウントの全体管理 ・Consolidated Billing Only  →支払一括代行のみを実施する場合に選択 ・All Feature  →支払一括代行も含めて、企業内の複数アカウントを統制したい場合に選択

マスターアカウントの設定

AWSアカウントの中からマスターアカウントを選定する

Go 構文

Hello world

package main

import "fmt"

// 最初に呼び出される
func init() {
    fmt.Println("Init!")
}

func bazz() {
    fmt.Println("Bazz")
}

// 2番目に呼び出される
func main() {
    // bazz()
    fmt.Println("Hello world!", "TEST TEST")
}

パッケージ(import)

package main

import (
    "fmt"
    "os/user"
    "time"
)

func main() {
    fmt.Println("Hello world!", time.Now())
    fmt.Println(user.Current())
}

変数宣言

var

package main

import "fmt"

var (
    i    int     = 1
    f64  float64 = 1.2
    s    string  = "test"
    t, f bool    = true, false
)

func foo() {
    // :=は関数の中でしか使用できない
    xi := 1
    xi = 2
    xf64 := 1.2
    var xf32 float32 = 1.2
    xs := "test"
    xt, xf := true, false
    fmt.Println(xi, xf64, xf32, xs, xt, xf)

    // Printfの"%T"で型を調べて出力することができる
    fmt.Printf("%T\n", xf32)
    fmt.Printf("%T\n", xi)
}

func main() {
    fmt.Println(i, f64, s, t, f)
    foo()
}

for文

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        if i == 3 {
            fmt.Println("continue")
            continue
        }

        if i > 5 {
            fmt.Println("break")
            break
        }
        fmt.Println(i)
    }

    sum := 1
    for sum < 10 {
        sum += sum
        fmt.Println(sum)
    }
    fmt.Println(sum)
}

defere

package main

import "fmt"

func foo() {
    defer fmt.Println("world foo")

    fmt.Println("hello foo")
}

func main() {
    /*
       foo()
       defer fmt.Println("world")

       fmt.Println("hello")
   */

    fmt.Println("run")
    defer fmt.Println(1)
    defer fmt.Println(2)
    defer fmt.Println(3)
    fmt.Println("success")
}
run
success
3
2
1

スライス

func main() {
    n := []int{1, 2, 3, 4, 5, 6}
    fmt.Println(n)      // [1 2 3 4 5 6]
    fmt.Println(n[2])   // 3
    fmt.Println(n[2:4]) // [3 4]
    fmt.Println(n[:2])  // [1 2]
    fmt.Println(n[2:])  // [3 4 5 6]
    fmt.Println(n[:])   // [1 2 3 4 5 6]

    n[2] = 100
    fmt.Println(n) // [ 1 2 100 4 5 6]

    var board = [][]int{
        []int{0, 1, 2},
        []int{3, 4, 5},
        []int{6, 7, 8},
    }
    fmt.Println(board) // [[0 1 2] [3 4 5] [6 7  8]]

    n = append(n, 100, 200, 300, 400)
    fmt.Println(n) // [1 2 100 4 5 6 100 200 300 400]
}

make

func main() {
    // makeで初期化 make(型type, 長さlen, 容量cap)
    n := make([]int, 3, 5)
    fmt.Printf("len=%d cap=%d value=%v\n", len(n), cap(n), n) // len=3 cap=5 value=[0 0 0]
    n = append(n, 0, 0)
    fmt.Printf("len=%d cap=%d value=%v\n", len(n), cap(n), n) // len=5 cap=5 value=[0 0 0 0 0]

    // スライスのため追加できる
    n = append(n, 1, 2, 3, 4, 5)
    fmt.Printf("len=%d cap=%d value=%v\n", len(n), cap(n), n) // len=10 cap=10 value=[0 0 0 0 0 1 2 3 4 5]

    // 引数を一つにすると長さも容量も同じになる
    a := make([]int, 3)
    fmt.Printf("len=%d cap=%d value=%v\n", len(a), cap(a), a) // len=3 cap=3 value=[0 0 0]

    // 0のスライスをメモリに確保する
    b := make([]int, 0)
    // メモリに確保しない
    var c []int
    fmt.Printf("len=%d cap=%d value=%v\n", len(b), cap(b), b) // len=0 cap=0 value=[]
    fmt.Printf("len=%d cap=%d value=%v\n", len(c), cap(c), c) // len=0 cap=0 value=[]

    c = make([]int, 5)
    for i := 0; i < 5; i++ {
        c = append(c, i)
        fmt.Println(c) // [0] [0 0] [0 0 0] [0 0 0 0] [0 0 0 0 0] [0 0 0 0 0 0] [0 0 0 0 0 0 1] [0 0 0 0 0 0 1 2] [0 0 0 0 0 0 1 2 3] [0 0 0 0 0 0 1 2 3 4]
    }
    fmt.Println(c) // [0 0 0 0 0 0 1 2 3 4]

    var d []int
    d = make([]int, 0, 5)
    for i := 0; i < 5; i++ {
        d = append(d, i)
        fmt.Println(d) // [0] [0 1] [0 1 2] [0 1 2 3] [0 1 2 3 4]
    }
    fmt.Println(d) // [0 1 2 3 4]
}

map

func main() {
    m := map[string]int{"apple": 100, "banana": 200}
    fmt.Println(m)          // map[apple:100 banana:200]
    fmt.Println(m["apple"]) // 100
    m["banana"] = 300
    fmt.Println(m) // map[apple:100 banana:300]
    // 新しい要素を追加
    m["new"] = 500
    fmt.Println(m) // map[apple:100 banana:300 new:500]

    // 存在しない値を取り出すと
    fmt.Println(m["nothing"]) // 0

    // 値の確認
    v, ok := m["apple"]
    fmt.Println(v, ok) // 100 true

    // 存在しない値を確認すると
    v2, ok2 := m["nothing"]
    fmt.Println(v2, ok2) // 0 false

    // mapは返り値を無視することができる
    v := m["apple"]
    fmt.Println(v) // 100 true

    // keyがstring、valueがintのmapを初期化
    // メモリ上に空のマップを作成
    m2 := make(map[string]int)
    m2["pc"] = 5000
    fmt.Println(m2) // map[pc:5000]

    // メモリ上に入れるマップがないためpanicになる
    // マップを初期化していない状態(nil)で値をセットするとpanicになる
    var m3 map[string]int
    m3["pc"] = 5000
    fmt.Println(m3) // panic: assignment to entry in nil map

    // varで宣言した場合はnilになる(スライスでもマップの場合でも)
    var s []int
    if s == nil {
        fmt.Println("Nil") // Nil
    }
}

関数

func add(x, y int) (int, int) {
    return x + y, x - y
}

func cal(price, item int) (result int) {
    result = price * item
    return
}

func main() {
    r1, r2 := add(10, 20)
    fmt.Println(r1, r2) // 30 -10

    r3 := cal(100, 2)
    fmt.Println(r3) // 200

    f := func(x int) {
        fmt.Println("inner func", 1)
    }
    f(1) // inner func 1

    // 省略記法
    func(x int) {
        fmt.Println("inner func", 1)
    }(1) // inner func 1
}

ポインタ

package main

import "fmt"

func main() {
  var p *int

  fmt.Println(p == nil)  // true 定義のみを行ったポインタ型の変数の初期値はnilになり、参照型と同じ様に振る舞う
}

func Double(i int) {
  i = i  * 2
}

func main() {
  var n int = 100

  Double(n)

  fmt.Println(n) // 100
}
0xc000b4008番地 100 変数n(実引数)

↓値渡しでは変数の値をコピーする

0x999b11111番地 100 変数i(仮引数)

↓この後Double関数が実行され、変数iの値が変更される

0x999b11111番地 200 変数i

↓値渡しのため変数nには反映されない(仮引数を変更しても、実引数には反映されない)

fmt.Println(n) // 100
package main

import "fmt"

func main() {
  var p *int

  fmt.Println(p == nil)  // true 定義のみを行ったポインタ型の変数の初期値はnilになり、参照型と同じ様に振る舞う
}

json

import "encoding/json"

encoding/jsonパッケージはRFC4627に準拠したJSONエンコーディングを処理するエンコーダーデコーダーの機能を提供

構造体型からJSONテキストへの変換

関数json.Marshalは、任意の構造体型からJSONテキストへのエンコード処理を実行する 内部的にreflectパッケージのリフレクション機能が使用されており、特別な設定をせずとも構造体型に定義されたフィールド名と値の組み合わせから自動的にJSONテキストを生成する

json.Marshalの戻り値は[]byte型のため、テキストとして確認する場合はstring(bs)のように文字列へ変換する必要がある また、出力されるJSONテキストのキーを構造体フィールド名ではなく、任意の名前にマッピングしたい場合は構造体の「タグ」を利用できる

gorilla/mux

func getArticle(w http.ResponseWriter, r *http.Request) {
        // Vars関数でパラメータの値を取得
    // get http://localhost:8000/articles/1 -> 1を取得
    params := mux.Vars(r)
    fmt.Println(params) // map[id:1]

        // reflect 動的に型を扱いたい場合に便利なパッケージ
        // typeof 型確認
    fmt.Println(reflect.TypeOf(params["id"])) // string

    // Convert Type from String -> Int
    // Not handling err -> _
    i, _ := strconv.Atoi(params["id"])

    // URLに指定したIDの情報を取得
    for _, article := range articles {
        if article.ID == i {
            json.NewEncoder(w).Encode(&article)
        }
    }
}

サーバサイド Go 入門資料 まとめ · GitHub

future-architect.github.iofuture-architect.github.io

Linuxディレクトリ構造

/bin  OSが正常に動作するための実行ファイル(コマンドを実行するためのファイルが入っている、ls・cpコマンドなど)

/boot システムの起動に必要なファイル(あまりいじることはないはず)

/dev  ハードウェア機器を表すファイル

/etc  設定ファイル

/home ユーザーのホームディレクト

/lib   OSに必要なライブラリファイル

/media 外部の記憶媒体をマウント(システムが自動でマウントする場合)

/mnt  同上(ユーザーが自動でマウントする場合)

/opt 追加のアプリケーションがインストール(第三者サードパーティアプリをインストールする場所、Chromeなど)

/proc OSのシステムをコントロール

/root rootアカウントのホームディレクト

/sbin ルートユーザーのみ実行できるプログラム

/sys OSの現在の状況に関する情報

/usr 全ユーザーが共通して利用するプログラムのデータ

/var システム運用中に生成、後から削除されるデータ

 

$ touch 

(ファイル作成)

$ chmod u+rw-x,go+r-wx chownfile

(ファイルモードを「rw-r--r--」に変更)

$ ls -l chownfile

-rw-r--r-- 1 penguin linuc chownfile

 

$ chmod g+w chownfile

(グループにw(書き込み権限)を追加)

$ ls -l chownfile

-rw-rw-r-- 1 penguin linuc

 

$ chmod u-r,o+w chownfile

(ユーザーからr(読み込み権限)を削除、その他にw(書き込み権限)を追加)

$ ls -l chownfile

--w-rw-rw- 1 penguin linuc

 

 

Linuxディレクトリ構造

/bin  OSが正常に動作するための実行ファイル(コマンドを実行するためのファイルが入っている、ls・cpコマンドなど)

/boot システムの起動に必要なファイル(あまりいじることはないはず)

/dev  ハードウェア機器を表すファイル

/etc  設定ファイル

/home ユーザーのホームディレクト

/lib   OSに必要なライブラリファイル

/media 外部の記憶媒体をマウント(システムが自動でマウントする場合)

/mnt  同上(ユーザーが自動でマウントする場合)

/opt 追加のアプリケーションがインストール(第三者サードパーティアプリをインストールする場所、Chromeなど)

/proc OSのシステムをコントロール

/root rootアカウントのホームディレクト

/sbin ルートユーザーのみ実行できるプログラム

/sys OSの現在の状況に関する情報

/usr 全ユーザーが共通して利用するプログラムのデータ

/var システム運用中に生成、後から削除されるデータ

 

 

AWSコアサービス5

コンピューティング

アプリケーションを構築する際にサーバーなどのコンピューティングを起動・実行する関連サービス。

 

Amazon EC2

 →AWSを利用して仮想サーバーを立ち上げるサービス

  ELB / AutoScaling / セキュリティグループも必須

 

AWS Lambda

 →サーバレスでプログラミングコード処理を実行するサービス

 

Amazon Lightsail

 →仮想サーバー、ストレージ、データベース、およびネットワーキングを

  予測可能な低価格で提供

 

Amazon Elastic Container Service(ECS)

 →Dockerコンテナをサポートする拡張性とパフォーマンスに優れた

  コンテナオーケストレーションサービス

 

Lambda

インフラを気にすることなくアプリケーションコードを実行できるデータ処理サービス。

クライアントからのアクセスに対してデータを登録する単純な処理をEC2インスタンスに実行させていれば、

Lambdaに置き換えてサーバレスに実行処理することが可能。

 

Lambdaの特徴

サーバレスによりEC2インスタンスの代わりコードを実行することで効率的なアーキテクチャを実現する。

 

・実行基盤は全てAWSが管理

AWSサービスと連携させることで簡単にイベントドリブンな

 アプリケーションを実装可能

・Node.js / Javaで書かれたコードを実行

・100ミリ秒単位でコード実行時間に対しての課金であり

 コスト効率が非常に高い

・オートスケール

 

Lambdaの仕組み

利用方法もシンプルでWEBアプリやモバイルアプリから簡単に利用可能。

 

Lambdaファンクションを用意する(コーティング)

      ↓

アプリからLambdaを呼び出す

 

Amazon Lightsail

秒単位で簡易にWEBサーバー構成を実現することができるサーバーフルセットを提供するVPSサービス。

 

◾️Lightsail

 ・簡易的に小規模のアプリケーションやWEBサイトを構築するために

  利用するVPSを立ち上げる

 ・サーバー / ストレージ / ネットワーク / スナップショット 、

  ロードバランサー機能、ファイアウォールDNS機能などが

  いくつもの機能が予め揃ったオールインワンで利用することが可能

 

◾️EC2

 ・仮想サーバーを立ち上げて、クラウド上で利用するサービス

  小規模なWEBサーバーとしても大規模システム用のサーバーとしても

  利用可能

 ・ネットワーク、ストレージ、DNSなどは他のAWSサービスを構築して

  アーキテクチャを構成することが必要となる

 

Amazon Lightsailのユースケース

小規模WEBサイトやアプリケーションを構築する際や、スモールスタートする際はLightsailが利用可能。

 

◾️Lightsail

 ・シンプルなWEBサイトを構築する

 ・小規模なアプリケーションを構築する

 ・テスト、開発環境で一時的に利用する

 ・社内ツールや小規模なビジネス用ソフトウェアを起動する際に利用する

 ・スモールスタートでアプリ開発を実施する際に利用する

 

◾️EC2

 ・小規模アプリケーションを構築する

 ・複数台 / 複数レイヤーに及ぶ多層アーキテクチャを構成する際に利用する

 ・複数AZにAutoScalingする冗長性の高い構成を実現する

 ・データ処理やビッグデータ分析用のインスタンスとして処理を実行する

 ・厳密な運用監視によって大規模システムを構築する際に利用する

 

性能に応じた7つの利用プランから選択して利用可能。

オールインワンで値段が設定されており、イメージがつきやすい。

 

コンテナ

コンテナはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離する仮想化方式。

 

Docker

Dockerはコンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム。

 

・コンテナはホストマシンのカーネルを利用し、

 プロセスやユーザなどを隔離する

・Dockerはミドルウェアのインストールや各種環境設定をコード化して管理

           ↓

1、コード化されたファイルを共有するため誰でも同じ環境構築が容易に可能

2、作成した環境を配布共有が容易

3、環境の即時構築、削除が容易なため、CI / CDによる開発ができる

 

Amazonのコンテナサービス

AWSでDockerを実現するための関連サービスはECR / ECS / EKSとFargateの4タイプ。

 

◾️レジストリ

コンテナエンジンに実行されるイメージが保管される場所

Amazon ECR

 

◾️コントロールプレーン

コンテナを管理するサービス

Amazon ECS

Amazon EKS

 

◾️データプレーン

コンテナが実行される環境

AWS Fargate

 

ユースケース分け

◾️Amazon EC2

 →仮想サーバーを単体で利用してアプリケーションを1から

  構成することや、大規模インフラを構成する場合に利用する

 

◾️AWS Lambda

 →単発のジョブなどのシステム処理をサーバレスで

  コスト最適に実行する場合はEC2ではなくLambda関数を利用する

 

◾️Amazon Lightsail

 →安価にシンプルなWEBサイトやアプリを利用したい場合、EC2+EBS+Route53などを構成するよりもLightsail

 

◾️Amazon Elastic Container Service(ECS)

 →環境構築を自動化しつつ、CI / CDを実現した場合はDockerを利用する

 

 

ストレージ

AWSにおいてデータを保存する際に利用する多様なストレージ。

 

◾️Amazon Simple Storage Service(S3)

 →スケーラビリティ、データ可用性、セキュリティ、および

  パフォーマンスを提供するオブジェクトストレージサービス

 

◾️Amazon Elastic Block Store(EBS)

 →EC2にアタッチして利用する専用のブロックストレージ

 

◾️Amazon Elastic File System(EFS)

 →AWSクラウドサービスおよびオンプレミスリソースで使用するための

  シンプルでスケーラブル、かつ伸縮自在な完全マネージド型の

  NFSファイルシステム

 

◾️Amazon S3 Glacier

 →安全性と耐久性に優れ、極めて低コストの

  Amazon S3クラウドストレージクラスで、

  データのアーカイブや長期バックアップに使用する

 

EFS(Elastic File System)

複数のEC2インスタンスからアクセス可能な共有ストレージ。

 

◾️S3

・オブジェクトストレージでリージョンに設置

・HTTPによるAPI経由でアクセス

・大容量のデータを長期保守するためのもの

 

◾️EBS

ブロックストレージでAZに設置

・EC2インスタンスのディスクボリュームとして利用するが、

 物理的ではなくネットワーク経由で利用

・複数のEC2インスタンスにアタッチできない

 

◾️EFS

NASに似たファイルストレージ

ファイルシステムとして利用し、複数のEC2インスタンスでの

 共有アクセスが可能

・S3と異なりインターネットから直接アクセスできない

 

その特徴はシンプルでスケーラブルで柔軟に利用できるファイルストレージであること。

 

◾️シンプル

 ・フルマネージド型サービス

 ・既存のNFSv4などのツールや標準プロトコル / APIでアクセス可能

 

◾️スケーラブル

 ・ペタバイトまでスケーラブルにデータを蓄積

 ・スループット / IOPS性能は自動的にスケーリングし、

  低レイテンシーを維持

 

◾️柔軟性

 ・ファイルの減少に合わせて自動て拡張、縮小

 ・事前に容量を設定する必要なし

 ・使った分だけの従量課金

 

Amazon S3 Glacier

バックアップなど中長期保存用のS3よりも安価なストレージ。

・S3と同じ耐久性で値段が安い

・データ取得などの迅速性がない

 

Glacierの特徴

Amazon S3 Glacierでは、データはアーカイブに保存される

・1つのアーカイブの最大サイズは40TB

・保存可能なアーカイブ数とデータ量に制限なし

・各アーカイブには作成時に一意のアーカイブIDが割り当てられ、

 作成後はアーカイブを更新できない

アーカイブを保存するためのコンテナとしてボールトを使用

 (1つのAWSアカウントでは、最大1,000個のボールとを使用)

Amazon S3のライフサイクルルールと連携させることにより、

 Amazon S3データのアーカイブを自動化し、

 全体的なストレージコストを削減

・Advanced Encryption Standard(AES)256ビット対称鍵を使用して

 デフォルトで自動的に暗号化

・S3と違って直接データをアップロード、取得という処理ができないため、

 S3ライフサイクル管理からか、プログラム処理による

 アップロード / ダウンロードが必要

・Glacierの最低保持期間は90日

 

Glacierのデータ取出タイプ

Glacierのデータ取得タイプの設定に応じてデータ取得時間と取得時の料金が変わる。

 

◾️迅速

 ・迅速取り出しでは、アーカイブのサブセットが迅速に

  必要になった場合にデータに素早くアクセスするモード

  通常1〜5分以内で使用可能になる

 

◾️プロビジョニングキャパシティ

 ・プロビジョンドキャパシティーは、迅速取り出しの取得容量を必要な時に利用できることを保証する仕組み

 

◾️標準

 ・標準取り出しでは、数時間以内に全てのアーカイブ

  アクセスできるデフォルト設定

  通常、標準取り出しは3〜5時間で完了

 

◾️大容量

 ・大容量取り出しは、もっとも安価な取り出しオプションであり、

  大量のデータ(ペタバイドのデータを含む)を

  1日以内に低コストで取得できる

  通常、大容量取り出しは5〜12時間で完了

 

Glacier Deep Archive

Glacierよりも値段が安くデータ保存が可能だが、データ取得はさらに遅くなる中長期保存用ストレージタイプ。

 

・Glacierよりさらに値段が安い

・Glacierよりさらにデータ取得が遅い

 

・基本的なデータモデル、管理はGlacierと同じ

・1GBあたりの月額料金0.00099USDから利用可能でAWSの最低価格

・データは3つ以上のAWSアベイラビリティゾーンにまたがって保存され、

 S3と同様に99.999999999%の耐久性を実現

・標準取り出しで、データは12時間以内に取り出すことが可能

・大量取り出しで48時間以内にデータを取り出す

 大容量取り出しをすることで取得コストを低減できる

 

◾️Amazon Simple Storage Service(S3)

 →インターネットアクセス / EC2インスタンス間で共有 / 大容量データを

  保存したいケースは基本はS3を利用する

 

◾️Amazon Elastic Block Store(EBS)

 →EC2インスタンスにアタッチして、アプリケーションを構成するための

  ボリュームディスクとして利用する場合はEBSを利用

 

◾️Amazon Elastic File System(EFS)

 →インターネットアクセスは不可で、EC2インスタンス間での

  データ共有をする場合はEFSを共有ストレージとして利用

 

◾️Amazon S3 Glacier

 →データバックアップなど中長期にアクセス頻度が低いデータを

  保存する場合にコスト最適を目指してGlacierを選択する

 

 

ネットワーキングとコンテンツ配信

ネットワークやコンテンツ配信・AWS環境への接続設定に利用するサービス。

 

◾️Amazon VPC

 →IPアドレス範囲の選択、サブネットの作成、ルートテーブルや

  ネットワークゲートウェイの設定など、仮想ネットワーキング環境を

  構築するサービス

 

◾️Amazon CloudFront

 →低レイテンシーの高速転送により世界中の視聴者に安全に配信する高速コンテンツ配信ネットワークCDN)サービス

 

◾️Amazon Route53

 →DNSサーバーの機能を提供し、ドメイン変換とルーティングを実施するサービス

 

◾️AWS Direct Connect

 →AWSとデータセンター、オフィス、またはコロケーション環境との間にプライベート接続を確立する専用線サービス

 

◾️Amazon API Gateway

 →リアルタイム双方向通信アプリケーションを実現するRESTfulAPI

  およびWebSocketAPIを作成、管理する

 

◾️AWS Storage Gateway

 →オンプレミスから実質無制限のクラウドストレージへのアクセスを

  提供するハイブリッドクラウドストレージサービス

 

CloudFront

AWSが提供するCDN(Content Delivery Network)サービス。

CDNはWEBコンテンツ配信処理を高速化するためのサービス。

 

大規模なアクセスも世界中にあるエッジのキャパシティを活用して効率的かつ高速にコンテンツ配信が可能なサービス。

・200以上のエッジサーバによる高性能な分散配信

・高いパフォーマンス

AWS WAF / AWS Shied / AWS Certificate Managerとの連携や

 DDoS対策によるセキュリティ機能

・オリジンに対してHeader / Cookie / Query Stringによる

 フォワード指定で、動的なページ配信が可能

 

Direct Connect

お客様のデータセンターやオフィスを専用線などを介してAWSへプライベートに接続するサービス。

 

メリット

・安価なアウトバウンドトラフィック料金

・ネットワーク信頼性の向上

・ネットワーク帯域幅の向上

 

Direct Connectの特徴

VPNの方が安く素早く利用できるが、信頼性や品質は専用線が勝る。

 

◾️コスト

 VPN

  →安価なベストエフォート回線が利用可能

 専用線

  →キャリアの専用線サービス契約が必要となりVPNより割高

 

◾️リードタイム

 VPN

  →クラウド上での接続設定で可能なため即時

 専用線

  →物理対応が必要なため数週間

 

◾️帯域幅

 VPN

  →暗号化のオーバーヘッドにより制限がある

 専用線

  →ポートあたり1G / 10Gbps

 

◾️品質

 VPN

  →インターネット経由のためネットワーク状態の影響を受ける

 専用線

  →キャリアにより高い品質が保証される

 

◾️障害切り分け

 VPN

  →インターネットベースのため自社で保持している範囲以外の

   確認は難しい

 専用線

  →物理的に経路が確保されているため比較的容易

 

API Gateway

API GatewayAPI作成 / 管理をフルマネージド型サービスで提供。

 

・最大数十万個のAPI同時呼び出し、受付が可能

・アクセス制御の管理

DDoS攻撃対応やスロットリングによるバックエンド保護

・EC2 / Lambda / 任意のウェブアプリケーション

 ワークロード処理を実行する

・Lambdaと密接に統合されている

・WebSocketを利用したリアルタイムかつ双方向通信のAPIも処理可能

 

 API Gateway : APIとは

APIを通じてリクエストとレスポンスにより、他サービスの機能やデータを呼び出すことができる。

 

【専門的には】

APIアプリケーションソフトウェア開発に利用される標準的な

 インターフェース群のこと

・中でもWEB APIはWEB上で他のサービスを呼び出す方式や取り決め

 

 API Gatewayユースケース

API Gatewayを連携口として外部アプリとの連携を実現する。

 

AWS Storage Gateway

標準的なストレージプロトコルを利用して外部システム環境とAWSのストレージサービスとを接続するサービス。

 

AWS Storage Gatewayの利点

AWSが有する機能や性能を活用できることが大きな利点。

 

・標準的なストレージプロトコルを活用したシームレスな統合

・キャッシュを活用した低レイテンシなアクセスが可能

AWSストレージサービスの堅牢性、低コスト、拡張性

・効率的なデータ転送

AWSのモニタリング、管理、セキュリティとの統合

 

AWS Storage Gatewayの用途

データ移転や保存などAWSストレージを利用したい場面に用いる。

 

・ビックデータ処理 / クラウドバースティング / システム移行のために

 データをAWSストレージに移動させたいケース

・バックアップ、アーカイブ、災害対策としてAWSにデータを保持

・オンプレミス環境で容易にAWSストレージを活用

 

Storage Gatewayのタイプ

利用するデータタイプに応じて4つのゲートウェイを利用する。

 

◾️ファイルゲートウェイ

 →Amazon S3オブジェクトにStorage Gatewayを経由して

  ファイルデータを格納

 

◾️キャッシュ型ボリュームゲートウェイ

 →頻繁にアクセスされるデータはローカルのストレージゲートウェイ

  保持しながら、Amazon S3をプライマリデータストレージとして使用

 

◾️保管型ボリュームゲートウェイ

 →保管型ボリュームを使用すると、プライマリデータをローカルに

  保存する一方で、そのデータを非同期にAWSにバックアップ

 

◾️テープゲートウェイ

 →Amazon S3とGlacierにデータを保管する仮想テープストレージとVTL管理

 

 

データベース

AWSでは様々なタイプのデータベースサービスがマネージド型サービスで提供されている。

 

◾️Amazon RDS

 →MySQLPostgreSQLOracleSQL ServerMariaDB向けの

  マネージドリレーショナルデータベースサービス

 

◾️Amazon Aurora

 →MySQLおよびPostgreSQLと互換性のあるクラウド向けの分散、

  高速化されたリレーショナルデータベース

 

◾️Amazon DynamoDB

 →規模に関係なく数ミリ秒台のパフォーマンスを実現する、

  key-valueおよびドキュメント型のNoSQL型のデータベース

 

◾️Amazon ElastiCache

 →RedisまたはMemcachedに互換性のある完全マネージド型の

  インメモリ、キャッシュDB(NoSQL型)

 

◾️Amazon Redshift 

 →高速かつシンプルで、費用対効果の高いデータウェアハウス

 

Aurora

クラウド時代の新しい分散型のリレーショナルデータベースとして誕生。

 

Amazonクラウド時代に適したリレーショナルDBを

 1から考えて構築された新RDB

・その特徴はNoSQL型の分散高速処理とRDBとしての

 データ操作性を両立させたこと

 

MySQLと2.5〜5倍の性能を商用データベースの10分の1の価格で提供する高性能、低コストDB。

 

RDSにおいてデータベースソフトウェアの1つとして選択。

 

Auroraの特徴

高い並列処理性能によって大量の読み書きをするのに適したDB。

 

・高い並列処理によるストレージアクセスによって

 クエリを高速処理することが可能

・Auroraは大量の書き込みや読み込みを同時に扱うことができる

・データベースの集約やスループット向上が見込まれる

・ただし、全てが5倍高速というわけではなく、

 適用するべき領域を見つけて利用する

 

MySQL / PostgreSQLと互換性があり、同じ操作方法とそのコミュニティを利用することが可能。

 

DynamoDB

完全マネージド型のNoSQLデータベースサービス。

 

・ハイスケーラブルで無制限に性能を拡張できる

・負荷が高くなっても応答速度が低下しない低レイテンシー

・高可用性(SPOFなしでデータは3箇所のAZに保存)

・マネージド型のためメンテナンスフリー:CloudWatchで運用

 

・プロビジョンドスループット

 →テーブルごとにReadとWriteに必要なスループットキャパシティを

  割り当てる

・ストレージの容量制限がない

 →データ容量の増加に応じたディスクやノードの増設は一切不要

 

DynamoDBのできること

キーバリュー(ワイドカラム型)でデータを簡易に操作することができる。

 

出来ること

・キーに対するバリュー(値)のCRUD操作

・簡易なクエリやオーダー

・例えば、数万人以上が同時アクセスして処理が必要になる

 アプリケーションのセッションデータ処理など

 

できないこと / 向いていないこと

・JOIN / TRANSACTION / COMMIT / ROLLBACKは不可

・詳細なクエリやオーダー(データの検索や結合処理などには向いていない)

・大量のデータ読み書きにはコストがかかる

 

ElastiCache

分散インメモリキャッシュサービスの構築、管理およびスケーリングを容易に実施することができるサービス。

 

・キャッシュクラスタを数クリックで起動

・フルマネージド型でモニタリング、自動障害検出、復旧、拡張、

 パッチ適用、バックアップに対応し高可用性を実現

・広く利用されている2種類のエンジンmemcached / redisから選択可能

 

インメモリキャッシュ

ElastiCacheはメモリ+キャッシュというデータベース。

 

インメモリキャッシュとは

メモリを活用して高速にキャッシュへのアクセスを可能にしたデータベースの仕組み。

 

オープンソースのRedisとMemcachedを利用可能で汎用性あり。

 

Redis

・高速に値をRead / Writeできるインメモリキャッシュ型DB

・シングルスレッドで動作するインメモリキャッシュDBで

 全てのデータ操作は排他的

・スナップショット機能がある

・データを永続化できる

 

Memcached

・高速に値をRead / Writeできるインメモリキャッシュ型DB

・マルチスレッドで動作するインメモリキャッシュDB

・スナップショット機能がない

・データを永続化できない

・ファイルオーバーや還元ができない

 

Redshift

高速でスケーラブルな費用対効果の高いマネージド型のDWH / データレイク分析サービス。

 

・数百ギガバイトのデータから開始して、ペタバイト以上まで拡張

・1テラバイトあたり年間1,000USD以下で利用可能

・自動ワークロード管理など自動テーブルメンテナンスなど多くのメンテナンスタスクやデータ配置が自動化されているフルマネージド型

PostgreSQL互換の列指向データモデル

・複数ノードをまとめたクラスター構成

 単一AZで起動し、マルチAZ構成は不可

・RA3インスタンスで最大で他のクラウドデータウェアハウスの

 3倍に達するパフォーマンス

・AQUAによる分散キャッシュで、Redshiftが他のクラウドデータウェアハウスに比べて最大10倍の速度で動作

 

データレイク

S3はデータレイクとしてデータ活用のハブとして利用できる。

 

 

アイデンティティ・セキュリティコンプライアンス

AWSでのセキュリティやコンプライアンスに寄与するサービス。

 

◾️AWS Identity & Access Management(IAM)

 →AWSのサービスやリソースへのアクセスを安全に管理する

  アクセス管理サービス

 

◾️Amazon GuardDuty

 →悪意のある操作や不正な動作を継続的に

  モニタリングする脅威検出サービス

 

◾️Amazon Inspector

 →自動化されたセキュリティ評価サービスで、

  AWSにデプロイしたアプリケーションのセキュリティと

  コンプライアンスを向上させることができる

 

◾️AWS Key Management Service

 →暗号化キーを簡単に作成して管理し、幅広いAWSのサービスや

  アプリケーションでの使用を制御する

 

◾️AWS CloudHSM

 →法令遵守のためのハードウェアベースキーストレージ

 

◾️AWS WAF

 →一般的なウェブの脆弱性からウェブアプリケーションまたは

  APIを保護するウェブアプリケーションファイアウォール

 

◾️AWS Shield

 →マネージド型の分散サービス妨害(DDoS)保護サービス

 

◾️AWS Artifact

 →AWSコンプライアンスレポートにオンデマンドで

  アクセスできる無料のセルフサービスポータル

 

AWSリソースの暗号化

通信・保存されるデータ、リソースの暗号化と接続の暗号化を実施可能。

 

◾️通信の暗号化

 →SSL / TLSを使用してDBインスタンスへの接続を暗号化する

 ・AWS Certifacate Managerを利用してSSL / TLS証明書を発行、

  管理することが可能

 ・ACMとCloudFrontやRoute53を連携してSSL / TLS通信を可能にする

 

◾️保管データの暗号化

 →保管時のデータリソースを暗号化する

 ・AWSが所有するキーを使用して、デフォルトでデータを暗号化する

 ・AWS KMSを利用して作成したデータ暗号化と

  キー管理プロセスを管理することも可能

 ・CloudHSMという世界中のセキュリティ基準に準拠するための

  ハードウェア型キー管理サービスも利用可能

 

AWS KMS

AWS KMSは簡単にデータを暗号化するためのマネージド型暗号化サービス。

 

・暗号鍵の作成、管理、運用を実施するマネージドサービスで

 AWSマネジメントコンソール、AWS SDKまたはCLIを使用して、

 キーを作成、インポート、ローテーション、削除、管理する

・IAMと連携して鍵のアクセス管理を実施

・カスタマーマスターキー(CMK)の無効化、有効化、削除を実施し、

 1年ごとの自動キーローテーションすることが可能

・CMKを外部から持ち込んで管理することも可能

・キーを保護するためにFIPS140-2の検証済みまたは

 検証段階のハードウェアセキュリティモジュールを使用

AWS CloudTrailと統合されており、全てのキーの使用ログを表示

・RDSやS3などの多数のAWSサービスに適用可能

・KMS SDKを利用することで、アプリケーションにおける暗号化も可能

 

RDSでは保存されるデータ・リソースの暗号化と接続の暗号化を実施可能。

 

◾️カスタマーマスターキー

 ・暗号化を実行する上で、最初に作成されるマスターキー

 ・暗号化キーを暗号化する

 ・ローテーションされる

 

◾️カスタマーデータキー(暗号キー)

 ・実際のデータの暗号化に利用するキー

 ・KMSで生成されてCMKで暗号化される

 

◾️エンベロープ暗号化

 ・マスターキーで暗号化をせずに、暗号化したデータキーを利用して

  暗号化する暗号化方式

 

エンベロープ暗号化

AWS KMSは簡単にデータを暗号化するためのマネージド型暗号化サービス。

・データキーをマスターキーによる暗号化を実施

・カスタマーマスターキー(CMK)を利用してデータキーを暗号化する

 

データの保護:暗号化

CloudHSMは不正使用防止策が取られている専用HWモジュール(HSM)により暗号キーを保護するサービス。

厳しい暗号化要件に対応するために利用。

 

権限管理:AWS Directory Service

ディレクトリサービスとはユーザに関わる各種情報を保管してユーザー認証を実現する仕組み。

 

◾️管理するユーザー情報

 ID、ユーザー名、名字氏名、部署、グループ、担当、電話番号

 

◾️実現する機能

 ・IDとアクセス管理

  運用効率の向上、コンプライアンス向上、セキュリティの強化

 ・アプリのアクセス制御

  ファイル共有、パッチ管理など

 

AWSに新しいディレクトリを作成するか、既存のActive Directory認証を利用した制御を実現。

 

権限管理:Security Token Service(STS

STSは限定的で一時的なセキュリティ認証情報を提供するサービス。

 IAMユーザー・認証済ユーザー

   ↓

 STSの発行

   ↓

 一時的な利用者

 

ユーザー認証機能:Cognito

アプリケーションにユーザー認証機能を付与したい場合はCognitoを利用する。

 

検出制御

監視やモニタリングを継続的に実施してセキュリティを高める。

 

・CloudTrail

 →AWSユーザーの行動ログを取得し、ガバナンス、コンプライアンス

  及び運用とリスクの監査を行えるように支援する

 

・CloudWatch

 →AWSリソースとAWSで実行するアプリケーションに対して、

  様々なメトリクスやログを収集、追跡するモニタリングサービス

 

AWS GuardDuty

 →AWS上での悪意のある操作や不正な動作を

  継続的にモニタリングする脅威検出サービス

 

Amazon Inspector

 →自動的にアプリケーションを検証し、その露出、脆弱性

  ベストプラクティスからの逸脱状況を確認し、

  セキュリティ評価を実施するサービス

 

IAM Access Analyzer

監視やモニタリングを継続的に実施してセキュリティを高める。

 

AWS GuardDuty

機械学習などを利用してAWSインフラやアプリのセキュリティ上の脅威リスクを検知するサービス。

 

AWS Inspector

Amazon EC2にエージェントを導入し、プラットフォームの脆弱性を診断するホスト型診断サービス。

 

AWSリソースに対して、オンデマンドで自動的にシステム設定や振る舞いを分析することが可能

・組み込みルールパッケージ

 CVE(Common Vulnerabilities & Exposures)

 CIS(Common for Internet Security)

 ベストプラクティスに基づいたルール

 実行時のふるまい分析

・推奨対応手順が含まれた詳細レポート

API連携による開発プロセスとの統合

 

AWS Shield

L3 / L4におけるDDoS攻撃に対する自動緩和システムをCloudFrontとRoute53に対して自動適用する無料サービス。

 

・L3 / L4における自動緩和システムをエッジロケーションで適用する

・対象となるのはCloudFrontとRoute53のエッジロケーションの前に

 インラインで配置され、全ての着信パケットを検査

DDoS攻撃の96%を自動軽減

・Standard版は無料 / Advanced版は有料

 

Advanced版を利用することで、WAFと連携して大規模な攻撃から強力な防衛を実行可能。

 

◾️Standard

 ・L3 / L4のDDoS攻撃に対応

 ・無料で全ユーザーに適用される

 ・SYN / UDPフラッド、反射攻撃などから防衛

 ・自動検知と自動緩和を実行

 ・CloudFrontとRoute53などのサービスに組み込まれて自動で実行

 

◾️Advanced

 ・L3 / L4に加えてWAFと連携してL7のDDoS攻撃への防御を実施

 ・より大規模な攻撃から防御する

 ・AWS DDoSレスポンスチーム(DRT)に24時間365日アクセス

 ・リソースの使用量の急増からAWSの請求を保護する

  スケーリングへのDDosコスト保護が可能

 ・レポーティング

 

AWS WAF

WEBアプリケーションのトラフィック通信を検査して脆弱性への攻撃や不正アクセスを遮断するファイアウォールサービス。

 

SQLインジェクション、クロスサイトスクリプトなど

 悪意のあるリクエストを遮断

・遮断方式でカスタムルールを設定

 (Rate-basedルール / IPベースフィルター / 正規表現パターン /

  サイズ制御 / アクション許可・拒否設定)

・CloudWatchと連携したモニタリング

 

AWS Artifact

重要なコンプライアンス関連情報の頼りになる一元管理型のリソース。

 

AWS Artifact Reports

 →世界各地にある監査期間の指定する基準や規制を遵守状況を

  テスト及び確認したコンプライアンスレポートを提供

 

AWS Artifact Agreements

 →AWSアカウントとの契約の確認、受託、管理を実施

 

 

マネジメントとガバナンス

運用保守やサポートに関する支援ツールやサービス。

 

準備系サービス

◾️Amazon Control Tower

 →ベストプラクティスに基づき安全性と適合性を備えた、

  複数アカウントAWS環境を設定及び管理するサービス

 

◾️AWS Organizations

 →複数のAWSアカウント全体の一元管理と一括請求

 

◾️AWS Budgets

 →予算のしきい値を超えた時にアラートを発信するカスタム予算を設定

 

◾️AWS License Manager

 →ソフトウェアベンダーからのソフトウェアライセンスを

  簡単に管理するサービス

 

◾️AWS Well-Architected

 →AWSアーキテクチャ設計原則の確認とワークロードの見直しと

  改善を支援

 

AWS Control Tower

ベストプラクティスに基づき安全性と適合性を備えた、複数アカウントAWS環境を設定及び管理するサービス。

 

AWS License Manager

ソフトウェアベンダーからのソフトウェアライセンスを簡単に管理するサービス。

 

・ライセンスの利用数やライセンスの利用条件を登録

・ライセンスの利用状況を追跡して管理することが可能

コンプライアンス違反などのライセンスルールに反する

 利用状況を可視化する

・既存ライセンスを自動検出するなどの一元的な管理を実現

ダッシュボードを利用して可視化して、管理可能

 

展開系サービス

運用保守やサポートに関する支援ツールやサービス。

 

◾️AWS CloudFormation

 →AWSクラウド環境内の全インフラリソースを記述して

  テンプレート化して展開する環境自動設定サービス

 

◾️AWS Elastic Beanstalk

 →WEBアプリケーションの定番構成の構築、デプロイの自動化サービス

 

◾️AWS OpsWorks

 →OpsWorksはChefまたはPuppetを使用してアプリケーションを設定

  及び運用するための設定管理サービス

 

◾️AWS Service Catalog

 →AWS上でデプロイされているITサービスの一元的な管理を

  実施するサービス

 

◾️AWS Maketplace

 →EC2インスタンスの起動に使用できるAMIなど、

  AWSで実行されるソフトウェアを購入できるオンラインストア

 

CloudFormation

AWSクラウド環境内の全インフラリソースを記述してテンプレート化して展開する環境自動設定サービス。

 

・プロビジョニングされたリソースの変更、削除が可能

・追加リソースへの通常課金のみで追加料金なし

JSON / YAMLで記述する

クロスリージョンとクロスアカウントで管理

・直接サポートされていないリソースや機能を利用する場合は

 カスタムリソースでスタック作成の一部に

 独自ロジックを組み込むことが可能

 

JSON / YAMLなどのコードでインフラ構築方式がポリシーとして定義されており、それに基づいて仮想化インフラが構築可能。

 

Elastic Beanstalk

WEBアプリケーションの定番構成の構築・デプロイの自動化サービス。

 

・早く簡単にアプリケーションをデプロイするサービス

JavaPHPPython、Node.js、.NET、Docker、Goに対応して

 WEBアプリケーションを展開できる

Apache、Nginx、Passenger、IISなど使い慣れたサーバーでデプロイ及びスケーリングが可能

・コードをアップロードすればキャパシティのプロビジョニング、

 ロードバランシング、Auto Scalingからアプリケーションの

 ヘルスモニタリングまでデプロイを自動化できる

 

Elastic Beanstalkのユースケース

WEBアプリケーションのデプロイを容易にすることや、タスク時間の長いロークロードの展開に利用する。

 

◾️ウェブサーバー環境

 ・ELB + Auto Scalingでスケーラブルな構成をコード化して

  バージョンとすることで、スケーラブルなウェブアプリケーション

  実行できる

 ・単一コンテナのDockerコンテナを実行可能

 ・複数コンテナはECSを使用した環境実行が可能

 

◾️ワーカー環境

 ・SQS + Auto Scalingでスケーラブルなバッチ処理ワークを実現

 ・定期的なタスク実行基盤の作成

  毎日深夜1時に動作するバックアップ処理

 ・ワーカーホスト内でWebアプリケーションを動作させ、

  ワークロードの時間が係る処理を実行させる

 

OpsWorks

OpsWorksはChefまたはPuppetを使用してアプリケーションを設定及び運用するための設定管理サービス。

Chefは様々な形式のインフラへのサーバやアプリケーションの展開を容易にする環境自動化フレームワーク

OpsWorksはこのChefやPuppetによるインフラ設定・運用の仕組みをAWS上でマネージド型サービスとして提供している。

 

Elastic Beanstalk VS OpsWorks

WEBアプリのデプロイに特化したElastic Beanstalkに対して、OpsWorksは様々なアプリケーションに対応する高度なインフラ環境構築が可能。

 

◾️Elastic Beanstalk

 ・アプリケーションのデプロイ自動化

  ウェブアプリケーションやサービスを使い慣れたサーバーにおいて

  デプロイとスケーリングするためのサービス

 

◾️OpsWorks

 ・インフラ設定自動化

  ChefやPuppetのマネージド型インスタンスのサーバー設定、デプロイ、

  管理を自動化できるようになるインフラの設定管理サービス

 

AWS Service Catalog

AWSで承認されたITサービスのカタログを作成及び管理する支援サービス。

 

◾️IT運用管理者

 CloudFormationのテンプレートを利用して、

 管理されるAWSリソース定義や、これらの利用権限をカタログとして

 一元管理する機能を提供

 

◾️ユーザ部門

 IT運用管理者が作成したカタログより、権限がなくとも求める機能に

 応じたAWS環境を必要に応じて起動が可能になる

 

AWS Marketplace

AWSで利用できるソフトウェアなどが売り買いできるオンラインストア

 

運用・操作系のサービス

運用保守やサポートに関する支援ツールやサービス。

 

◾️Amazon CloudWatch

 アプリケーションを監視し、リソース使用率の最適化を行い、

 運用上の健全性を統括的に把握するモニタリングサービス

 

◾️AWS CloudTrail

 ユーザーアクティビティとAPI使用状況の追跡するログ取得サービス

 

◾️AWS Config

 AWSリソースの設定を評価、監査、審査できるサービス

 

◾️AWS Systems Manager

 AWSの様々なサービスの運用データを確認でき、AWSリソース全体に

 関わる運用タスクを自動化する運用支援サービス

 

◾️AWS Personal Health Dashboard

 AWSのサービス状態のパーソナライズされた表示

 

◾️AWSサポート

 AWSによるサポートサービス

 ベーシック / 開発者 / ビジネス / エンタープライズプランの4つ

 

AWS Config

AWSリソースのレポジトリ情報からリソース変更履歴や構成変更を管理するサービス。

 

AWSリソースの構成変更をロギングして保存する

・履歴も定期的に構成情報スナップショットとして取得し、S3に保存

・構成情報に基づきシステム構成があるべき状態になっているかを評価

・評価基準にはAWSルールまたは独自ルールを適用

 

AWS Configには構成変更を管理するストリームと履歴管理するヒストリーと構成要素を保存するスナップショットがある。

 

◾️Configuration Stream

 ・リソースが作成、変更、削除に対して作成され構成ストリームに

  追加される

 ・SNSトピック連携して通知設定が可能

 

◾️Configuration History

 ・任意の期間における各リソースタイプの構成要素を履歴として蓄積

 ・S3バケットに保存

 

◾️Configuration Snapshot

 ・ある時点での構成要素の集合

 ・自動で定期的あるいは変更トリガで作成

 ・S3バケットに保存

 

AWS System Manager

利用中のAWSサービスやリソースをモニタリングして、運用タスクを自動化する統合監視サービス。

 

◾️問題検出の時間短縮

 EC2などをリソースグループごとに運用データを確認できるため、

 アプリケーションに影響を与えうるリソースの問題を素早く特定可能

 

◾️運用の自動化

 EC2パッチ、更新、設定変更・削除・停止及びデプロイなどを自動化

 

◾️可視化と制御

 各リソースグループの最新状態を簡単に可視化して制御できる

 

◾️ハイブリッド管理

 AWSサーバーとオンプレミスのサーバーとを

 1つのインターフェイスで管理可能

 

AWS Personal Health Dashboard

運用保守やサポートに関する支援ツールやサービス。

 

AWSサポート

AWSによる人的なオペレーターによる問い合わせや不具合サポートプラン。

 

 

アプリケション統合

アプリケーション間の通信制御やフロー作成・データ連携などに利用するサービス。

 

◾️SNS

 完全マネージド型 pub / sub メッセージング

 

◾️SQS

 完全マネージド型のメッセージキューイングサービス

 

◾️SES

 Eメール送受信サービス

 

Amazon Simple Notification Service(SNS

Amazon SNSはフルマネージド型のプッシュ型通知サービスで他のサービスとの非同期通信を可能にする。

 

送信側がトピックを作成して受信側をポリシー指定することで制御された非同期通信を実現する。

 

SNSの特徴

AWSの様々なサービスと連携して通知可能で、疎結合アーキテクチャに利用できる。

 

・単一発行メッセージ

・メッセージ通信順番は保証されない

・取り消し不可

・配信ポリシーによる再試行を実施

・メッセージサイズは最大256KB

 

SQS

SQSはキューを溜め込んでポーリング処理を実施するサービス。

 

ポーリングとは

一旦中継所に通信内容を貯めておいて、受信側のタイミングがいいときに通信を行う。

 

SQSの特徴

フルマネージド型で提供され、高可用性・高スケーラビリティ・高スループット・低コストを実現。

 

・複数のサーバー / データセンターにメッセージを保持する高可用性構成

・多数の送信者と受信者に対応可能なスケーラビリティの確保

・メッセージが増加しても高スループットを維持できる

・無料枠と従量課金による低コスト

 

Amazon Simple Email Service(SES)

フルマネージド型 / サーバーレス型のコスト効率に優れたEメールサービス。

 

・スケーラブルな構成で信頼性が高いマネージド型

・メール送信:トランザクションメールなどの高品質なコンテンツを

       顧客に送信可能

・メール受信:受信したメールをトリガーにS3やLambdaなどを起動可能

・バウンズ処理:メールが送れなかった場合の処理を規定

 

ユースケース分け

◾️SNS

 AWS上でイベント通知やメッセージング処理 / プッシュ通知をするといった場合はSNS

 

◾️SQS

 AWS上でキューイング処理 / タスク並列分散処理 /

 ポーリング・Pull型の通知をする場合はSQS

 

◾️SES

 Eメール送受信機能を利用する場合はSES

 

 

移行と移転

AWSクラウドへのインフラ移行やデータ移行に利用するサービス。

 

◾️AWS Application Discovery Service

 サーバーの設定データ、使用状況データ、動作データが収集して

 サーバーの使用率データや依存関係のマッピングなどの移行に

 必要な情報を提供するサービス

 

◾️AWS Database Migration Service

 データベースを短期間で安全にAWSに移行することが可能

 データベース移行ツール

 

◾️AWS Server Migration Service

 数千のオンプレミスワークロードを従来よりも簡単に、

 かつ短時間でAWSに移行できるエージェントレスサービス

 

◾️AWS Snow ファミリー

 エッジでデータを収集して処理し、AWSとの間でデータを移行する、

 非常に安全なポータブルデバイス

 

AWS Application Discovery Service

サーバーの使用率データや依存関係のマッピングなどの移行に必要な情報を提供するサービス。

 

クラウドに何を移行するのか

 対象機器の情報把握(VMware / Windows / Linux環境の情報把握)

・現状の機器やソフトウェアの依存関係の把握

・手作業による手間を省く

 

AWS Database Migration Service

データベースを短期間で安全にAWSに移行することが可能なデータベース移行ツール。

 

AWS Server Migration Service

数千のオンプレミスワークロード・サーバーを従来よりも簡単にかつ短時間でAWSに移行できるエージェントレスサービス。

 

・簡単に大量のサーバーを移行できるサービスで、

 1アカウントで同時に50VMまで移行可能

・エージェントレス型で移行を実施

・オンプレミスのVMwareに対して増分変更をキャプチャして、

 AWSに自動的に転送するVM専用の移行ツール

・移行先のAWSでAMIを作成して、EC2インスタンスに移行することが可能

 

AWS Snowファミリー

物理ストレージデバイスを使用し、インターネットを迂回してAWSに直接大容量データを転送するサービス。

 

Snowball

ペタバイト規模のデータ移行の際に利用するアプライアンスで現在はSnowball Edgeに世代交代済。

 

・オンプレミスのデータストレージロケーションとAmazon S3との間でデータのインポートおよびエクスポートができる

・Snowballでは全てのリージョンで80TBモデルを使用可能

・暗号化が強制、保管中や輸送中のデータを保護

AWS Snowballマネジメントコンソールを使用

・オンプレミスのデータセンターとSnowball間でローカルデータ転送を実行

・Snowballはそれ自体が配送コンテナ

 

SnowballとSnowball Edge

Snowball EdgeはSnowball + コンピューティングという高性能な機能を有し、現在AWSはSnowball Edge利用を推奨。

 

◾️Snowball

・クライアント側で暗号化を実施

・クライアント側にリッチなリソースが必要で

 クライアント側のソフトウェアによるデータ移行を実施

・容量:80TB / アプライアンス

・用途:データ移行

クラスタリング:不可

・ラックマウント:不可

・最大保持日数:90日

 

◾️Snowball Edge

・Edge側で暗号化を実施

・書込時にLambda関数を利用したデータ処理可能

 アプライアンスに組み込まれたS3 Adapter For Snowballにより

 データ転送を実施

・容量:100TB(80TB利用) / アプライアンス

・用途:データ移行 + ローカルプロセッシング・ストレージとして利用

クラスタリング:可

・ラックマウント:可

・最大保持日数360日

・Snowball Edge Compute Optimizedの

 Snow Edge Storage Optimizedの2タイプ

 

 

AWSコスト管理

運用保守やサポートに関する支援ツールやサービス。

 

◾️AWS Cost Explorer

 AWSのコストと使用量や経済性を把握し、分析、管理するための

 可視化ツール

 

◾️AWSのコストと使用状況レポート

 AWSのコストと使用状況の詳細を確認するためのレポート

 

◾️AWS Budgets

 予算のしきい値を超えた時にアラートを発信するカスタム予算を設定

 

◾️価格算定ツール

 AWSのコスト計算を支援するツール

 簡易見積もりツール / TCO計算ツール / Pricing Calculator

 

◾️AWS Cost Categories

 自身の組織やプロジェクト構造に分けてコストを

 カテゴライズすることが可能な機能

 

◾️Trusted Advisor

 コスト最適化とセキュリティと耐障害性と

 パフォーマンス向上についてアドバイスを提供するサービス

 

AWSを安く使う

もっともシンプルで一番最初にやるべきコスト最適化は無料利用枠の最大利用と最適な料金オプションの選択。

 

AWSの課金方式

AWSは利用量に応じた柔軟な価格設定となっている。

 

◾️従量課金

 従量課金による利用料に応じた価格設定が基本

 

◾️予約による低価格

 EC2などの特定のサービスには

 リザーブド価格(予約による低価格販売)が実施されている

 

◾️使うほど安い

 AWSではボリュームディスカウントを受けることができ、

 使用量が増えるほど節約できる

 

EC2の購入オプション

EC2の購入オプションは利用形態や利用期間などに応じて多岐にわたるため、コスト最適な選択をすることが重要。

 

・オンデマンドインスタンス

・スポットインスタンス

リザーブインスタンス

・ハードウェア専有インスタンス

・Dedicated Host

・ベアメタル

 

EC2のリサーブドインスタンス

利用期間を長期間指定して利用する形式で、オンデマンドに比較して最大75%割安になる。

 

EC2のスポットインスタンス

予備のコンピューティング容量をオンデマンドインスタンスに比べて割引(最大90%引き)で利用できるEC2インスタンス

 

・予備用を入札式で利用するためとても安い(最大90%引き)

・起動に通常よりも少し時間がかかる

・予備用のため途中で削除される可能性がある

 →一時的な拡張などの用途で利用

 

物理的対応可能なインスタンス

物理サーバーにインスタンスを起動して制御が可能なタイプのインスタンス

 

◾️ハードウェア専用インスタンス

 ・専用HWのVPCで実行されるEC2インスタンス

 ・ホストHWのレベルで、他のAWSアカウントに属する

  インスタンスから物理的に分離する

 ・同じAWSアカウントのインスタンスとはHWを共有する可能性がある

 

◾️Dedicated Host

 ・EC2インスタンス容量を完全にお客様専用として利用できる物理サーバー

 ・サーバーにバインドされた既存のソフトウェアライセンスを利用可能

 

◾️Bare Metal

 ・アプリケーションは基盤となるサーバーのプロセッサー

  メモリーに直接サクセス可能なインスタンス

 ・AWSの各種サービスとの連携が可能でOSが直接下層の

  ハードウェアにアクセス可能

 

AWS Organizationsによる一括請求

AWS Organizationsの一括請求で、メンバーアカウント間でリザーブインスタンスを共有化したり、S3などの利用量に応じた課金がお得になる。

 

Saving Plan

1〜3年の期間に一定の使用量を守ることによりコストを削減。

 

リザーブインスタンスと同様に、1年または3年の期間に

 特定の量の処理能力(USD / 時間で測定)を使用する契約を結ぶことで

 適用される割引契約

AWSコンピューティング使用料金を最大72%節約できる

Amazon EC2AWS Fragate、AWS Lambdaに適用可能

 

価格算定ツールを利用する

AWS公式ツールを利用して見積もりや価格比較を実施する。

 

◾️簡易見積もりツール

 利用するAWSサービスに対する月額料金を見積ることができる

 

◾️TCO計算ツール

 AWS利用した場合とオンプレミス環境やコロケーション環境との

 価格比較ができる

 

◾️Pricing Caluator

 ビジネスや個人のニーズに沿った個別の予測コスト見積もりを

 実施することができる

 

コストの可視化

CloudWatchのbilling機能により請求額通知を可能とし、Trusted Advisorからアドバイスをもらう。

 

Trusted Advisor

コスト最適化とセキュリティと耐障害性とパフォーマンス向上についてアドバイスを提供するサービス。

 

・コスト最適化

・セキュリティ

・耐障害性

・パフォーマンス向上

 

AWS Budgets

カスタム予算を設定して、コストまたは使用量が予算額や予算量を超えた場合に細かくアラームを設定することができる。

 

Cost Explorer

AWSのコストと使用量の経済的変化を可視化して、カスタムレポートを作成してコストと使用量のデータを分析する。

 

AWSのコストと使用状況レポート

AWSのコストと使用状況に関するもっとも包括的なデータを提供。

アカウント / IAMユーザーが使用した各サービスカテゴリのAWS使用状況が、時間単位または日単位の明細項目として一覧表示する。

 

AWS Cost Categories

自身の組織やプロジェクト構造に分けてコストをカテゴライズすることが可能な機能。

 

AWS Trusted Advisor

コスト最適化とセキュリティと耐障害性とパフォーマンス向上についてアドバイスを提供するサービス。

 

 

その他のサービス

Codeシリーズ

開発コードのGitベースのリポジトリ上でのコミット・実行・デプロイを自動化する一連のサービス。

 

◾️CodePipline

 完全マネージド型の継続的デリバリーサービス

 

◾️CodeCommit

 Gitベースのリポジトリをセキュアにホストするマネージド型の

 ソース管理サービス

 

◾️CodeBuild

 ソースコードコンパイルし、テストを実行し、デプロイ可能な

 ソフトウェアパッケージを作成できる完全マネージド型のビルドサービス

 

◾️CodeDeploy

 CodeDeployは開発・テスト・本番環境へのデプロイの自動化サービス

 

Kinesis

ストリームデータを収集・処理するためのフルマネージド型サービスで主に3つのサービスで構成される。

 

◾️Amazon Kinesis Data Streams

 ストリームデータを処理するアプリケーションを構築

 

◾️Amazon Kinesis Data Firehose

 ストリームデータをS3やRedshiftなどへ簡単に配信

 

◾️Amazon Kinesis Data Analytics

 ストリームデータを標準的なSQLクエリでリアルタイムに可視化・分析

 

Amazon Kinesis Data Streams

ストリームデータ処理用の分析システムやアプリケーションを構築するサービス。

 

Amazon Athena

Amazon S3内のデータを直接、簡単に分析できるようにするインタラクティブなクエリサービス。

 

Amazon Rekognition

深層学習に基づいた画像認識および画像分析機能を提供するサービス。

 

Amazon Polly

高度なディープラーニング技術を使用したテキストから音声を合成するサービス。

 

Amazon Lex

音声やテキストを使用して、任意のアプリケーションにチャットボットを構築するサービス。

 

Amazon Transcribe

開発者が音声をテキストに変換する機能を提供するサービス。

 

Amazon SageMaker

機械学習(ML)モデルを迅速に構築、トレーニング、デプロイできるようにする完全マネージド型サービス。

 

Amazon QuickSight

QuickSightはデータを可視化・解析するためのBIツール。

RedShiftデータを可視化可能。

 

AWS Glue

データを抽出、変換、ロード(ETL)を行う完全マネージド型のサービス。

 

AWS Lake Formation

本来なら複雑な設定が必要なデータレイクの構成を簡単に素早く実現するサービス。

 

Amazon EMR

Apache Spark、Apache Hive、Prestoなどのビックデータフレームワークを使用して、大量データを処理、分析する。