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

AWS関連のことを調べてみた2023年01月30日
目次

【AWS】VSCodeのターミナルからEC2の踏み台サーバを通してRDSに接続したい

## 今回したこと
RDSに接続する際、`TeraTerm`を使用して`EC2→RDS`に接続していたが、`VSCode`から接続を試みた
(VSCodeというより普通のターミナル powershell)

今回はやっていませんが、Remote-sshという拡張機能を使用するともう少し楽にできそうです

## やってみる
***1\. AWS上で踏み台サーバの確認→接続***
踏み台サーバーのEC2インスタンスにアクセスを行い、チェックボックスにマークを入れて、右上の接続をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/a6e44f0d-662a-7a08-9417-be05a95daa03.png)

***2\. SSHクライアントのコマンド確認***
ターミナル上でSSH接続するためのコマンドが表示されます。
3の「キーが公開されていないことを確認する」は必須ではないと思いますが、やっておきましょう
※注意点 ファイルの指定方法
.pemファイルはど

元記事を表示

[クロスアカウント]S3バケット間でのS3sync(S3アクセスポイント編)

# はじめに
AWSアカウントを跨いで、データ・ファイル連携をしたい場面が多く、
手軽に実装できるS3を介した連携について、まとめてみました。
S3での連携方法はいくつかありますが、今回はS3アクセスポイントを使用した方法について記載します。

# やりたいこと
アカウントAにあるEC2から、アカウントBが所有するS3バケットにS3アクセスポイント経由でアクセスし、アカウントAが所有するS3バケットにファイル連携がしたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740559/58c6d4f9-b3e5-af94-2499-1bc3c567035a.png)

# 作成手順
ポリシーの記載内容が混乱しがちなので、主にポリシーについて記載します。

## アカウントA側
– S3バケット作成
– EC2作成
– EC2にアタッチするIAMロール作成
IAMロールのポリシーは下記の通りです。
“`json
{
“Version”: “2012-10-17”,

元記事を表示

AWS RDS(Aurora MySQL)のスロークエリ発生件数をSlackに通知する

# 前提条件
RDSのスロークエリをCloudWatch Logsに出力している。
awscli v2、jq、curl、sed、catが使用できる環境である。
IAMロール等で、awscliからCloudWatch Logsにアクセスする権限が付与されている。
SlackのIncoming WebHooksのURLを取得済みである。

# この記事について
「AWS RDS(Aurora MySQL)のスロークエリ発生件数をSlackに通知する」Bashスクリプトの紹介です。

こんな通知が飛びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3103963/72a31f05-560a-ad37-8419-eb5df4ed5eaf.png)

リンクから、CloudWatch Logsへアクセスする事ができます。
cron等で、日次実行する事を想定しています。

# スクリプト(Bash)
CloudShellで動作確認をしています。

“`
#!/bin/bash

#メッセージ

元記事を表示

AWS CloudShellで出力される”jq: error string and number cannot be added”に対処するには

# AWS CloudShellでのjqエラー
AWS CloudShellで、jqを使用する際に発生するエラーについて説明します。

数値が含まれる配列を`join`しようとすると、`jq: error string and number cannot be added`が出力されます。

## 期待する結果

“`bash
$ echo ‘[“example”,0]’ | jq ‘join(“.”)’
“example.0”
“`

## 実際の結果
“`bash
$ echo ‘[“example”,0]’ | jq ‘join(“.”)’
jq: error (at :1): string (“.”) and number (0) cannot be added
“`

# 原因

このエラーの原因について説明します。

CloudShellにプリインストールされているjqのバージョンは、1.5です。[^1]

[^1]: 記事投稿時点のバージョンです。将来バージョンアップされる可能性があります。

