AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

「Amazon S3 マルチリージョンアクセスポイント(MRAP)」のアクセス制御

# 1. はじめに
– 先日の記事[「【ハンズオン】「Amazon S3 マルチリージョンアクセスポイント(MRAP)の使用を開始する」をやってみる」](https://qiita.com/mksamba/items/06eed774ea045179d322)にて、MRAPの基本的な使い方(設定方法、レプリケーションなど)を確認した。
– 本記事では、MRAPへのアクセス制御の方針について、自分が運用しているシステムの場合のユースケースに基づき、何パターンかの設定方法の検証を行う。(MRAPへのアクセス制御の方法は、通常のS3バケットへのアクセス制御をするのと基本的には同じだが、MRAPがある場合、S3バケットとは別にMRAP自体にもアクセスポリシーが設定可能であり、やや複雑でよく分からないため)

# 2. 構成図/接続要件

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189302/0cacc6fd-15d5-4bc5-8036-4f7105fc635c.png)

– 今回は

元記事を表示

【AWS EC2 + Flask + Docker + SQLite】AWS EC2上にFlaskプロジェクトをデプロイする方法

# はじめに
本記事ではAWS EC2上にFlaskプロジェクトをデプロイする方法を解説します。基本的にはコピペで作業が完了するよう解説していきますので、とりあえずデプロイを体験してみたいという方は参考にしてください。

# 目次

