AWS関連のことを調べてみた2023年11月05日

AWS関連のことを調べてみた2023年11月05日

S3の「強力な整合性」って何?

ChatGPTに生成してもらったけど(個人的に)結構分かりやすかったので共有します!

### 「強力な整合性」とは何か?
「強力な整合性」とは、データが更新された瞬間に、その変更が全ての人にとって即座に見える状態を保証することを指します。これは、ある人が公園の絵を描いたとき、他の人がその公園を見たときには、ちょうどその人が描いた絵と全く同じ景色が見えるということです。

### 昔はどうだったの?
以前のS3は「最終的な整合性」という方式を採用していました。これは、公園の絵を描き換えた後、すぐには新しい絵が全員に見えないというものです。絵は徐々に更新され、見る人によっては古い絵が見えたり、新しい絵が見えたりすることがありました。時間が経てば、最終的には全員が新しい絵を見られるようになるのですが、その「経過時間」は不確定でした。

### 強力な整合性の魔法
Amazonは、この不便を解消するために魔法をかけました。S3に強力な整合性の力を与えたのです。これにより、データを更新した瞬間、その変更が地球の裏側にいる人にも即座に伝わるようになりました。絵を描き換えたら、その瞬間から世界中ど

元記事を表示

Amazon Bedrockとチャットできる LINEbotボット構築ハンズオン

## はじめに
AWSから生成AIサービス「Amazon Bedrock」がGAされました。
この1ヶ月巷の至る所で「Bedrock」に関する勉強会や、事例の紹介がおこなわれています。
そんな熱気に当てられ、少し出足が遅くなりましたが「自分でも構築してみよう!」ということで ハンズオンしてみました!
なにより、こんな軽い気持ちで生成AIにさわれるだなんて控えめに言ってAWS最高ですね!

## 構成
### 処理フロー
①LINEでメッセージの送信
②APIGateway経由で Lambda 実行
③Lambdaの実行処理
    ③-1 LINEのリクエストを検証
    ③-2 DynamoDBから会話履歴の取得
    ③-3 LINEメッセージを Bedrockに送信・応答を取得して LINEユーザに返信
    ③-4 ユーザとの会話をDynamoDBに保存

### 構成図