“`bash
$ jq –version
jq-1

元記事を表示

AWS AmplifyのサンプルをGitHubからCodeCommitにクローンして、AWSコンソールからデプロイする手順(create-react-app-auth-amplify)

AWS AmplifyのサンプルをAWSコンソールからAWS Amplifyでデプロイする手順です。
同様のことは、AWS Amplify CLIでもできると思いますが、コンソールの機能を使いたかったので、AWSコンソールから、Amplifyホスティングを利用しています。

AWS Amplifyには、以下のようなサンプルがあります。
今回の手順では、「create-react-app-auth-amplify」の方を使用しています。

https://github.com/aws-samples/create-react-app-auth-amplify

https://github.com/aws-samples/aws-starter-react-for-github-actions

https://github.com/aws-samples/aws-amplify-appsync-graphql-real-time-canvas

:::note warn
いずれも、以下のように表示されており、そのうち削除されるかもしれません。
「This repository has

元記事を表示

Amazon Transcribeを試してみる

# Amazon Transcribeとは
音声を文字起こししてくれるツール。
コンソール画面でマイクをONにして音声入力を始めるか、音声ファイルをアップロードする。

# 調べるきっかけ
今まで議事録の文字起こしに Google Document の音声入力機能とか使って「だめだこりゃ」と諦めてきた。
音声アップロードしたら文字起こししてくれるツールないかな、むしろなんで無いんだ…ぐらいに思っていた。
まさかAWSにあったなんて…

ということで、簡単に使い勝手や精度を試してみる。
特に記載のない限り、以下に引用する画像はAWS公式サイトか、AWSコンソールから。

# リアルタイムで音声入力してみる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3117440/beb4a8b6-15bf-b669-4698-a16bfce20d2d.png)

いろんな言語に対応している(実際のコンソール画面では、画像より多くの言語に対応)。

![image.png](https://qiita

元記事を表示

GitHubのレポジトリをCodeCommitにコピーする

Qiita初投稿です。

AWS Amplifyの検証をしようとした際に、以前はサンプルからプロジェクトを作成することができたのですが、いつの間にかサンプルが見えなくなっていることに気が付きました。
探したところGitHubにはアーカイブされていたので、念のため、CodeCommitにコピーしました。
その際の手順メモとなります。

なお、そのサンプルは以下のものです。
https://github.com/aws-samples/aws-amplify-appsync-graphql-real-time-canvas

# 目次
– [CodeCommitのレポジトリを作成](#codecommitのレポジトリを作成)
– [GitHubからクローン(ベアコピー)を作成](#githubからクローンベアコピーを作成)
– [CodeCommitにpush](#codecommitにpush)
– [ベアコピーしたレポジトリを削除](#ベアコピーしたレポジトリを削除)
– [動作確認](#動作確認)
– [(おまけ)codecommitのデフォルトブランチを変更](#おまけcodeco

元記事を表示

TerraformでAWSのS3をデプロイする

Terraformシリーズ第六弾は**S3**です。**CloudTrailデータイベント**の設定も含めて記述していきます。:wastebasket:

※過去のTerraform記事はこちら
第一弾:[TerraformでAWSリソースをデプロイしてみる](https://qiita.com/hiyanger/items/ca337f70ad4801072850)
第二弾:[TerraformでAWS環境をデプロイする前に認識しておくべきこと](https://qiita.com/hiyanger/items/9efdc570e6cfed5aab13)
第三弾:[TerraformでAWSのIAMまわりをデプロイする](https://qiita.com/hiyanger/items/8f925e21166461a5ddb1)
第四弾:[TerraformでAWSのネットワークまわりをデプロイする](https://qiita.com/hiyanger/items/cabb1697c29d2ba93b5a)
第五弾:[TerraformでAWSのEC2まわりをデプロイする](htt

元記事を表示

VPCアクセス可能なlambda関数をamplifyで作成する方法 発展版 ~ env毎にVPCを切替可能とする

先に以下の記事を投稿しました

https://qiita.com/kujiraza/items/458629d5a3d210ad45ad

この記事ではamplifyで1つのenvしか用いない前提で記載しています。
本記事ではこの記事(以降元記事と記載します)を発展させて、envを複数用意した場合にenv毎に別のVPCに接続するための手順を記載します。

# やること

[元記事の手順](https://qiita.com/kujiraza/items/458629d5a3d210ad45ad#%E6%89%8B%E9%A0%86)をベースとして、以下の部分を変更してlambdaを作成します。

– セキュリティグループIDとサブネットグループIDをパラメータ化し、値は別ファイルに設定する
– 値の設定先としてenv毎にパラメータを指定できる`amplify/team-provider-info.json`を使用する

# 前提

`amplify add env`により、devに加えてstgを作成済みとします。 これ以外は[元記事の前提](https://qiita.com/ku

元記事を表示

RDS for OracleとAWS Secrets managerの統合を試してみた

# はじめに
RDSの設定変更等を実施していたところ、新しく **Manage master credentials in AWS Secrets Manager -new** というチェックボックスがでてきました。
確認してみたところ、2022/12/22 に発表された [Amazon RDS と AWS Secrets Manager の統合を発表](
https://aws.amazon.com/jp/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) によるものだったようです。
今までユーザのクレデンシャルは統合することもできましたが、マスターユーザについては今回のアップデートで統合されるようになったようです。

ということで、マスターユーザのクレデンシャルのSecrets Managerとの統合を試してみました。

# RDS for Oracleのマスターユーザのシークレットの作成

RDSの変更画面で以下のようなチェックボックスができてますので、チェックします。
![image.

元記事を表示

VPCアクセス可能なlambda関数をamplifyで作成する方法

欲しい情報にたどり着くまでに苦労したので残しておきます。

# やること

amplifyで作成したバックエンド用lambda関数に対して、コンソール画面からVPCの設定を変更すると、`amplify push` や `amplify publish`コマンドを実行するタイミングでVPCの設定が消えてしまいます。
そこで本記事では、lambdaのコンソール画面をいじらずにamplifyのみでVPC設定を行い、上記のような場合でも設定が消えないようにするための手順を記載します。

# 前提

– amplifyのバージョン: 10.6.2
– amplifyプロジェクト名: vpctestapp ※作成済み
– 接続先VPCにプライベートサブネット3つとセキュリティグループを1つ作成済み
(パブリックサブネットへの接続は試していません)
– amplifyを実行できるよう設定したcloud9を利用

以上の環境でlambda関数`vpclambda`を新規追加する場合を想定して、手順を記載します。

# 手順

1. 【事前準備】lambdaの新規作成
1. lambdaのテンプレ

元記事を表示

TerraformでAWSのEC2まわり(SG、IAM、KMS)をデプロイする

Terraformシリーズ第5弾は**EC2**です。EC2を中心に**KMS**や**SecurityGroup(以下SG)** をかいていきます:bulb:

※過去のTerraform記事はこちら
第一弾:[TerraformでAWSリソースをデプロイしてみる](https://qiita.com/hiyanger/items/ca337f70ad4801072850)
第二弾:[TerraformでAWS環境をデプロイする前に認識しておくべきこと](https://qiita.com/hiyanger/items/9efdc570e6cfed5aab13)
第三弾:[TerraformでAWSのIAMまわりをデプロイする](https://qiita.com/hiyanger/items/8f925e21166461a5ddb1)
第四弾:[TerraformでAWSのネットワークまわりをデプロイする](https://qiita.com/hiyanger/items/cabb1697c29d2ba93b5a)

※以下実際にコードを記述していきますが、**”${local.X

元記事を表示

RDS for Oracle の RMANバックアップをEFSに出力してみた

# はじめに

昨年RDS for OracleとEFSの統合が利用できるようになり、[Amazon RDS for Oracle と Amazon Elastic File System (EFS) 統合を試してみた](https://qiita.com/asahide/items/93c63159f2aea73eb2a3)という記事を書きました。
2023/1/23に[Integrate Amazon RDS for Oracle with Amazon EFS](https://aws.amazon.com/jp/blogs/database/integrate-amazon-rds-for-oracle-with-amazon-efs/)という AWS Database blogが発表され、その中でRMANバックアップのEFS出力について触れられており、前回の私の検証ではその部分は実施していなかったため、追加で実施してみたものになります。

# RMANバックアップのEFSへの出力

RDSからEFSへの出力は予め設定してあるものとします。(不明なかたは[前回の記事](http

元記事を表示

AWS Serverless デジタルバッジを取得する③ イベント駆動型アーキテクチャ編

[このデジタルバッジ](https://aws.amazon.com/jp/blogs/news/introducing-new-aws-serverless-digital-learning-badges/)取得のために、AWS Skill Builderの[このコース](https://explore.skillbuilder.aws/learn/lp/1585/serverless-learning-plan-japanese)を学習している記録

自分のスキルレベルは以下。
– SAAは取得
– 4年前ぐらい
– 実務利用なし
– 趣味レベルではあり

# Designing Event-Driven Architectures (Japanese)

https://explore.skillbuilder.aws/learn/course/14319/play/63373/designing-event-driven-architectures-japanese;lp=1585

## サーバーレス思考

– シンプルなサーバーレスパターン

元記事を表示

AWS CDK – コマンド

# コマンド一覧

|コマンド|機能|
|—|—|
|cdk list (ls)|アプリケーションのスタックをリスト|
|cdk synthesize (synth)|指定されたスタックから AWS CloudFormation テンプレートを生成、印刷|
|cdkbootstrap|アセットを含むスタックのデプロイに必要な AWS CDK ツールキットスタックをデプロイ|
|cdk deploy|指定されたスタックをデプロイ|
|cdk destroy|指定されたスタックを破棄|
|cdk diff|指定されたスタックをデプロイされたスタックまたはローカル AWS CloudFormation テンプレートと比較|
|cdk metadata|指定されたスタックに関するメタデータを表示|
|cdk init|指定したテンプレートから現在のディレクトリに新しい AWS CDK プロジェクトを作成
|cdk context|キャッシュされたコンテキスト値を管理|
|cdk docs (doc)|ブラウザーで AWS CDK API リファレンスを開く|
|cdk doctor|潜

元記事を表示

AWS CDK – Assets

# Assets

CDK ライブラリやアプリケーションにバンドルできるローカルファイル 、ディレクトリ、または Docker イメージです。

# S3 アセット

CDK が S3 にアップロードするローカルファイルおよびディレクトリです。

[aws-s3-assets](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3_assets-readme.html) モジュールを通じて、パッケージ化し S3 へアップロードすることが可能です。

## Lambda 関数の例

[from_asset](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Code.html#static-fromwbrassetpath-options) で、ディレクトリの内容をバンドルし、それを関数のソースコードとして使用します。

“`python
from aws_cdk import Stack
from constructs impor

