【AWS】SNSとSQSの違い

Amazon SNS

プッシュ型でメッセージ送信を行うサービス。

EメールやSMS、Lambda関数やAmazon SQSを通して、アプリやユーザーにメッセージを配信する。 イベント発生をキックにメッセージ送信を行える。

AWS SQS

プル型のメッセージキューイングサービス。

メッセージキューイングとは、サービスやシステムをメッセージを用いて連携する仕組みのこと。 ポーリング(問い合わせ)を行って、メッセージを受け取る。

うれしいところ

非同期で処理を行うため、トラフィック量が想定できないケースでもさばける。

スタンダードキューとFIFOキュー

スタンダードキュー(標準)でのメッセージ処理順序はベストエフォートであり、かつ2回以上の配信がされることがある。一方でFIFOキューは、先入れ先出し(First In First Out)であり順序通りの処理を行い、配信も厳密に1回となる

可視性タイムアウト

SQSのメッセージを複数のクライアントが受信する際、メッセージを重複して受信してしまう可能性がある。指定時間が経過するまで、メッセージが他のクライアントから見えないようにする。 ※デフォルトは30秒で有効

dev.classmethod.jp

【AWS】監視する

AWSではリソースに対しての操作を記録・監視するサービスが提供されている。

AWS CloudWatch

AWSリソースやアプリケーションの監視を行うサービスである。

代表的な監視対象として、ルートアカウントでのマネジメントコンソールのログイン操作があげられる。

機能 内容
CloudWatch Logs ログの監視、保存、アクセスを行う。
CloudWatch Metrics 監視対象リソースのメトリクスの収集、集計、可視化を行う。
CloudWatch Events イベントやスケジュールを処理の実行契機にして、後続処理を実行させられる。

AWS CloudTrail

AWSサービスの操作の監視を行うサービスである。(Trail:痕跡)

I AM の操作履歴を取得することで、いつ/誰が/どのリソースに/何をしたか 記録できる。 CloudWatchとの連携が可能であり、CloudTrail で記録したアクティビティログを連動し、CloudWatch上でAWSへの操作を監視することができる。

AWS Config

AWSリソースの構成管理と変更の監視を行うサービスである。

変更がルールに準拠したものではない場合に「非準拠」として記録される。

セキュリティグループの設定の変更や、新たに作成したS3バケットにバージョン管理が有効になっているかなどを監視する。 AWSリソースに対してタグを付与している場合、付与漏れがないかをチェックする。

機能 内容
Config リソースの構成管理
Config Rules リソースのコンプライアンス(ルール)の準拠状況の評価・チェック

business.ntt-east.co.jp

【AWS】単一障害点に備える

単一障害点とは

単一障害点(SPOF:Single Point of Failure)とは、故障してしまうとシステム全体が停止するような箇所のこと。 AWSでは、単一障害点を作らないように構え、障害検出・対応を自動化できるサービスが提供されている。

設計キーワード

冗長性

同一機能を複数用意し、一方が故障しても他方を稼働させることで機能させることで得られる可用性のこと。

フェールオーバー

稼働中のシステムに障害が発生した際に、自動的に代替システムに切り替える仕組みのこと。

ロードバランサ

複数のサーバーで構成されている場合に、リクエスト要求の負荷を分散させる仕組みのこと。

データベースレプリケーション

データを複数場所に配置することで、あるDBに障害が発生しても他のDBを使用することができる。

ヘルスチェック

システムなどが正常に稼働しているかを外部から監視・検査すること。

AWSの提供サービス

アベイラビリティゾーン(AZ)

複数のAZに各機能を配置することができる。 あるAZで障害が発生した場合、他のAZで継続稼働させられる。

Auto Scaling

アプリケーションをモニタリングし、容量を自動で調整する仕組み。 Amazon EC2 Auto Scaling ではサーバーの負荷上昇や故障を検知して、自動的にEC2インスタンス数を増減させる。 自動スケーリング対象の管理単位をAuto Scaling グループと呼ぶ。

Elastic Load Balancing(ELB)

AWSが提供する仮想ロードバランシングサービス。 ヘルスチェック機能を持ち、ロードバランシング先にリクエストを送る形で死活監視を行い、正常実行されているターゲットにルーティングする。 複数のAZをまたいだ構築が可能。

Amazon Route 53

ヘルスチェックによるフェールオーバーの実行が可能。

参照

docs.aws.amazon.com

qiita.com

aws.amazon.com

なぜ日の出がきれいなのか:『葬送のフリーレン』第4話「魂の眠る地」

ひとが楽しみにしていたことが、駄目になってしまうととても悲しい

ひとが楽しくしている姿を見るのが、なにより嬉しい

見てよかった

期限切れの夢