1. [完成図](#完成図)
2. [Webサーバの作成](#webサーバの作成)
2. [ElasticIPの割り当て](#elasticipの割り当て)
2. [DBサーバの作成](#dbサーバの作成)
2. [Webサーバの設定](#webサーバの設定)
3. [参考文献](#)

# 完成図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/f055d2b2-134f-98b5-5530-bfc63c53c689.png)

Flaskプロジェクトをデプロイするための最小構成で構築予定です
サーバを立ち上げてそこにFlaskプロジェクトをデプロイします

# Webサーバの作成
### Webサーバとは
インターネットからリクエス

元記事を表示

AWS Python 処理結果を S3 経由で Redshift にコピー

## はじめに
統計解析や複雑な処理を施した結果をデータベースに取り込み、それを Yellowfin などの BI ツールで可視化したい要件も多々発生します。例えば、[こちら](https://qiita.com/ExtremeCarvFJ/items/cc5a0cc62cd4c149a644)の記事にあるベイズ推定を用いた計算などは、事前に Python を用いてプログラム処理しておく必要があります。

本記事では、AWS EC2 上で Python 処理した結果を、 CSV ファイルに出力し、CSV ファイルの内容を S3 経由で Redshift のテーブルにコピーする一連の処理の流れを紹介したいと思います。

主な流れは以下の通りです。
1. Python 処理結果を CSV 出力 (EC2 上)
2. CSV ファイルを S3 に転送
3. S3 から Redshiftテーブルにデータコピー

特にデータ量が大きい場合、1 行ずつデータを Insert する処理は現実的ではないため、ファイルからテーブルにデータをコピーする処理は必須となります。

## 環境準備と前提
Pyt

元記事を表示

結局 QuickSightでグラフを表示する際に、SPICEとAthenaどっちが安く表示できるのか問題について

初めまして、メグです。

今回はタイトルにもある通り、SPICEとAthenaでのDirectQueryのどちらが安く収まるかについて記載していきます。

## 各サービスの料金体系について
### SPICE
SPICEはQuickSightのインメモリです。
料金体系は、保存しているデータ量に応じて毎月課金が発生します。

【金額】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3714038/dd9bc807-c92a-25b5-83ee-5545b3f7dc79.png)

例)
10GBのデータを格納している場合の金額

“` math
\begin{align}
10(GB)  \times 0.38(USD/GB) = 3.8(USD)
\end{align}
“`

### Athena(SQLクエリ)
Athneaの課金額は、クエリを叩いた際にスキャンされるデータ量に応じて課金額が決まります。

そのためデータ量の大きいテーブルに対して何度もクエリを叩いていると、そ

元記事を表示

AWS Config マネージドルールを使ったリソースの設定管理

# AWS Config マネージドルールを使ったリソースの設定管理
本記事では、AWS Configを使用する際に必要な設定内容と、マネージドルールを利用する際によく使用されそうなルールの一覧と説明について記載しています。

## 1. AWS Configとは
### 1.1 AWS Configの概要
AWS Config(以下Config)は、サポートしているAWSリソースに対して設定変更の記録を行うサービスである。
設定に対して問題がないかを確認し、メール通知や修正対応をすることができる。
ConfigがサポートするAWSリソースの詳細は、[AWS Configデベロッパーガイド-サポートされているリソースタイプ](https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/resource-config-reference.html)を参照。

### 1.2 ルール
Configルールとは、AWSリソースが一般的なベストプラクティスに準拠しているかどうかを評価する機能である。
リソースの設定に変更があった際

元記事を表示

AWS EC2からDynamoDBテーブルにアクセスする方法(IAM設定)

内容:
Amazon DynamoDBテーブルにアクセスする必要があります。しかし、このアクセス権限をどのように設定すればよいか分からないという声がありました。そこで、今回はEC2からDynamoDBテーブルにアクセスする方法について解説します。

IAMロールの作成:
まず最初に、DynamoDBテーブルにアクセスするためのIAMロールを作成します。IAMコンソールにアクセスし、「ロールの作成」を選択します。その後、DynamoDBへのアクセス権限を含むポリシーをアタッチした新しいロールを作成します。

EC2インスタンスプロファイルへのIAMロールの割り当て:
次に、作成したIAMロールをEC2インスタンスに割り当てます。EC2コンソールにアクセスし、対象のインスタンスを選択します。その後、インスタンスの詳細ページで「アクション」を選択し、「インスタンス設定」>「IAM ロールの関連付け」を選択します。ここで、先ほど作成したIAMロールを選択し、関連付けを行います。

EC2インスタンスは、IAMロールに付与された権限を使用してDynamoDBテーブルにアクセスすることができます

元記事を表示

RDSを自動起動する際にKMSは考慮しなくていい話

気になったので残しておきます。

KMS で作成した CMK で暗号化している RDS インスタンスを一時停止の状態から起動する場合、または一時停止を行う場合、起動/停止を実施するユーザまたはロールには KMS へのアクセス許可は不要です。

元記事を表示

awsのec2サーバーを使用してクラウド上のデータベースからUnityに値を取得したお話

# はじめに
お久しぶりです。
今回は前回の記事(https://qiita.com/komugikoShimizu/items/ff3bc3a2d9b3c62700d2 )でローカルのデータベースから値を取得していたものを、AWSでEC2サーバーを使用してクラウド上に設置した というお話です。
ちょっとややこしい話が多くなりますが、最後までお話しします。
詰まったところも覚えているところは対処法を踏まえて解説していきます。
今回もまだまだ初心者である自分の理解をさらに深めるための記事でもありますので、まちがいもあるかとはおもいますがご了承ください。

# 環境
Unity(多分バージョンは何でも)
AWS EC2サーバー
・MySQL
・PHP

## AWS EC2サーバーについて
AWSが提供しているクラウド内の仮想サーバー。
LinuxなどOSを使用してAWS上にパソコンをもう一つ作るイメージ。
今回はそのパソコンにデータベースを作成して、そこにアクセスするよー ってことです。

# AWSの環境構築について
0.AWSのアカウントを作成しよう(クレカ情報がいるよ)

1.最初

元記事を表示

LambdaでLangChain(0.2.11)を動かして、Bedrock・Kendra・DynamoDBのRAGアプリを実装する

# はじめに
お疲れ様です。@yuki_inkです。

**Bedrock・Kendra・DynamoDBを利用してRAGアプリを作りたい!**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731275/ac6019bd-7730-f514-3d94-fe15fd19a91c.png)

ということで、LangChainを使って実装してみました。
Kendraを利用したRAGに加え、会話履歴のセッション管理を行えるアプリを目指しています。
今回の開発は、以下の記事で紹介されているアプリを参考に行いました。

https://dev.classmethod.jp/articles/amazon-bedrock-with-langchain-invoking-claude3-from-lambda/

>今回は、LangChainが提供する機能を使って以下のようなことを実現したいと思います。
・チャットの会話履歴を記憶して、生成AIに文脈を踏まえた回答をさせる。
・会話履歴をDynamoD

元記事を表示

【AWS SageMaker】Notebookインスタンスにライフサイクル設定を行って、起動時に自動でpip installするようにしてみた

# 背景
SageMakerのNotebookインスタンスを起動する度に、pip installコマンドを実行する事が面倒に感じてきましたので、起動時に自動でpip installコマンドを実行するようにしてみたいと思いました。

# 行った事(概要)
Notebookインスタンスに、インスタンス開始時にpip installコマンドを実行するライフサイクル設定を行いました。

# 行った事(詳細)
### 1. 事前確認
Notebookインスタンスにライフサイクル設定を行う前の挙動を確認します。
Notebookインスタンスを起動して、ライブラリーのインポートを試してみたら、ライブラリーがインストールされていない旨を怒られました。
“`python:hogehoge.ipynb
import janome
“`
“`
—————————————————————————
ModuleNotFoundError Traceback (

元記事を表示

Security Hubのアラートメール おすすめ振り分け方法

## はじめに
Security Hubからのアラートを皆さんはどのように確認していますか?
今回は、Security Hubのアラートをメールで配信している場合の、おすすめの振り分け方法を共有します。

## Security Hubのアラート
Security Hubでは、GuardDutyやInspector、CIS Benchmark等のセキュリティ標準をはじめとしたセキュリティ製品のアラートを集約管理することができます。

Security Hub はセキュリティコントロールに対してチェックを行い、検出結果をアラートとして発出します。

検出結果はセキュリティイベントとして、EventBridgeと連携し、SNSを利用したアラートメール等の発砲や、LambdaやRunCommand を利用した自動修復アクションの設定が可能です。

今回は、Security Hub → EventBridge → SNSでアラートをEmailで通知するケースにおいて、メールのおすすめの振り分け方法について共有します。

## Security Hubのアラート内容
### アラートの形式
Se

元記事を表示

TerraformでGitHub Actionsのセルフホストランナーとして動作するAWS CodeBuildを自動構築する

# はじめに
以前の記事では、GitLab Self Managedに接続するAWS CodeBuildとAWS CodePipelineを作成してみた。

https://qiita.com/neruneruo/items/b570fb6f739f1efb8250

https://qiita.com/neruneruo/items/1535776e5cab5df115bd

GitLab Self Managedとのインテグレーションでは、AWS CodeBuildやAWS CodePipelineの実行結果をプルリクエスト上で確認するためにはいろいろな作り込みが必要になり、それ自体がトイルになる可能性があった。

一方で、GitHubでは、2024/4/24より、GitHub ActionsのセルフホストランナーとしてAWS CodeBuildを指定できるようになった。

https://aws.amazon.com/jp/about-aws/whats-new/2024/04/aws-codebuild-managed-github-action-runners/

これにより

元記事を表示

AWS Lambdaで翻訳APIを作成するハンズオンをやってみた

# はじめに

SAAの勉強で知ったサービスを実際に触って学習内容の定着を図りたいという目的でハンズオンをやってみました。

参考にしたハンズオンの動画、資料は大変わかりやすかったのですが、動画が作成された段階でのコンソール画面と2024年8月時点でのコンソールが若干違っていたため少しわかりづらかったです…。
作業メモとしてこちらの記事を作成してみました。

以下のリンクから日本語でのAWSハンズオンや資料一覧を確認できます。
https://aws-samples.github.io/jp-contents-hub/

# AWS Lambda ハンズオン

今回参考にしたハンズオンはこちらです。
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-reg-event.html?trk=aws_introduction_page

# 使用するAWSのサービス

今回使用するAWSのサービスは以下の通りです
– [AWS Lambda](https://aws.amazo

元記事を表示

AWSに関わる単語を整理する

# この記事の趣旨
AWSを初めて学ぶ際、大量の耳慣れない単語に辟易することは必至。インフラの具体的な構築手順などは慣れていくしかないとして、概念的なものはできるだけ整理しておきたいところ。そこで、自分の理解度を確認・向上させるため学んだ単語を使って主要なサービスを正しく説明してみたい。項目を分けてもよい。
# 問題 次の単語を全て用いてAWSを説明せよ。
AWS, VPC, RDS, アベイラビリティゾーン, ドメイン, オブジェクト, インターネットゲートウェイ, EC2, セキュリティグループ, ELB, IAM, サブネット, ルートテーブル, Route53, インスタンス, バケット, S3, クラウドコンピューティングサービス, リージョン, SSH, AMI,
# 解答例
### 総論
AWSとは、Amazonが提供するクラウドコンピューティングサービスであり、そのシェア率はGCP、Azureを抑えて世界最大である。主要なサービスにVPC、EC2、RDS、S3、Route53などがある。AWSアカウント作成時には、すべての権限を有するルートユーザーが作成されるが、意図し

元記事を表示

AWS: AWS入門(EC2編2) – LinuxインスタンスにWindows端末からOpenSSHで接続してみる

###### 実施環境

Windows 11 Home Version 21H2
Microsoft Edge 124.0.2478.67 (64bit)
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Tera Term Version 4.106

### 0. 概要

前回、 EC2 で Linux インスタンスを起動しました。
今回は起動したインスタンスに Windows 端末から SSH コマンドと SCP コマンドで接続してみます。
また、 Tera Term でも接続してみます。

### 1. OpenSSH の確認

まずそもそもの OpenSSH のインストールですが、今回使用する Windows 11 はデフォルトで OpenSSH が入っているので、特に何もインストールはしなくて大丈夫です。
OpenSSH が入っているかを確認するには、「スタート」⇒「すべてのアプリ」⇒「設定」から「アプリ」⇒「オプション機能」の「インストールされている機能」で確認できます。
「 OpenSSH クライアント」があれば OK です

元記事を表示

IAM Identity CenterのユーザーをLake Formationで許可してAthenaでクエリする

# やりたいこと
タイトルの通りです。
「ユーザー認証はOktaなどの外部IdP認証にして、Data Catalogへの認可はLake Formationで一元管理したい!」というユースケースなどで使われます。

2023年の12月の以下のアップデートで上記の構成が可能となりました。

https://aws.amazon.com/jp/about-aws/whats-new/2023/12/amazon-athena-identities-data-access-audit/

ただし、これで利用できるのはAthenaコンソールではなく、**Amazon EMR Studioから**のAthena SQLインターフェースであることに注意してください。

>信頼できる ID 伝達を使用する Athena ワークグループからのクエリは、IAM アイデンティティセンターが有効な EMR Studio の Athena SQL インターフェイスから実行する必要があります。

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/workgrou

元記事を表示

「AWS Hands-on for Beginners AWS Systems Managerを使ったサーバ管理はじめの一歩編」をAWS CLIでやってみる

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-systems-manager-2022-reg-event.html?trk=aws_introduction_page

上記、「AWS Hands-on for Beginners AWS Systems Managerを使ったサーバ管理はじめの一歩編」 をAWS CLIでやってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/80af7d1f-f5cb-4cb0-4d0e-1c2775acc1e3.png)
ハンズオンから引用

# 02 ハンズオンの事前準備
## 変数設定
“`bash:コマンド
# スタック名
STACK_NAME=”h4b-stack” \
&& echo ${STACK_NAME}

# スタックテンプレート名
TEMPLATE_NAME=”h4b_ssm_basic_template.json” \
&&

元記事を表示

AWS BackupをStep Functionsで実行する際の権限

# はじめに
AWS BackupのオンデマンドバックアップをStep Functionsから実行しようとした際に、権限回りで苦労しましたので、備忘録的に記事にします。

# 概要
AWS BackupをStep Functionsから実行する際、以下の権限を宛がう必要があります。

– AWS Backup用権限
– バックアップを実行できる権限
– Step Functions用権限
– 上記のロールを別サービスに渡せる権限
– 保存先のBackupVaultに対して、StartBackupJobが実行できる権限

上記を含む、Step Functionsでオンデマンドバックアップを実行するCloudFormationのコードを記載します。

# 参考

https://docs.aws.amazon.com/aws-backup/latest/devguide/integrate-cloudformation-with-aws-backup.html

# CloudFormationのコード

もっともシンプルな構成として、以下を作成します。

元記事を表示

[sls]デプロイ時にssmの値を使って環境変数を設定してしまおう

## 結論

Serverless Frameworkを使ってデプロイする際に、AWS SSM Parameter Storeの値を使って環境変数を設定できます。
ステージ名を含めたキー名を指定することで、環境ごとに異なる設定を簡単に管理できます。

“`yaml
// Serverless Frameworkの環境変数設定
MY_SECRET: ${ssm:/${self:provider.stage}/my/secret}
“`

## AWS SSM Parameter Storeとは?

AWS Systems Manager Parameter Storeは、アプリケーションの設定データや秘密情報を安全に管理するサービスです。

## SSM Parameter Storeを使った環境変数の設定方法

以下の`serverless.yml`設定ファイルでは、SSM Parameter Storeから値を取得し、環境変数`MY_SECRET`に設定しています。

“`yaml
provider:
name: aws
runtime: nodejs14.x
st

元記事を表示

SystemsManagerのInventoryを使用してのインスタンスの管理

## 概要
SystemsManagerの中でインスタンス状態の管理を行えるInventoryを使ってインスタンスの管理手順をまとめました。
Inventoryの管理できるようにすることでアプリケーションのインストールなども行えるようになります。

## EC2への確認
* EC2へは以下のコマンドでインストールを行います
“`
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
“`

## PCの確認
* WindowsPCの管理にSkyseaなどを使って行うことが多いかと思いますが、AWSのSystemsManagerの機能を使って確認することもできるのでやってみます。
* Windowsを管理対象にするためにマルチアクティベーションの設定を行います。
* AWS Workspacesに対しても同様に管理することが行えます。
* 以下のようにSystemsManagerのアクティベーショ

元記事を表示

OTHERカテゴリの最新記事