ITに関するメモ的な・・・

ITに関して調べたこと、試してみたことをメモってます

試験対策メモ

DynamoDB

TTL機能について

項目ごとのタイムスタンプを定義して、項目が不要になる時期を特定できる機能

  • 指定されたタイムスタンプの日付と時刻の直後にテーブルから項目を削除
  • 書き込みスループットを消費しない
  • 保存されたデータボリュームを削減する手段として追加料金なしで提供

CodeDeploy

アプリケーションのデプロイを自動化するサービス
インスタンスにCodeDeployエージェントの事前インストールが必要

特徴

  • サーバアプリケーションなどをデプロイ
  • 設定コード(appspec.yml)の再利用
  • ローリングデプロイ
  • デプロイ履歴の参照
  • オンプレミス環境のサーバにデプロイ

メリット

  • 運用環境が常に最新状態
  • 高可用性維持
  • 導入が容易
  • デプロイ完全自動化
  • 最小限の ダウンタイム
  • コスト抑制
    ※オンプレミス環境へのデプロイは費用が発生

デプロイ方法

  • インプレイスデプロイ
  • Blue/Greenデプロイ

サーバレス

SQS

  • イメージ

f:id:tmlaboratory:20210726180444p:plain
SQS

  • メッセージサイズは最大256KBだが、Extended Client Libraryを利用すると2GBまで送受信可能
  • メッセージ保持期間は60秒~14日(デフォルトで4日)
  • キューのタイプは以下の2つ
    • 標準キュー(デフォルト)
    • FIFOキュー
  • Visibility timeout で新しいメッセージを指定時間見えなくできる

Lambda

  • 100ミリ秒単位のコード実行時間に対する課金
  • Labmdaの起動は以下2つのモデルがある
    • Pushモデル
      • 対象となるAWSサービス:S3/Cognito/SNS
      • 起動:カスタムイベントが直接実行
      • 実行順序:順不同
      • リトライ:3回まで
    • Pullモデル
      • 対象となるAWSサービス:DynamoDB/Kinesis
      • 起動:Lambdaがポーリング
      • 実行順序:ストリーム順
      • リトライ:データが期限切れになるまで
  • Lambdaファンクション間で共通するコンポーネントをLambda Layerとして5つまで定義可能

PHPでバイナリデータ作成

実現方法

packという関数にて実現可能。

逆に、unpackという関数でバイナリデータから切り出すことも可能。

ソースコード

検証用に簡単なソースコードを作成。

<?php

print("0              1              \n");
print("0123456789ABCDE0123456789ABCDE\n");
print("------------------------------\n");
print(bin2hex((pack("nN", 1, 2))) . " ← ビッグエンディアン\n");
print(bin2hex((pack("vV", 1, 2))) . " ← リトルエンディアン\n");

実行結果

上記ソースコードの実行結果。

0              1
0123456789ABCDE0123456789ABCDE
------------------------------
000100000002 ← ビッグエンディアン
010002000000 ← リトルエンディアン

他のスクリプト言語でも実現可能か?

PerlRubyもpack/unpack関数あり。

Pythonはstructモジュールで実現可能のようですが、実装による確認は未実施です。

スクリプト言語でバイナリを扱う使う機会は余りなさそうですが、たまたま調査する機会があったため、備忘として投稿しました。

余談

こちらも備忘ですが、ソースコードはてなmarkdownで記載する方法について、この記事の「Markdownシンタックスハイライト」を参考にしました。

RDS

DynamoDB

整合性

整合性のある読み込み

DynamoDB テーブルからの読み込みオペレーションの応答には、最近の書き込みオペレーションの結果が反映されていないことがあり、少し時間がたってから読み込みリクエストを繰り返すと、応答で最新のデータが返される。

強力な整合性のある読み込み

