Closed29

AWS コンピューティング

bayamasabayamasa

コンピューティングサービスの種類

  1. IaaS (EC2)
  2. サーバーレスコンピューティング(Lambda)
  3. コンテナベース(ECS, EKS)
  4. PaaS(Elastic Beanstalk)
bayamasabayamasa

EC2
世界中のAZにインスタンスを起動できる

9個の重要な設定が存在する

bayamasabayamasa
  1. AMI(Amazon Machine Image)
    EC2インスタンスを作成するためのテンプレート
    OSはWindows or Linux
    いくつかのソフトウェアがプリインストールされている

選択肢がいくつか存在する

  • AWSが提供するLinux or Windows
  • My AMI
  • コミュニティで他のユーザーが共有するAMI

使い方

  1. ベースとなるAMIを選択
  2. インスタンスに接続して、ソフトウェアアップデートやインストールなどの独自の設定を行う
  3. 新しいAMIとしてキャプチャする
  4. 他のリージョンなどにコピーすることが可能
bayamasabayamasa
  1. インスタンスタイプの選択

使用するインスタンスタイプで以下の内容が決まる

  1. メモリ(RAM)
  2. CPUの処理能力
  3. ディスク容量とディスクタイプ(ストレージ)
  4. ネットワークパフォーマンス
インスタンスタイプの命名

t3.large
t = ファミリー名
3 = 世代番号
large = サイズ
インスタンスタイプ

汎用 : a1, m5, t2

コンピューティング最適化 : c4, c5
高パフォーマンス
バッチ処理、広告配信

メモリ最適化 : r4, r5, x1, z1
インメモリデータベース、高性能データベース、データマイニング/分析

高速コンピューティング : f1, g3, g4, p2, p3
機械学習

ストレージ最適化 : d2, h1, i3
分散型ファイルシステム

またネットワーク帯域幅はインスタンスタイプによって異なる

bayamasabayamasa
  1. ネットワーク設定
    どのサブネットでデプロイするか
    パブリックアドレスを自動的に割り当てる必要はあるか
bayamasabayamasa
  1. IAMロールのアタッチ

EC2インスタンスのソフトウェアが他のAWSサービスとやり取りする場合、IAMロールをアタッチする必要がある。

※絶対にEC2インスタンスの中にAWS認証情報を保存しないようにする →IAMロールで制御を行う

bayamasabayamasa
  1. ユーザーデータスクリプト
    オプションでインスタンス起動時にユーザーデータスクリプトを指定
    ランタイム環境をカスタマイズすることが出来る
bayamasabayamasa
  1. ストレージの指定
    ルートボリュームの設定
    追加のストレージボリュームをアタッチする

なんかこの辺はあとで詳しくやりそうなので保留

Amazon EBSとかEC2インスタンスストアがある。
EC2インスタンスストアはインスタンスが停止すると保存されたデータが削除される。

もしボリュームがインスタンスストアのみの場合は、EC2をAPIで停止することができなくなる。
なので長期的に使用するEC2の場合は耐久性の高い他のボリュームを使用するべきである。

bayamasabayamasa
  1. タグ
    AWSリソースにつけるラベル
    フィルタリングや自動化などに使用できる
bayamasabayamasa
  1. セキュリティグループ
    インスタンスのトラフィックを制御するファイアウォールの設定
    ソースとポートを設定出来る

デフォルトではアウトバウンドルールがAll Openで設定されている

bayamasabayamasa

Elastic IPアドレス

  • インスタンスを再起動しても、IPアドレス/DNSホスト名は変更されない。
  • インスタンスを停止 or 終了してから再起動した場合、パブリックIPv4アドレスと外部DNSホスト名は変更される

そのため、もし永続的なパブリックIPアドレスが必要な場合、ElasticIPアドレスをインスタンスに紐付けすることで終了しても同じIPアドレスが使われるようになる

bayamasabayamasa

Cloudwatch に15ヶ月モニタリングのデータが保存される。

  • 基本モニタリング
    追加のコストは不要
    5分ごとにメトリクスデータをCloudWatchに送信する

  • 詳細モニタリング
    事前に選択した7つのメトリクスを測定
    1分ごとにメトリクスデータを送信する

bayamasabayamasa

専有ホスト
EC2ではいくつかのユーザーからなる仮想空間にEC2のリソースを分けていますが、専有ホストでは物理サーバーを提供しているので一つのサーバーをまるごと使用することが出来る。

bayamasabayamasa

スポットインスタンス
使われていないEC2インスタンスに名前をつけて入札をして利用することが出来る。
大幅に安いが強制的にインスタンスが中断してしまう可能性がある。(終了はない

bayamasabayamasa

リザーブドインスタンス
事前に予約しておくとで価格を下げる事ができる

bayamasabayamasa

コンテナとはOSを仮想化する手法
コンテナは仮想マシンよりも処理速度が一桁小さい

bayamasabayamasa

コンテナと仮想マシンの違い
VMはハイパーバイザーの配下で直接実行
コンテナはDockerホストソフトウェアとそれをサポートする適切なカーネル機能があればどのOSでも実行することが出来る

VMベースのデプロイは3つのアプリケーションがそれぞれ独自のVM上で実行され、各VMがプロセスの分離を提供する

コンテナは単一のEC2インスタンス上で実行することが出来る。
これにより、一元管理機能を提供する。

bayamasabayamasa

Amazon ECS
コンテナ管理サービス

EC2サービスで使えるEBSなどの機能が使える

bayamasabayamasa

ECSクラスターの管理はカスタマーがする必要があるのか

管理する場合、EC2によってサポートされたECSクラスターを作成する必要がある。
(インフラをより細かく制御する事ができる)
管理しない場合、AWS FargateによってサポートされたECSクラスターを作成する。
(アプリケーションのメンテナンスと管理がより簡単になる)

bayamasabayamasa

Kubernetes
Kubernetesはコンテナ統合管理用のオープンソースソフトウェアである。
デプロイおよび管理するコンテナのネットワーク設定、コンテナの負荷分散、アプリケーションの負荷を処理するためのスケーリングも自動化する

bayamasabayamasa

Amazon ECR
DockerのImageを保存、管理、デプロイするためのマネージド型のサービス

bayamasabayamasa

AWS Lambda
ラムダは複数のリージョンなどでコードを保護します

ラムダはイベントソースによって実行されます。
イベントはAmazon API Gateway, DynamoDB, SQSなどの複数の候補が存在する。

bayamasabayamasa

CloudWatchイベントなどを通じてラムダが実行されるように出来る。

bayamasabayamasa

ラムダの制限
最大メモリの割当は3008MB
関数のタイムアウトは1秒から15分で設定可能
同時実行数は一つのリージョンで1000
など

bayamasabayamasa

AWS Elastic Beanstalk

ウェブアプリケーションを簡単に起動して実行する方法
以下を自動的に処理する

  • デプロイ
  • 負荷分散
  • スケーリング
  • ヘルスモニタリング
  • 分析とデバッグ
  • ログ記録
このスクラップは2021/08/21にクローズされました