AWS関連のことを調べてみた2022年12月28日

AWS関連のことを調べてみた2022年12月28日

AWS Application Composerを使ってS3監視機能を作ってみた

# はじめに
re:Invent2022にて発表された新サービスのApplication Composerを使ってみました。
発表の際、現地でのリアクションも非常に良く、注目サービスの1つだと思います。

# Application Composerとは
GUI画面でserverless系サービスを構築できるサービスです。
GUI画面での操作がリアルタイムにCloudFormationテンプレートに反映されます。
但し単体でデプロイ機能を持っていない為、CloudFormationに出来上がったテンプレートを投入するか、
SAM CLIにてデプロイすることになります。

特徴①
任意のローカルフォルダとの連携が可能です。
サービス利用時にCloudFormationテンプレートの保存先としてローカルフォルダを選択することで、
ローカルフォルダに生成されたテンプレートがGUI画面の操作をリアルタイムに反映してくれます。
弊社ではBOXを使用していますが、BOXフォルダとの連携も可能でした。

特徴②
GUI画面でサービスアイコン同士を線でつなげることで、接続設定を自動でやってくれます。

元記事を表示

非同期処理で立ち上げたlambdaのDLQはFIFOキューに入れられない

当たり前といえば当たり前かもしれないですが、設計時点で気が付かなかったのでメモ。

非同期実行の例としてS3, API Gatewayを想定しています。青い矢印は正常に疎通が取れます。