強力な整合性のある読み込みをリクエストすると、DynamoDB は成功した以前のすべての書き込みオペレーションからの更新が反映された最新データの応答を返すが、制約あり。 DynamoDB は、特に指定がない限り、結果的に整合性のある読み込みを使用し、 ConsistentRead パラメータを true に設定すると、強い整合性のある読み込みとなる。

Route53

不明な単語に関するメモ


  • ホストゾーン

    ドメインとそのサブドメイントラフィックをルーティングする方法についての情報を保持するコンテナ

    • パブリックホストゾーン

      • インターネットに公開されたDNSドメインレコードを管理するコンテナ
      • インターネットのトラフィックのルーティング方法を定義
    • プライベートホストゾーン

      • VPCに閉じたプライベートネットワークのDNSドメインレコードを管理するコンテナ
      • VPC内のトラフィックのルーティング方法を定義
      • 1つのプライベートホストゾーンで複数VPCに対応
      • 複数リージョンのVPCが相互アクセス可能

  • エイリアスレコード

    Route53特有の仮想リソースレコード

    • DNSクエリに対するレスポンスが高速
    • CNAMEにマッピングできないZoneの設定が可能
    • CloudFrontクエリ回数削減

  • トラフィックフロー

    GUIを使って複雑なルーティングポリシーを実現するための仕組み

S3

ストレージクラスをまとめてみた。

可用性が変わるところがポイントか・・・。

ストレージクラス 耐久性 可用性 備考
STANDARD 99.999999999% 99.99%
STANDARD-IA 99.999999999% 99.9%
Intelligent-Tiering 99.999999999% 99.9%
OneZone-IA 99.999999999% 99.5%
RRS 99.99% 99.99%
Glacier 99.99% N/A
Glacier Deep Archive 99.99% N/A

IAM

不明な単語のメモ


プリンシパルエンティティとは、ユーザー、グループまたはロールのこと。


多分こんなイメージだと理解(誤ってたら書き直す)

  • IAMグループ・・・IAMユーザをまとめたもの
  • IAMユーザ・・ユーザに対して、IAMポリシーをまとめたもの
  • IAMロール・・・サービスに対して、IAMポリシーをまとめたもの
  • IAMポリシー・・・サービスを操作する権限

「AWS 認定 ソリューションアーキテクト – アソシエイト試験」取得に向けて

AWS 認定ソリューションアーキテクト - アソシエイト試験は、 AWS における分散システムの可用性、コスト効率、高耐障害性およびスケーラビリティの 設計に関する 1 年以上の実務経験を持つソリューションアーキテクト担当者を 対象としている資格です。

資格取得の学習時に調べたこと、はまったことなどを 試験前に見直せるようにこれからまとめたいと思います。

学習のために使用している教材は以下の通りです。 実際に役に立ったのかは後日記載したいと思います。

  • Udemy

    • これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
    • 【SAA-C02版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)
  • 書籍

プライバシーポリシー

はじめに

ITに関するメモ的な・・・( https://tmlaboratory.hatenablog.com/、以下当サイト)は、個人情報に関する法令等を順守し、個人情報を適切に取り扱います。

個人情報の管理

当サイトは、お問い合わせいただいた内容についての確認・相談、情報提供のためのメール送信(返信)の目的以外には使用しません。
また知り得た個人情報を第三者に開示することは、警察・裁判所など公的機関からの書面をもった請求以外に一切利用いたしません。

免責事項

当ブログからのリンクやバナーなどで移動したサイトで提供される情報、サービス等にプライバシーポリシーついて一切の責任を負いません。
また当ブログのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっていることもございます。
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

著作権について

当ブログで掲載している文章や画像などにつきましては、無断転載することを禁止します。
当ブログは著作権や肖像権の侵害を目的としたものではありません。著作権や肖像権に関して問題がございましたら、お問い合わせフォームよりご連絡ください。迅速に対応いたします。

リンクについて

当ブログは基本的にリンクフリーです。リンクを行う場合の許可や連絡は不要です。
ただし、インラインフレームの使用や画像の直リンクはご遠慮ください。