![](https://cloud5.jp/wp-content/uploads/2023/11/スクリーンショット-2023-11-05-10.54.45-640×243.

元記事を表示

Amazon S3 クロスアカウントバケットポリシー設定パターン

なんか混乱してくるので整理しました。

## アクセス元アカウント ID で制限

別のアカウントから IAM role を使用したアクセスを許可する場合は、`Principal` にアカウント ID を指定します。

“`yaml
Parameters:
TestBucket:
Type: AWS::S3::Bucket
TestBucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref TestBucket
PolicyDocument:
Version: 2012-10-17
Statement:
– Sid: TestBucketPermissions
Effect: Allow
Action: s3:*
Resource:
– !Sub “arn:${AWS::Partition}:s3:::${

元記事を表示

Amazon Comprehend(Entity recognition)を試してみた

# 背景・目的
最近、ドキュメントからテキストマイニングからインサイトを得る事に興味があります。
そこで、Amazon Comprehend(以降、Comprehendと言います。)を使用して実践してみようと思います。

# まとめ
– Comprehendは、自然言語処理を使用してドキュメントの内容に関するインサイトを抽出することが可能です。
– エンティティ、キーフレーズ、言語、感情、その他の共通要素を認識することでインサイトを得ることが可能です。
– 2023/11/04時点でComprehendが提供されているリージョンは下記のとおりです。
– アジアパシフィック (ムンバイ)
– 欧州 (ロンドン)
– 欧州 (アイルランド)
– アジアパシフィック (ソウル)
– アジアパシフィック (東京)
– カナダ (中部)
– アジアパシフィック (シンガポール)
– アジアパシフィック (シドニー)
– 欧州 (フランクフルト)
– 米国東部 (バージニア北部)
– 米国東部 (オハイ

元記事を表示

CloudFormationで、EC2に別VPCのENIをアタッチ

# はじめに
先日、EC2のアップデートで、別のVPCのENIをアタッチできるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2023/10/multi-vpc-eni-attachments/

今回はこれをCloudFormationでやってみました。

# 概要
`AWS::EC2::NetworkInterfaceAttachment`を使います。

“`yaml
EniAttach:
Type: AWS::EC2::NetworkInterfaceAttachment
Properties:
DeviceIndex: 1
InstanceId: アタッチされたいEC2
NetworkInterfaceId: アタッチするENI(別VPC)
“`

また別VPC側のENI経由でもEIPをアタッチすることで、セッションマネージャーで接続できたり、HTTPアクセスできました。

# 参考

https://dev.classmethod.jp/article

元記事を表示

AWS認定12冠達成したので、勉強法とかまとめてみる

# AWS 認定 12 冠達成したので、勉強法とかまとめてみる

## はじめに

2019 年 3 月に Solution Architect Associate から始めて、一旦 2020 年 12 月に当時の 12 冠を達成しました。
その後、それ以降に追加された Data Analytics、SAP on AWS を取得し、また現行の認定も更新し、今回 2023 年 10 月に改めて 12 冠を達成しました。

![badge.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/447528/7dcecbb5-97eb-d15b-57d0-a98ad5f52d31.jpeg)

## プロフィール

現在35歳。
金融系の SIer でクラウド推進の活動をしています。社内案件の AWS 基盤設計、構築なども担当。
クラウドを担当するようになったのは 2018 年の 12 月から。それまではホスト系のシステムを担当しておりました。
最近は AWS CDK(TypeScript)をフル活用

元記事を表示

CloudFormationのテンプレートファイルでLambdaコードベタ書きから脱却したい

## はじめに
CloudFomationでLambdaリソースを作るにはやり方が2つ。
– S3へ事前に固めたZipファイルを指定してLambdaリソースを作る
– テンプレートファイルそのものにインラインでベタ書きで書いてしまう

後者のベタ書きだと色々不都合があって、

– Nodejs.18ランタイムだと、CommonJS形式の強制的にindex.jsになる(マネコンからデフォルトで作成するとES形式のindex.mjsなのに)
– テンプレートとコードが分離できないので、IDEのlinterが通せない
– インラインだとテンプレートファイルがそもそも見にくい

テンプレートへのインラインベタ書きをやめるには、CodeセクションでLambdaコードにS3へアップロードしたZipファイルを指定すればよく、AWS CLIだと`aws cloudformation package`が使えるが、自前でpackage化して面倒くささを体感してみる。

参考:packageコマンド

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/

元記事を表示

AWS CodePipelineの超詳細解説

# はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧は[こちら](https://qiita.com/tech4anyone/items/b06f88035d27c6ef13b2)。

この記事ではCodePipelineとはどういうサービスで何ができるのかを超詳細にまとめています。

具体的には以下流れで説明します。
– AWS CodePipelineとは
– AWS CodePipelineにおけるアーティファクト
– AWS CodePipelineの起動契機
– AWS CodePipelineアクションタイプとの統合
– AWS CodePipelineを起点とするイベント駆動
– マルチアカウント、クロスアカウントでのAWS Codepipeline
– AWS CodePipelineのベストプラクティス

AWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。

# この記事を読んでほしい人
– CodePipelineがどう

元記事を表示

ECSブルーグリーンデプロイメントをゼロから構築する。(その2:ドメイン、証明書設定)

# はじめに
`ECS`を使ったブルーグリーンデプロイメントを行うため、前回はブルーグリーンデプロイメント自体の説明とネットワークの設定を行いました。

今回は、ブルーグリーンデプロイメントの設定とは少し離れますが、付随するドメインや証明書の設定を行っていきます。

– 【前】[ECSブルーグリーンデプロイメントをゼロから構築する。(その1:ネットワークの設定)](https://qiita.com/sakai00kou/items/234318b980ded1aa7577)

# ドメインの登録
`AWS`で外部に公開する`ELB`のようなサービスの場合、特に独自ドメインを取得しなくても、リソース作成時に`AWS`側で自動でDNS名が付与されますが、通常そのまま使用することはせず、独自ドメイン名でアクセスできるようにするのが一般的です。

`AWS`から直接ドメイン名を購入して設定することもできますが、私は「[お名前.com](https://www.onamae.com/)」で購入したドメインを持っているため、サブドメインを`AWS`の`Route53`で管理できるようにお名前.c

元記事を表示

AWS EC2でのbundle install中にプロセスが停止する問題の解決方法

# はじめに

AWSを利用してアプリケーションを公開しています。RailsアプリケーションをEC2にデプロイしている際に、Gemをインストールするためにbundle installを実行したところ、以下のような表示から先に進まなくなってしまいました。

“`terminal:EC2
Installing gem名 gemのバージョン with native extensions
Building native extensions. This could take a while…
“`

# 原因

しばらく待っても上記の状態から進まなかったため、プロセスを中断し、何が問題かを探るべくログを確認しました。その結果、**bundle installが4つのプロセスで並行して実行されている**ことがわかりました

“`terminal:EC2
DEBUG [b81b3574] Command: ( export RBENV_ROOT=”$HOME/.rbenv” RBENV_VERSION=”3.0.3″ ; $HOME/.rbenv/bin/rbenv exec bund

元記事を表示

[SAA-C03] AWS Cost and Usage Report

# 更新日
– 2023/11/04 初回

# [AWS Cost and Usage Report](https://aws.amazon.com/jp/aws-cost-management/aws-cost-and-usage-reporting/)

## これ何?[^1]
AWSのコストと使用状況データをより詳しく見る仕組み。CURと略されるらしい。[^3]

## 何が便利?
– Budgetsと違い、使用状況も同時に見ることができるため原因分析もしやすいので、最適化が可能。[^1]
– AthenaやRedshift,S3と連携が可能。[^3]
– Budgets同様、月次、週次、日次で集計可能。[^3]

## 利用例
– そのまま

# 実装[^3]
のちほど追記します

# Ref
[^1]: [Amazon EventBridgeとは何か](https://qiita.com/ishibashi-futoshi/items/586ebe17b174a478eb6a)
[^2]: [AWS::CUR::ReportDefinition](https://docs.

元記事を表示

[SAA-C03] Amazon Budgets

# 更新日
– 2023/11/03 初回

# [Amazon Budgets](https://aws.amazon.com/jp/aws-cost-management/aws-budgets/)

## これ何?[^1]
その名の通り、AWSのコストを算出する仕組み。月・週・日毎のコストを予測値とともにBudgetReportを算出することもできる。

## 何が便利?
– 条件に応じたコストを算出ができる。[^2]
– CloudFormationでも算出できそう。属人性を排除できるのはコスト管理工数削減にも寄与しそう。[^3]

## 利用例
– CloudWatchなどと組み合わせて毎月定期的なレポートを算出することもできそう。
– 予算目標値に達した際に承認プロセスを要求することも可能。[^4]

# 実装[^3]
のちほど追記します

# Ref
[^1]: [AWS BudgetsでAWSの想定外コストを監視する](https://www.stylez.co.jp/columns/monitor_aws_unexpected_costs_with_aws_budg

元記事を表示

デプロイ方法について

# はじめに
プロジェクトを GitHub に pushして、デプロイ先のさくらサーバにログインして GitHub 上のプロジェクトを clone(or pull)することでデプロイができるようにしていく。作業プロセスの記録としてこの記事を作成。

# デプロイサーバー設定
「さくらのレンタルサーバ」サービスサイト(http://www.sakura.ne.jp)にアクセスする。
=>お申込み=>さくらのレンタルサーバ スタンダード
=>希望の初期ドメインの入力*支払方法は銀行振込を選択(自動課金防止)
=>登録後コントロールパネルで以下のことを確認
・スクリプト設定 → 言語バージョン設定 → PHP を 8 に変更
・web サイト/データ → データベース → 新規作成
・DB 作成
・ドメイン/SSL → 設定 →HTTPS 転送(チェックを入れる)→ 保存

# AWSのクラウド環境でのSSHkeyの設定
“`
$ cd ~
$ ls -a
$ mkdir .ssh (`.ssh` フォルダが存在しない場合は、作成)
$ cd .ssh
“`
SSH 鍵ファイル作成

元記事を表示

[SAA-C03]Amazon MQ

# 更新日
– 2023/11/03 初回

# [Amazon MQ](https://aws.amazon.com/jp/amazon-mq/)

## これ何?[^1]
オープンソースメッセージブローカー[Apache ActiveMQ](https://activemq.apache.org/) or [RabbitMQ](https://www.rabbitmq.com/)のAWSによるマネージドサービス。

### [補足] メッセージ・ブローカーとは
– 「アプリケーション、システム、サービスが相互に通信し、情報を交換することを可能にするソフトウェア」[^3]で、つまるとこ異なるシステム間を連携する際にメッセージ(テキスト)を介して連携するためのソフト・サービスのこと。
– Amazon SQSやAmazon MSKなどもメッセージ・ブローカーにカテゴライズされる。[^4]

## 何が便利?
– メッセージブローカーなので非同期処理を行いたいときに利用される。(いうに及ばず)
– SQSと比較すると、SQSがAWSによってオートスケーリングしてくれるフルマネージドサービ

元記事を表示

【AWS】用語を整理しながら学ぶAWS Amazon CodeCatalyst

はじめに
この記事では AWSが提供するAmazon CodeCatalyst(以下、CodeCatalyst)を学習していく記事です。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。

## 去年のことですが、覚えていますか

CodeCatalystとはre:Invent 2022で発表されたサービスです。2022年4月のAWS Summit開催中にGAとなりました。

あと1ヶ月で登場してから1年経過するサービス、`Amazon CodeCatalyst`を見ていきましょう。

## Amazon CodeCatalystとは

簡単にいえば、`ソフトウェア統合開発サービス`と言えます。
AWSの公式サイトには下記のように表現されています。

> デベロッパーツール
> AWS での計画、開発、配信のライフサイクルを高速化する

> ソースコードからサービス設定まで、必要なものをほぼすべて備えたブループリントを使用して、新しいプロジェクトを数分で開始できます。

> プロジェクト用に完全に構成されたクラウドベース

元記事を表示

[SAA-C03]Amazon EventBridge (CloudWatch Events)

# 更新日
– 2023/11/03 初回

# [Amazon EventBridge](https://aws.amazon.com/jp/eventbridge/)

## これ何?[^1]
AWSサービス、既存システム、SaaSにおいてイベント駆動型アプリケーションを構築する仕組み。

## 何が便利?
– イベント駆動というところがポイント。EventBrigeスケジューラで大規模なイベントの作成・起動・管理を容易に行える。[^1]
– CloudwatchEventsではAWS内のサービスとの連携が可能であった[^2]が、EventBridgeはCloudwatchEventを発展させSaaSやAWS以外の他サービスとの連携が可能になっている。
– つまり、他システム、他サービス、他アプリケーションとのEvent駆動による連携が可能ということはAPIの口を用意してHTTPリクエストで連携する必要がないということなので、疎結合に迅速に(バックエンドの負担を軽減して)構築できるということ。

## 利用例
– SalesforceなどのCRMサービスを利用し顧客情報の更新などの

元記事を表示

EC2 プレイスメントグループまとめ

## プレイスメントグループとは

EC2インスタンスの配置戦略をコントロールできる機能。
以下の3種類の戦略があるので概要をまとめておく。

– クラスター
– スプレッド
– パーティション

### クラスター

![スクリーンショット 2023-11-03 20.17.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586577/03e3087c-ae9f-11cc-26e3-54d2c90db65c.png)

– 1つのAZ内の低レイテンシグループにインスタンスを集中配置
– インスタンス間が物理的に近いためネットワーク性能は高い。インスタンス間で10Gbps。
– ラックが故障すると全てのインスタンスが同時に故障してしまう

###  スプレッド

![スクリーンショット 2023-11-03 20.17.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586577/398f6a65-1c33

元記事を表示

DevOps on AWS大全

# はじめに
この記事ではDevOpsを切り口に私がまとめている記事を目次形式で的堰堤ます。

# この記事を読んでほしい人
– AWSにおけるDevOpsを網羅的に整理したい人
– 私が書いている記事の前後性や一覧がわかりづらく困っている人
– AWS Certified DevOps Engineer Professionalを目指している人

# DevOps on AWS大全目次
## SDLCのオートメーション
1. AWSにおけるCI/CDのテクノロジースタック
https://qiita.com/tech4anyone/items/f9d24d77cdf2b55d91ec

2. AWSにおけるパイプラインのベストプラクティスパターン整理
https://qiita.com/tech4anyone/items/d0f86ef24ab710498d59

3. AWS CodeCommitの超詳細解説
https://qiita.com/tech4anyone/items/325f9e0e073d0d87529b

4. AWS CodePipelineの超詳細解説
htt

元記事を表示

AWS CodeCommitの超詳細解説

# はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧は[こちら](https://qiita.com/tech4anyone/items/b06f88035d27c6ef13b2)。

この記事ではCodeCommitとはどういうサービスで何ができるのかを超詳細にまとめています。

具体的には以下流れで説明します。
– AWS CodeCommitとは
– AWS CodeCommitとGitHubの比較
– AWS CodeCommitにおけるセキュリティ
– AWS CodeCommitにおけるプルリクエスト承認ルール
– AWS CodeCommit起点のイベント駆動

AWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。

# この記事を読んでほしい人
– CodeCommitがどういうサービスか説明できるようになりたい人
– CodeCommitをプロジェクトで採用する際に実装できるセキュリティ対策を説明できるようになりたい人

元記事を表示

AWS WAF 適用イメージ

## AWS WAFとは
AWS認定の勉強中、AWS WAFのイメージがイマイチつかなかった。
図で書いてイメージつくようにしてみたいと思う。

## Amazon CloudFront への適用

![スクリーンショット 2023-11-03 19.26.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3586577/1831654f-115e-ed16-7548-9ac95ead226c.png)

1. ClientからURLでCloudFrontへリクエスト
1. CloudFront はWAFにリクエストを送信し、WAFでグローバルウェブACLを使用してフィルタリング
1. リクエストが無効であれば、CloudFlontはClientに403エラーを返す。
有効であればCloudFrontはリクエストに対する処理を続行する。

https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/serve-sta

元記事を表示

OTHERカテゴリの最新記事