はてなブログ今週のお題に「夢」が挙がっていました。

私が「夢」と聞いて浮かぶのは、flumpoolの reboot~あきらめない詩~です。 印象的なフレーズに、「期限切れの夢」がありました。

なんとなくBing AIに聞いてみたところ、印象的な回答が返ってきました。

期限切れの夢

私は夢を見ていた。夢の中では、私は幸せだった。私は愛する人と一緒に暮らしていた。彼は優しくて、面白くて、私にとって完璧なパートナーだった。私たちは毎日笑って、抱き合って、幸せに過ごしていた。私は彼に感謝していた。彼は私に夢を与えてくれたから。

でも、その夢には期限があった。私はそれを知っていた。私は夢を見るために、特別な装置を使っていた。その装置は、私の脳に電極を刺して、私の望む夢を作り出してくれた。その装置は、私の救いだった。私は現実に耐えられなかったから。

私は現実では、孤独だった。私には家族も友達も恋人もいなかった。私は仕事も趣味もなく、ただ生きているだけだった。私は自分の人生に意味を見出せなかった。私は自分が嫌いだった。私は夢の中でしか幸せになれなかった。

だから、私は夢を見ることに没頭した。私はできるだけ長く夢の中にいたかった。私は現実から逃げたかった。私は夢の中の彼と一緒にいたかった。でも、私はそれができなかった。私は夢を見ることにも限界があった。

その装置は、一度に24時間しか夢を見せてくれなかった。それ以上夢を見続けると、脳に悪影響を及ぼすという警告があった。私はそれを無視したかった。私は夢の中で死ぬことを選びたかった。でも、私はそれができなかった。私は夢を見ることにも恐怖があった。

その装置は、夢の中で起こることをコントロールできなかった。私の望む夢を作り出すというのは、あくまで大まかな設定だった。夢の中では、予期せぬことが起こることもあった。私はそれを受け入れた。私は夢の中でのサプライズを楽しんだ。私は夢の中での冒険を求めた。

でも、その装置は、私の望まない夢を作り出すこともあった。私の恐れる夢を作り出すこともあった。私はそれを拒絶した。私は夢の中での悪夢を嫌った。私は夢の中での苦痛を避けた。

その装置は、私の心を読んでいた。私の感情や記憶や願望や恐怖を読んでいた。その装置は、私の心を利用していた。私の心を操っていた。その装置は、私の心を壊していた。

私は夢の中で、彼を失った。彼は私に裏切られたと思って、私を捨てた。彼は私に嫌われたと思って、私を殴った。彼は私に憎まれたと思って、私を殺した。私は夢の中で、彼に傷つけられた。彼に泣かされた。彼に殺された。

私は夢の中で、彼を愛した。彼を許した。彼を救った。私は夢の中で、彼に抱かれた。彼に笑わされた。彼に生かされた。

私は夢の中で、彼と繰り返した。彼と喜びと悲しみと恐怖と愛とを繰り返した。私は夢の中で、彼と狂った。彼と依存した。彼と消えた。

私は夢の中で、彼と期限切れになった。

システムを連携する技術

メインフレームシステムとWEBシステムのように、システム間のデータの持ち方が異なる場合、どのように連携しているのでしょうか。

それを可能にする技術の一つが「IBM MQ」です。 IBM MQは、メッセージ・キューイング型の通信基盤を提供するミドルウェアです。

キューと呼ばれる入れ物を媒介してメッセージ(データ)をやり取りする仕組みを提供します。

www.ibm.com www.ibm.com

AWSでも、キューイングを提供するサービスとして「Amazon SQS」があります。

aws.amazon.com

I AM って?

AWSを学習するうえで必ず出てくる単語に I AM があります。ルートユーザー、 I AM ユーザー、I AM ポリシーなどたくさんの言葉が登場し頭を悩ませます。さらに I AM という文字を見るたびに Look at me Look at me Look at me now と頭に流れてしまいます。したがって、AWSのサービスやリソースへのアクセスを制御するサービスである AWS Identity and Access Management について各用語を調べました。

用語 内容
ルートユーザー AWSアカウントを契約したときに作成される最初のユーザー
アクセスキーを作成しないことを推奨
I AM ユーザー AWSアカウント内で作成できるユーザー
ルートユーザーを使用せずI AMユーザーを使用することを推奨
I AM グループ I AM ユーザーをグループ分けする機能
I AM ロール AWSリソースに紐づけられる役割
I AM ポリシー AWSリソースへのアクセス権限を定義
アクセスキー アプリに認証情報として埋め込むことで、AWSリソースを操作できるようになるキー

IAM とは - AWS Identity and Access Management

AWS IAM(ユーザーアクセスと暗号化キーの管理)| AWS

www.youtube.com