# Ping-t 試験対策 ## **運用上の優秀性** - **設計原則** ・**運用をコードとして実行する** 運用手順をコード化しイベントに対応して自動実行することにより、人為的なミスを抑制できる。 ・**元に戻すことができる小規模な変更を定期的に実施する** 変更作業を小規模かつ元に戻せる作業にすることで、変更に失敗した場合でもユーザーへの影響を極力抑えることができる。 ・**運用手順を定期的に改善する** 定期的な運用手順の見直しと同時に、手順の改良や運用者への周知を行う。 ・**障害を予想する** 障害シナリオをテストし原因を特定する演習を実施することにより、障害発生の原因を除去したり障害による影響を軽減できる。 ・**運用上のすべての障害から学ぶ** 運用上のイベントや障害から教訓を学び、運用の改善を促進する。 - **Amazon MQ** Apache ActiveMQとRabbitMQに対応したフルマネージドのメッセージブローカーサービス。メッセージブローカーサービスとは、複数のサービスやシステム間の連携に使用される「メッセージキュー」を管理するサービスのこと。 - **AWS Systems Manager Session Manager** EC2インスタンスへブラウザ(マネジメントコンソール)やAWS CLIからセキュアにログインできる機能。 - **AWS Systems Manager Parameter Store** データベースなどにアクセスする際のパラメーター(ログイン時の認証情報など)を管理するサービス。アプリケーションなどからAWSリソースへアクセスする際にParameter Storeからパラメーターを取得することにより、ログイン情報をアプリケーションにハードコーディングしたり平文で入力しておく必要がない。 - **AWS Systems Manager(SSM)** 複数のAWSリソースをグループ化し、グループ内リソースの運用データの一元化や運用タスクの自動化などができる運用管理サービス。Ssytems Managerは役割ごとに複数の機能で構成されている。例えばOSパッチの適用を自動化する「Patch Manager」や、マネジメントコンソールからEC2インスタンスへセキュアにログインできる「Session Manager」などがある。 - **AWS Config** AWSリソースの設定を管理し、記録・評価するサービス。AWSリソースの設定がいつ変更されたかを記録し、変更がルールに準拠したものでない場合には「非準拠」として記録される。 - **AWS Cost Explorer** AWSアカウントごとの利用料金を棒グラフで把握する。 - **AWS Certificate Manager(ACM)** SSL/TLS証明書を作成・管理できるマネージドサービス。ACMで管理しているSSL/TLS証明書をAmazon CloudFront、ELB、Amazon API Gatewayなどに適用することで、ユーザーとの通信をHTTPSで暗号化するとともに、ドメインの使用権も確認してアクセス先のサーバーが本物であるという証明をする。 - **AWS Directory Service** MicrosoftのActive Directory(AD)をAWS上で提供するマネージドサービス。 - **AWS CloudWatch Logs** CloudWatchLogsからサブスクリプションフィルターを使用して、データをOpenSearch Serviceへ直接ストリーミング可能。 ## **セキュリティ** - **設計原則** ・**強力なアイデンティティ基盤を実装する** 最小権限の原則を実装し、AWSリソースの使用に適切な認証をする。最小権限の原則とは、ユーザーやプログラムが作業を完遂するために必要な最低限の権限で操作を行うこと。 ・**トレーサビリティを実現する** システムに対してリアルタイムでの監視、通知、監査を行うことにより、問題が発生した場合に素早く対応できる。 ・**全レイヤーでセキュリティを適用する** 一部の機能に対して重点的にセキュリティを実装するのではなく、仮想サーバー、ネットワーク、ロードバランシング、アプリケーション、コードなど、利用するすべてのレイヤーに渡ってセキュリティを実装する。 ・**セキュリティのベストプラクティスを自動化する** セキュリティの仕組みをソフトウェアベースで自動化することによって、安全にシステム化を迅速にしつつコスト効果を高くする。 ・**転送中及び保管中のデータを保護する** データの気密性レベルに応じた、暗号化、トークン分割、アクセスコントロールなどを適用する。 ・**データに人の手を入れない** データへの直接アクセスや手動作業を減らすことで、機密性の高いデータの消失など人為的ミスのリスクを軽減する。 ・**セキュリティイベントに備える** システムの要件に合わせたインシデント発生後のプロセス(検出、調査、復旧)とインシデント管理の方針を決めて、セキュリティイベントに備える。 - **暗号化鍵の管理方法** KMSよりもセキュアな運用が求められる場合はCloudHSMを使用する。 - **AWS Secrets Manager** データベースなどにアクセスする際のシークレット(ログイン時の認証情報など)を管理するサービス。アプリケーションなどからAWSリソースへアクセスする際にSecrets Managerからシークレットを取得することにより、ログイン情報をアプリケーションにハードコーディングしたり平文で入力しておく必要がない。Secrets Managerには、シークレットを安全に管理するために、定期的にシークレットを更新する「ローテーション」機能がある。スケジュールに従って、Session Managerはローテーション用のLambda関数を自動的に呼び出す。 - **クロスアカウント** あるAWSアカウントで暗号化されたリソースを別のAWSアカウントで複合したい場合、KMSの暗号化鍵を複数のAWSアカウントで使用できる。暗号化されたAMIやデータベースのスナップショットなどを他のAWSアカウントと共有する際に利用する。共有できる鍵は**カスタマーマネージド型のKMSキー**のみ。 - **国別にアクセスを制限できるサービス** ・**Amazon CloudFront** 「地理的制限」というクライアントからのアクセスを国別に制限できる機能。 ・**AWS WAF(Web Application Firewall)** 「Web ACL」にも地理的制限と同等の機能がある。 - **Amazon Cognito** モバイルアプリケーションやWebアプリケーション向けのユーザー認証機能を提供するサービス。新たにユーザー登録を行ったり、外部のIDプロバイダと連携したユーザー認証、およびユーザーの管理を行える。 ## **信頼性** - **設計原則** ・**障害から自動的に復旧する** リアルタイムでのパフォーマンスの監視と、しきい値を超過した場合の復旧プロセスを自動化することにより、障害からいち早く復旧できる。 ・**復旧手順をテストする** 障害発生と対応する復旧手順のテストをすることにより、実際の障害が発生する前に復旧手順の確認や改善ができる。 ・**水平方向にスケールしてシステム全体の可用性を高める** 1つの大規模なリソースを複数の小規模なリソースに置き換えることにより、単一の障害がシステム全体に与える影響を軽減できる。 ・**キャパシティーを推測しない** システムの使用率を監視してリソースの追加や削除を自動かすることにより、需要に対して常に適切なキャパシティーで運用できる。 ・**自動化で変更を管理する** AWSリソースの増減やアプリケーションのデプロイ、セキュリティパッチ適用などの変更は自動化して実行し、変更した内容を管理する。 - **AWS Backup** ストレージやデータベース等のバックアップを一元管理するフルマネージドのサービス。EC2インスタンスやEBSボリューム、S3バケット、RDSなどを対象に、柔軟なバックアッププランを作成できる。例えばバックアップの頻度や、一定期間経過したバックアップはコールドストレージへ保存する、別のリージョンへ保存するなどの運用ができる。 - **AWS SQS** リクエストが急激に増加した場合、SQSとCloudWatch、Auto Scalingを連携することでサーバーを自動的にスケーリングできる。 ## **パフォーマンス効率** - **設計原則** ・**高度な技術を誰でも使えるように** 高度な技術の知識とサービスをクラウドが提供することにより、オンプレミスでは実装が難しい技術であっても容易に利用できる。 ・**数分でグローバルに展開する** 世界各地にある複数のAWSリージョン経由で、世界中から低遅延でサービスへアクセスできる。 ・**サーバーレスアーキテクチャを使用する** サーバーの運用や管理を意識することなくサービスを展開できる。 ・**より頻繁に実験する** 異なるタイプのサーバーやストレージ、設定を使用した比較テストをより頻繁に実施する。 ・**システムに対する精通の程度を考慮する** クラウドサービスの技術を理解し、実現したいシステムを最適な技術で実装する。 - **memo** ・クラスタープレイスメントグループに所属するインスタンスは単一AZでなければならない ・BI(Business Intelligence):ビッグデータを分析し経営に役立てること ・データウェアハウスへの配信は、Kinesis Data FirehoseによりAmazon Redshiftと連携できるため、KinesisData Streams+Kinesis Data Firehoseでデータ処理するのがより ・S3から直接Lambda関数を呼び出せる ### コスト最適化 - **設計原則** ・**クラウド財務管理を実践する** リソースの使用量とクラウドに支払う費用を把握し、組織全体でコスト意識を高める。 ・**消費モデルを導入する** 未使用のリソースは停止し、必要最小限のリソース費用のみに支払います。 ・**全体的な効率を測定する** AWSリソースの使用量とそれに対する費用を把握することにより、コストパフォーマンスを向上しやすくなる。 ・**付加価値を生まない高負荷の作業に費用をかけない** データセンターやサーバーの管理・運用など高負荷の作業はAWSで実施するため、インフラの整備よりも開発業務や顧客対応に集中できる。 ・**費用を分析し、帰結させる** システムの利用状況と費用からコストパフォーマンスを測定することで、リソースの最適化とコスト削減の機会を得られる。AWSを利用したシステムで得られた利益に対して、AWSに支払った費用が適切かを分析し、コスト最適化を目指す。 - **データ転送料金**  - **Amazon Athena** Amaozn S3上のデータに対して標準SQLを実行できるデータ分析サービス。サーバーレスなので、EC2インスタンスなどインフラのセットアップや管理が不要。SQLクエリの実行時にスキャンしたデータ量をもとに料金が決まる。 - **AWS Resource Access Manager(RAM)** AWSリソースを複数のAWSアカウントで共有できるサービス。AWS RAMは追加料金なしで利用できる。 - **Compute Savings Plans** 1年もしくは3年の期間、一定のサービス使用量(1時間あたりの利用料金)を決めて契約することで、オンデマンド料金よりも安価になる購入オプション。Amazon EC2、AWS Lambda、AWS Fargateが対象。 - **リクエスタ支払い** S3オブジェクトを共有する際にバケットの所有者が転送料金を負担したくない場合に設定する。アクセス元に対して転送料金が請求されるようになる。 - **AWS Budget** 予算を設定して、しきい値に達した際にはアラートを受けることができる。想定していないコストの発生を抑えたり、コストに対する素早いアクションを取ることができる。 <br/> <br/> <br/> <br/> <br/> <br/> ## **+a** ### **memo** ・Redshift SpectrumでアクセスするS3バケットとRedshiftクラスタは同一リージョンでなければならない。 ・NATゲートウェイは、プライベートサブネットからインターネットへの通信を可能にする機能。インターネットからサブネット内への通信は拒否される。 ・Amazon RDSではスナップショットを他アカウントと共有できる。 ・AWS DMS(Database Migration Service) データベースの移行サービス。 ・AWS DataSync オンプレミスとAWS間、またはAWSストレージ間のデータ転送サービス。対応するAWSのストレージにはAmazon S3やAmazon EFS、Amazon FSxなどがある。オンプレミスとAWS間で通信するためには、オンプレミスにDataSyncエージェントを導入する。 ### **ENI(Elastic Network Interface)** 仮想ネットワークカードを表すVPC内の論理ネットワーキングコンポーネント。次の属性を含めることができる。 ・VPCのIPv4アドレス範囲からのプライマリプライベートIPv4アドレス ・VPCのIPv4アドレス範囲からの1つ以上のセカンダリプライベートIPv4アドレス ・プライベートIPv4アドレスごとに1つのElasticIPアドレス(IPv4) ・1つのパブリックIPv4アドレス ・1つ以上のIPv6アドレス ・1つ以上のセキュリティグループ ・MACアドレス ・送信元/送信先チェックフラグ ・説明 NICを作成及び設定して、同じAZのインスタンスにアタッチできる。 --- ### **Elastic IP Address** AWSアカウントに紐付けられた静的なグローバルIPアドレス。再起動してもIPアドレスが維持され、っ利用していない場合に課金される。 --- ### **クロスオリジンリソース共有(CORS)** アプリケーションを統合するためのメカニズム。CORSは、特定のドメインにロードされたクライアントウェブアプリケーションが異なるドメイン内のリソースと通信する方法を定義する。 --- ### **Auto Scaling** ・**ヘルスチェック** AutoScalingの管理対象下のインスタンスの動作をチェックして、異常が認められた場合は新しいインスタンスと置き換えられる。 ・**猶予期間** AutoScalingが発動してインスタンスが起動されても、インスタンスの起動時間やインスタンス内のプロセスの起動時間があるため、すぐにそのインスタンスが利用可能な状態になる訳ではない。その間にヘルスチェックでエラーが出続けると困るので、一定期間ヘルスチェックをしないという猶予期間。 ・**スケーリングクールダウン** AutoScalingが発動した直後に追加でインスタンスの増減がされるのを防ぐための設定。 ・**ウォームアップ** ほぼステップスケーリングで差分でインスタンスを追加するために追加された機能。ステップスケーリングの場合、オプションで新しく起動したインスタンスがウォームアップするまでにかかる秒数を指定できる。指定された時間が経過するまで、インスタンスはAutoScalingグループの集合メトリクスの対象にはならない。 --- ### **Amazon Aurora** クラウド向けにAWSが構築したデータベース。RDSを作成する際にデータベースエンジンの1つとしてAuroraを選択できる。主に以下の特徴がある。 ・Aurora DBクラスターは、1つ以上のDBインスタンスと、データを管理するクラスターボリュームで構成される ・インスタンスとストレージとボリュームが分離している ・読み込み処理およびフェイルオーバーが可能なAuroraレプリカが作成可能 ・データボリュームは、3つのAZに各2個ずつ、計6個のコピーが作成され、高い耐障害性を持つ ・**クラスターキャッシュ管理** クラスターキャッシュ機能を有効にすると、レプリカにキャッシュ情報が同期されるため、フェイルオーバー時のパフォーマンスの影響を最低限に抑えられる。 ・**Auroraグローバルデータベース** 通常、Auroraクラスターは単一リージョン内に構築するが、複数のリージョンにまたがるグローバルデータベースを構築することもできる。グローバルデータベースに関しては、以下の特徴がある。 ・セカンダリリージョンは、読み込み専用となる ・リージョン間のデータコピーはAuroraの機能で自動的に実行される ・リージョン間のデータコピーは通常1秒未満で実行され、リージョン間のフェイルオーバーは通常1分未満で実行される ・**Auroraマルチマスタークラスター** クラスター内のすべての複数のインスタンスは読み書き可能になる。利用にあたっては、以下の制約がある。 ・MySQLが対象 ・インスタンス数は最大2つ ・インスタンスの停止不可 ・通常のクラスターより書き込みパフォーマンスが落ちることがある ・バックトラック機能の利用不可 --- ### **Amazon SQS(Simple Queue Service)** フルマネージドのキューイングサービス。 >キューイング >ソフトウェア間を直接データを渡すのではなく、第三者経由でデータを渡すことで、送信側と受信側が好きなときに処理を行うことができる。 ・プロデューサー:メッセージをSQSに送信するアプリケーション ・コンシューマー:SQSからメッセージをポーリング(取りに行く)アプリケーション ・メッセージ:送受信されるデータ - **キュータイプ** ・**標準キュー** スループットは無制限。配信順序はベストエフォートで保証されない。メッセージは最低1回配信する(複数回配信される可能性があるため、複数回同じメッセージを受け取っても影響が出ないような構成にする必要がある)。FIFOキューに比べて安価。 ・**FIFOキュー** スループットは1秒あたり300件のメッセージ処理。配信順序は保証される(順番が前後しない)。メッセージは必ず1回のみ配信。配信順序や処理回数が重要な場合に使用される。 - **SQSでできる主な設定** ・**可視性タイムアウト**:コンシューマーがメッセージを受信してから可視性タイムアウトの間、他のコンシューマーなどにキューを配信しない。 ・**配信遅延**:コンシューマーがメッセージを処理するより先にキューができたときにどのくらいの時間、キューの送信を遅延させるか ・**メッセージ受信待機時間**:メッセージ取得を指定時間だけ待機する ・**メッセージ保持期間**:キューに登録されたメッセージは明示的に削除処理を行われない限りデフォルトで4日間保持する ・**最大メッセージサイズ**:キューのメッセージサイズの指定 ### Amazon SNS(Simple Notification Service) AWSが提供する分散型のフルマネージドのプッシュ型メッセージングサービス。メッセージフィルタリング機能がある。 ・トピック:配信対象をグルーピングし、配信対象に一斉に通知を配信するための機能 ・購読者(サブスクライバ):対象となるトピックから発信されるメッセージの購読者を設定する ・パブリッシュ:通知を発信すること --- ### Amazon Kinesis Data Streams ストリーミングデータをほぼリアルタイムで収集することができ、収集されたデータはEMRやAWS Lambdaなどのサービス上に構築された独自アプリケーションに連携して処理することが可能。また、流れてくる大容量のデータを効率的に処理するために、「**シャード**」と呼ばれる単位でデータを分割して並列処理を行うことができる。ストリーミングデータを「データレコード」という単位で処理する。データレコードには、データそのものに加えて「パーティションキー」「シーケンス番号」が含まれる。 ・パーティションキー:どのシャードで処理するかを決めるもの。プロデューサー側で設定。 ・シーケンス番号:シャードごとに一意の番号。シャード内のデータレコードの順序性が保証される。 ### Amazon Kinesis Data Firehose 独自にアプリケーションを構築することなく、ストリームデータをAmazonの各サービスに簡単に配信・保存できるサービス。例えば、ストリーミングされるデータを分析用データとしてS3やRedshiftに蓄積するケースなどで利用される。 ### Amazon ECS(Elastic Container Service) Amazon ECS(Elastic Container Service)はコンテナを実行、管理するサービス。「コンテナ」とはアプリケーションと実行環境をパッケージ化する仮想化技術の1種のこと。なお、ECSのようなコンテナを管理する仕組みを「コンテナオーケストレーション」という。 【ECSの主要要素】 ・**クラスター** 1つ以上のタスクまたはサービスで構成される論理グループ。クラスターでは、コンテナが動作するVPCやサブネットなどを設定。 ・**タスク** ECSで管理するコンテナの実行単位。タスク内のコンテナは、実行するコンテナイメージ、CPUやメモリのスペック、タスクロールなどを定義した「タスク定義」に基づいて起動される。なお、タスクロールとはコンテナが他のAWSサービスを利用する際に設定するアクセス権限(IAMロール)のこと。 ・**サービス** クラスター内で必要なタスク数を維持する機能。あるタスクが異常終了して必要なタスク数を下回った場合、サービスが新しいタスクを起動して自動復旧する。サービスでは、起動するタスクのタスク定義、必要なタスク数、ELBとの連携などを設定する。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up