![名称未設定ファイル.drawio (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882979/1db77976-0ba3-d5dd-fd2d-12ffa2bb4715.png)

# なぜこうなるのか
非同期実行でLambdaへ処理が流れてきたときに、Lambda内で並列的に同時実行されるためだと思います。

要するに、流れてきたときには処理A, 処理B, 処理C, …という順序で流れてきたものが、再試行後の失敗時にはその順序が(例えば) 処理C, 処理A, 処理B, …と変わってしまっている可能性が高いためです。

そのためFIFOキューの特徴である順序を保つということが保証できなくなり、仕様上送信できないのではないかと思われます。

**※ですが、console上ではFIFOキューをDLQとし

元記事を表示

AWS Nitro enclave

# Getting started: Hello enclave

以下の公式ページだと、いくつか手順が抜けており、コピペだけだと最後までたどり着けません。

– そのため、下記ページをベースに最後までコピペでEnclaveを体験できることを目指します
– 逆にインスタンス作成に関する情報は、この記事においてほとんど省略することとします。

https://docs.aws.amazon.com/enclaves/latest/user/getting-started.html

## Step 1: インスタンスを作成する

### インスタンス情報

– Region: Virginia Region
– Amazon Linux 2: `ami-0b5eea76982371e91`
– Instance Type: m5.xlarge

### 起動時の注意

**EC2 > インスタンス > インスタンスの起動**の画像において、以下の画像のように”高度な詳細”から**Nitro Enlabe**を**有効化**します。

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

元記事を表示

【受験記録】AWS Certified: SAP on AWS – Specialty (PAS-C01)

## 前提
– 6年目エンジニア
– アプリケーション開発メイン
– インフラは少しだけ

## 試験結果
– 1回目
– 受験日: 2022/11/23
– 点数:685点/750点/1000点(取得スコア/合格ボーダー/満点スコア)
– スコアパフォーマンス: 全セクションで”改善が必要”
– 2回目
– 受験日: 2022/12/27
– 点数:778点/750点/1000点(取得スコア/合格ボーダー/満点スコア)
– スコアパフォーマンス: 全セクションで”コンピテンシーを満たしている”

## 試験感想
– とにかく情報が少ない
– 今年からできた試験でそもそも受けた人も少なく、書籍や問題集もあまりない
– 情報が少ないため、1度受けてみる必要があると判断して、そもそも2回受けるつもりで学習を実施(ちょうど[再受験無料キャンペーン](https://pages.awscloud.com/TrainCert-Japan-PearsonVUE-Retake-Terms-and-Conditions-2022.html

元記事を表示

Session Manager で Amazon Linux 2 にリモート接続して、コマンドログを取得する

# はじめに

AWS で EC2 インスタンスや RDS 等を構築したときに、どのようにアクセスをしていますか。よくあるのが、Public Subnet に踏み台サーバーを構築し、Security Group で特定の IP アドレスに限定してアクセスする方法です。特定の IP アドレスに限定させているので、大きな問題はないですが、それでもシステムに入るための入り口としての踏み台サーバーが、Public IP を持っているのはセキュリティ的に気になります。Public IP の削除が出来るのであれば、よりセキュアに構成ができます。

構成図で表すと、こんな感じです。

![image-20221226224535387.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c6054bd1-80f8-8ac4-7efe-71c70d0e8e9f.png)

こういった課題感を解決するために、Session Manager で上記構成図の踏み台サーバーを無くすことが出来ます。Private

元記事を表示

クラウドで堂々のシェア1位!AWS(Amazon Web Services)

![aws.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/fc7040ff-915a-e4de-99bd-f8262b8c4bfc.jpeg)

エスプリフォートでは積極的に新しい事を取り入れつつ、ビジネスシーンに合わせたインフラ及びシステム構成、セキュリティ、BCP対策などを考慮したご提案を心がけています。
これら磨きあげた技術力が、お客様に高いクオリティでシステムを提供する一助になっています。

## はじめに

[今では当たり前!クラウドコンピューティング導入](https://qiita.com/espritfort_tech/items/4b5fc2c8b8a4b733ac88)
[新たなアプローチ!サーバーレスアーキテクチャ](https://qiita.com/espritfort_tech/items/83883ece946bf38f8bac)

上記記事でご紹介した通り、クラウドサービスは今ではあらゆるシステムにとってなくてはならないサービスの一つになっていることは、既

元記事を表示

Amazon Athena の テーブル定義のバージョン管理とバックアップ方法

## 背景

Amazon Athena を使うと、S3 上の CSV ファイル等などの構造化されたデータに対して SQL クエリをかけることができ、便利です。
Athena では、クエリをかける前に、データのテーブル定義(スキーマ)を設定する必要があります。
テーブル定義を設定するためには、マネージメントコンソールなどから手動で設定したり、DDLを実行して設定することもできます。もしくは、Glue クローラを使って自動的に検出することもできます。

一番ありそうなのが、両方使うパタンです。例えばGlue クローラで自動判定したのちに、手動でデータ型などの修正を行う。
もしくは逆に、最初に DDL を実行しておいて、新しく追加されたデータについて Glueクローラでアップデートしていく、など。

そうなっていくと面倒なのが、テーブル定義のバージョン管理やバックアップです。
Amazon Athena 上で見えているテーブル定義を抜き出して、Git / CodeCommit などのツールでバージョン管理をしたいと考えた場合、意外と悩ましかったので、記事にしてみました。

## やりた

元記事を表示

AWS SAA 合格記録

この度AWS SAAに合格したので記録を残そうと考えました。これから受ける方の参考になると幸いです。

### 前提・勉強時期
SAA受験段階で基本情報・AWS CLF・LPIC 1を取得しています。
実務経験としては開発・システム運用合わせて2年強です。
AWSは実務未経験です。
SAAの勉強は約1か月半ほどしました

### 勉強内容・使用教材

– 【SAA-C03版】これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座
初めはハンズオンもすべて実施していましたが、あまりにも進まなかったため最後の模擬試験2つだけ実施しました。所々模擬試験で不明だったところを聞き返すなどという利用の仕方をしました。

– 【SAA-C03版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)
最初の3題だけ取り組みました。

これらの講座計5つの模擬試験を3周しました。
1週目はすべて正答率50~60%くらいでしたが、答え以外の解答についてもしっかり吟味しました。解答は60分ほどで終わりますが、1週目

元記事を表示

Prefect 2をGitHub Actionsからデプロイするときには `PREFECT_API_URL` を指定しよう

「[Prefect Cloud + Fargateでバッチ処理のワークフローを作成するまで](https://qiita.com/ninomiyt/items/2879986208d60bf67864)」にあるように、私はPrefectの実行環境を整えていて、GitHub ActionsによるCI/CD処理の自動化を試みています。

Prefect 2で、GitHub ActionsからS3のStorageを利用してデプロイする処理を実装したく、次のように `PREFECT_API_KEY` を利用してデプロイする実装をしていました。

“`yaml:.github/workflows/deploy.yml
# 本当はPythonのインストール等があるが省略
– name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: ${{ env.AWS_ROLE }}
role-sessi

元記事を表示

OpenSearchで対象のIPアドレスを検索結果から除外するクエリ

# やりたいこと
OpenSearchのAlertingのクエリで、指定のIPアドレスを除外して検索したいことがありました。
いくつかの方法で除外できたので、その方法を記載します。
また、今回はAlertingで試しましたが、[クエリDSL](https://opensearch.org/docs/latest/opensearch/query-dsl/index/)が実行できればどこでも利用可能です。

# 前提
Amazon OpenSearch Serviceバージョン1.2での内容になります。
OpenSearch ServerlessやElasticsearch、OSSのOpenSearchでは挙動が異なる場合があるのでご注意ください。

# IPアドレスの除外指定方法
まず、指定するフィールドのtypeはIP address fieldであることが前提となります。
今回の記事の例では、`source.ip`というフィールドがIP address fieldとなっています。
[公式ドキュメント](https://opensearch.org/docs/latest/opens

元記事を表示

AWSのMLサービスを整理してみた

# 背景・目的
AWSの機械学習サービスに、どのようなものがあるかわかっていないので全体像を整理したいと思います。
前回は、「[AWSのAIサービスを整理してみた](https://qiita.com/zumax/items/a8541406f59ab477a4af)」で整理しましたが、本ページではMLサービスを整理します。

# まとめ
| MLサービス |概要 | ユースケース/利点 |
|:—|:—|:—|
|[Amazon SageMaker](https://aws.amazon.com/jp/sagemaker/) | フルマネージドインフラストラクチャ、ツール、ワークフローを使用して、あらゆるユースケース向けの機械学習 (ML) モデルを構築、トレーニング、デプロイ| データサイエンティストにはIDEを、ビジネスアナリストにはノーコードインターフェースを提供し、より多くの人々が機械学習でイノベーションを起こせるようにします。

大量の構造化データ(表形式データ)と非構造化データ(写真、ビデオ、地理空間、音声)にアクセスし、ラベル付けし、機械学習用

元記事を表示

【AWS】AppSync GraphQLのクエリfilter検索条件

AppSyncのGraphQL検索条件のfilter条件をまとめてみます。

# filter
|operator|description|
|–|–|
|eq|指定した値と一致する(=)|
|ne|指定した値と一致しない(!=)|
|gt|指定した値より大きい(>)|
|ge|指定した値以上(>=)|
|lt|指定した値より小さい(<)| |le|指定した値以下(<=)| |between|指定した1つ目の値よりも大きく、2つめの値よりも小さい| |contains|指定した値が含まれる| |notContains|指定した値が含まれない| |beginsWith|指定した値で先頭一致| |and|すべての条件を満たす| |or|いずれかの条件を満たす| |not|指定した条件を満たさない| # 使用例 ```js let filter = { or: [{ priority: {eq:1} }, { priority: {eq:2} }] }; await API.graphql({ query: listProducts, variab

元記事を表示

OpenSearchでBackend rolesを使ってユーザーとロールを紐づける

# はじめに
皆さんこんにちは。いよいよ年の瀬ですね。
今回は、Amazon OpenSearch Serviceのユーザーとロールの設定についてまとめてみようと思います。
ドキュメントにも記載はありますが、初見だとなかなかわかりにくいので、一度図でまとめてみます。
少しネタバレすると、**Backend Roles**をうまく使うのがコツです。

# 前提
Amazon OpenSearch Serviceバージョン1.2での内容になります。
OpenSearch ServerlessやElasticsearch、OSSのOpenSearchでは挙動が異なる場合があるのでご注意ください。

# OpenSearchのロールって何?
Amazon OpenSearch Serviceでは、[きめ細やかなアクセスコントロール(Fine-grained access control)](https://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/fgac.html)という機能を用いることで、OpenS

元記事を表示

既存のCodeCommitのリポジトリに一括でファイル、フォルダ群をpushする

# やりたいこと
CodeCommitにアクセスできない環境で開発を実施していて、あるタイミングでそのファイル群をリポジトリにpushしたいということがありました。
意外とハマったので記事にします。やりたいことを箇条書きにすると、以下となります。

– 渡されたzipファイルを、解凍してCodeCommitにpushしたい
– 既にCodeCommitにはリポジトリが作成されており、その中で更新したいファイルがzipに固められている
– サブフォルダもあるので、GUIでのpushはきつい

# 方法
Cloudshellでzipファイルを解凍して、cloneしてきたフォルダにコピーして、pushします。

## Cloudshellでzipファイルをuploadする
ブラウザでコンソールにログインして、Cloudshellをクリック。
その後、右上の「Actions」→「Upload file」をクリックして、zipファイルをアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

入門 AWS CloudFormation #1(EC2編)

インフラやクラウドの専門というわけではないのですがそろそろIaC周りもちゃんと勉強しておきたい・・・という感じなのでAWSのCloudFormationについて入門しつつ復習として記事にまとめておきます。

なお、会社としてはほぼAWSで統一されている点と社内のクラウドなどに詳しい方々もCloudFormationを使われていたので相談のしやすさなどを加味しTerraformではなくCloudFormationを選択しています。その辺りはユースケースに合っていれば特にこだわりはありません。

※とりあえず最初ということでEC2を絡めてごく基本的なところの記事を書いていきます。将来もしかしたら2記事目以降を執筆して追加のEC2関係や他の様々なサービスや機能などにも触れていくかもしれません。

# 注意事項

本記事の処理を動かすとEC2関係などで色々と追加になったり起動したりします。その辺はリソースの停止や削除などをしないとお金がかかったりしてくる可能性があるためご注意ください。

# 触れること

– CloudFormationの概要
– YAMLの復習
– CloudFormati

元記事を表示

8年振りに機種変したら、MFAデバイスの登録が出来なくなった件

## 結論
1. MFAデバイスの新規登録が出来ない?と思ったら、MFAデバイスの名前にユーザー名を登録してみよう。
1. 上手く登録出来たら管理者に教えてあげよう。

## 現象
昨日、8年振りに携帯電話を機種変し、意気揚々と新品のiPhone13miniをAWSのMFAデバイスとして登録しようとしたら、こんなエラー画面が出ました。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656547/c4a9d990-52d7-ff96-c272-546195042017.png)

「あれ?アクセス許可って無かったっけ?」と思いながら、管理者に画面ショットを送り、連絡する。
年末の慌ただしい中、管理者も迷惑だろうなと思いながら返事を待つと、
「許可設定はされてます。(あらためて)確認いただきたく。」
との返事。
もう一度試してみたがダメだった。フム。。

## 原因 2022年11月16日以降のアップデートで、複数のMFAデバイスの登録が可能となったから。
エラーメッセージを読むと、「必要

元記事を表示

AWS TimestreamのtimeカラムをLambdaでJSTに変換する際のTips

# 問題
Timestreamにて“`time“`カラムが下記のように“`タイムゾーン無し&文字列“`として出力される場合があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342722/d7f9fc4f-e0fa-2736-f51a-c3b3d9380dc2.png)

Lambdaで時間処理を行う場合、文字列では不便ですのでJSTに変換しなければなりません。
ですが、単純に“`str → date“`では変換できない事象が発生しましたので共有したいと思います。
できれば、レイヤーも追加せず簡単に行う方法かつ、python3.9に合うモダンな方法にしたい。

# 解決策
そのままの状態では、dateフォーマットに合わないことがわかりました。
最初に文字列として取得できるので、**末尾の桁数を調整**することでやや力技ですが解決できました。

“`python
from datetime import datetime
from zoneinfo impor

元記事を表示

S3: ファイルのアップロードやダウンロードと考慮事項

# 背景
S3 にファイルアップロードが必要になったので、調べた記録

# 利用例

## 前提
“`typescript: client
import { GetObjectCommand, PutObjectCommand, ListBucketsCommand, ListObjectsCommand, ListObjectsV2Command, S3Client } from “@aws-sdk/client-s3”;

const REGION = “ap-northeast-1”;
const clientConfig = {
region: REGION,
// for Proxy
// requestHandler: new NodeHttpHandler({
// httpAgent: httpsAgent,
// httpsAgent: httpsAgent
// })
}
const s3Client = new S3Client(clientConfig);
const BucketName = “

元記事を表示

【初心者向け】3分で読めるAWS

# はじめに
以下の読者を想定して作成しました。

– 駆け出しエンジニア
– AWS に興味がある
– さらっと AWS の概要が知りたい。

# この記事でわかること
– AWS の概要
– AWS の特徴
– AWS を使うメリット

# AWS とは

AWS (Amazon Web Services) は、Amazon.comが提供するクラウドコンピューティングサービスです。
クラウドコンピューティングとは、インターネットを介して、
– コンピューター
– サーバー
– ストレージ
– データベース
– ネットワーク
– アプリケーション
などのサービスを利用することを指します。

# 特徴
AWSを利用することで
企業または個人が
– インフラやサービスの構築
– アプリケーションを実行するための必要なハードウェアやソフトウェアの用意
が簡単または必要なくなります。

また、必要なリソースを必要なときに必要なだけ利用できます。**(従量課金制)**

そして、AWSでは異なるニーズに対応したサービスが用意されています。

例えば
– EC2 (Elastic Comp

元記事を表示

AWS Lambdaを使おうとした時の初期設定をメモ書き

自分のメモ書きとして投稿します。

## 経緯

スクレイピングをサーバーサイドで実施したいと思い調べたところ、AWS Lambdaを使うことで、特にサーバーを用意することなく実現できるのではという考えに至った為です。(実際に実現できるかは不明)

## 環境

* Windows10
* Docker Desktop
(未熟者過ぎて他何書けば良いか分かりません)

## 参考サイト

* 全般の流れ
https://zenn.dev/445/articles/29aff4c8ce2e01

* AWSをPowershellから使うための初期導入
https://yoshinorin.net/articles/2018/08/19/aws-tools-for-windows/

* AWSをPowershellから使うための導入後~接続
https://blog.shibata.tech/entry/2018/09/20/185257

* 上記接続時のアクセスキー等の取得
https://docs.aws.amazon.com/ja_jp/powershell/latest/use

元記事を表示

OTHERカテゴリの最新記事