元記事を表示

Elastic Beanstalkでアプリケーションだけ作る(ついでにワーカー環境も作る)

# はじめに

自動で構成を良しなにしてくれるAWSのElastic Beanstalk。ウェブサーバー環境とワーカー環境の2種類があるのですが、最初触ったときはアプリケーション作成と同時にウェブサーバー環境も作成されてしまい、ワーカー環境だけ作りたいのに…と思っていました。

今回(ウェブサーバー環境を作らずに)アプリケーションだけ作成し、そのあとにワーカー環境を作る方法がわかったので記事にしました。

## かんたんにElastic Beanstalkの構成

”アプリケーション”と”環境”の区別が最初わからなかったので、以下に図示しました。
最初に”アプリーケーション”を作って、その中でウェブサーバーやワーカーの”環境”を作っていく、という構成です。

“`mermaid
graph
subgraph “Elastic Beanstalk”
subgraph “Application_A”
Environment_A
Environment_B
end
subgraph “

元記事を表示

TerraformでAWSのネットワークまわり(VPC、サブネット、ルートテーブル他)をデプロイする

Terraformシリーズ第4弾はネットワークです。

項目はけっこういろいろあってネットワークの主要になる**VPC、サブネット、ルートテーブル、DHCPオプションセット、IGW、NATGW、エンドポイント、ピアリング**あたりです。イメージしにくいと思うので図にしてみました:pencil2:

ファイル名

※過去のTerraform記事はこちら
第一弾:[TerraformでAWSリソースをデプロイしてみる](https://qiita.com/hiyanger/items/ca337f70ad4801072850)
第二弾:[TerraformでAWS環境をデプロイする前に認識しておくべきこと(tfstate.tf / providor.tf / output.tf / ディレクトリ構造)](https:

元記事を表示

SORACOM GPSマルチユニットで取得した情報をAWS Timestreamへ送信させる

# はじめに
[AWSサービス上で地図画像を作成できるようにした](https://qiita.com/ckw-1227/items/a6470dc3cca1c5fc2d53)ので、次は地図画像に乗せるデータをAWSサービスに取り込みたい。
…ということで、SORACOMのGPSマルチユニットで取得した気温データをAWSサービス上に取り込むことにする。

# 構成
SORACOM Funnelサービスを利用し、GPSマルチユニットの情報をIoTCore経由でTimestreamに送信する。
使用するデータベースはDynamoDBとTimestreamで迷ったのだが、まだ使ったことのないサービスを使いたいという単純な理由でTimestreamを選択。
![007_Timestream_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402694/1470cf69-2967-f39a-60ba-317ad0d571b0.png)

# 手順
1.GPSマルチユニットがデータを取得・送信していることの確

元記事を表示

非SAPエンジニアが、四苦八苦してAWS Certified: SAP on AWS – Specialty 試験 (PAS-C01)に合格した話

# はじめに
SAPを全然触ったことがないエンジニアが、AWS資格のPAS-C01に合格したので、その合格記として書いていこうと思います。

# 生い立ち
私は、エンジニア歴5年目で、AWS資格の9個目として本資格に挑戦をしました。(SAPは全然分からないマンです。)
本試験は、1度目は、729点というぼちぼちな点数で不合格でした。
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/f6604905-ff6c-26c8-26c7-f751b0d69d42.png)

2度目にして、755点で無事合格でした。(ギリギリの合格でした。。。)
![1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/c515fbbe-ef41-5a97-af0f-d0e00d1948cd.png)

スコアパフォーマンスでは、「移行」と「運用とメンテナンス」が弱いと判定されました。
![2.PNG](https

元記事を表示

OTHERカテゴリの最新記事