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

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

Terraformの特徴について整理してみた

# 背景・目的
Terraformについて、数年前にコードを読んだ程度だったので、
[詳解 Terraform 第3版](https://www.oreilly.co.jp/books/9784814400522/)を元に知識を整理します。

なお、本ページでは、第一章をもとに概要を整理しています。詳細が気になる方は、書籍を御覧いただければと思います。

# まとめ
下記に特徴をまとめます

|特徴|説明|
|:–|:–|
|DevOpsの起源|クラウドへの移行により、DevもOpsもSWに注力することになった|
|DevOpsのゴール|SWのデリバリを今までより遥かに効率化する|
|DevOpsの4つのコアバリュー|・文化(Culture)
・自動化(Automation)
・計測(measurement)
・共有(Share)|
|IaCツールのカテゴリ|・アドホックなスクリプト
・設定管理ツール
・サーバテンプレーティングツール
・オーケーストレーションツール
・プロビジョニングツール|
|Terraformとは|Terraformは

元記事を表示

AWS Systems Managerのステートマネージャーの関連付けを適用させ、Amazon Inspecter v2の検出結果にアップデート後の内容を反映させる

# 経緯

Amazon Inspecter v2(以降は『Inspecter』と呼ぶ)が検出した脆弱性に対応するため、ライブラリのアップデートを実施した。しかし Inspecter の検出結果にはライブラリを更新した結果が反映されていなかった。

1時間後に Inspecter の検出結果を再確認すると、ライブラリアップデートで対応した脆弱性は検出されなくなっていた。これでもよいのだが、上司や顧客に対応済であることをすぐに証明できるよう、Inspecter の検出結果にライブラリアップデートした内容がすぐに反映できるようにしたい。

# 結論

AWS Systems Manager (以降は『SSM』と呼ぶ)のステートマネージャーにある、 **InspectorInventoryCollection-do-not-delete** の関連付けを今すぐ適用させることで、スキャン結果をすぐに表示できる。

# 補足

AWS公式サイトによると、Inspecter の EC2 スキャンには2通りの方式があるとのこと。

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

元記事を表示

サクッとS3からローカルにダウンロードする

# 概要
1個2個のファイルならともかく、20個以上のS3のファイルをサクッとローカルにダウンロードしたいということありませんか?私はありました。そんなときのための覚書。phpのペライチで実現。

# 前提
プロダクトにs3のキーを持つテーブルがある、ないし別でs3のキー一覧を手元に持っていたとする

# 事前準備
①VisualStudioCodeをインストール
②拡張機能、PHP Serverをインストール
これにより、ペライチのphpを簡単にブラウザで実行できる。業務効率化にめちゃ便利
③composerをインストール
④composerでaws-sdkをインストール
“`
composer require aws/aws-sdk-php
“`

# コード

S3からキーを利用して、ローカルにファイルを落とす場合
“`php

元記事を表示

[AWS]個人的に調べた用語やサービス

こんにちは!れーあです。
ここはAWSの勉強をする中で自分が個人的にわからなかったり気になったりした用語やサービスについて、記載していくメモ帳のような記事です。調べるたびに随時更新していきます。

## 調べたこと

CloudWatch
AWSリソースと、AWS で実行されているアプリケーションをリアルタイムで監視する。
監視した内容に対して通知を送信したり、リソースを自動的に変更できるアラームを作成したりできる。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html
***
Data Firehose
旧Kinesis Data Firehose。(2024/2/9:名称変更された)
エンドポイント宛てにリアルタイムストリーミングデータ配信をする
フルマネージドサービス。
アプリケーションの作成やリソースの管理は必要なし。
データを送信するようにデータプロデューサーを設定すると、指定した送信先にデータが自動的に

元記事を表示

How was AWS AppRunner

AppRunner is super easy to deploy app, infra including log base, monitoring base.
Its monitoring base enable to watch enough metrics.
Built infra is decoupled from the other services.(it will need to open peering conection to other VPC if you want it to connect to db and so on)
AppRunner can deploy code from console editor like AWS Lambda or GitHub repogitory somoothly, And also can deploy container app via AWS ECR. but it does not have sidecar container concept. so if you want to use DB or cach

元記事を表示

様々な埋め込みモデルのベクトル表現を2D散布図で可視化して比べてみる

# この記事について

この記事では、以下の埋め込みモデルを扱います

– Titan Text Embeddings(amazon.titan-embed-text-v1)
– Cohere Embed – Multilingual(cohere.embed-multilingual-v3)
– OpenAI Ada(text-embedding-ada-002)
– OpenAI Embedding 3(text-embedding-3-large)

# この記事を3行+グラフで

– 埋め込みモデルのベクトル表現を2Dの散布図で可視化した
– 性能差が分かりやすく、OpenAIのEmbedding 3が圧倒的、次点でCohereが強い
– グラフで得意なキーワードを調べると、性能の出ていないベクトル表現でもそれなりのスコアにはできる

スコアの高い埋め込みモデルは、グラフにすると以下のように見えました。

|OpenAI Embedding 3|Cohere Embed – Multilingual|
|—|—|
|Lambda Web Adapterでplumberを動かす

# はじめに
Lambda Web Adapterという、HTTPで動くコンテナに対して仲介してLambdaで動くようにしてくれるツールがあります。

https://aws.amazon.com/jp/builders-flash/202301/lambda-web-adapter/

これを使って、Rのplumberをコンテナにして動かしてみました。

以前Lambdaで、plumberのようなRのREST APIを作りましたが、Lambda Web Adapterを使えば、plumberを使えるのでかなり楽です。

https://qiita.com/a_b_/items/1afde637201fb70592ce

# 概要

– Lambda非サポートのRを、Lambda Web Adapterを用いて実行
– Webアプリを対象としているので、plumberを使用

# 参考

https://zenn.dev/junnuj/articles/c2ba888670bc8e

# やってみた

環境はCloud9のm5.largeを使いました。t3.smallでもできま

元記事を表示

【速報】Agents for Amazon BedrockがCloudFormationに対応しました(ほぼ一撃)

もっと早い人がいます。めちゃくちゃ早い!

https://dev.classmethod.jp/articles/bedrock-cfn-kbase-agent/


こちらの記事でLambdaをSAMでデプロイする方法を紹介しました。
APIがかなりスピーディに作成できますので、一度お試しください!!

https://qiita.com/moritalous/items/f828c5d7d2d116884f9a

このSAMプロジェクトを修正して **ほぼ一撃** でデプロイできることを確認しましたので紹介します。

## サンプルプロジェクトの取得

AWS Lambda Web Adapterのサンプルを使用します。

https://github.com/awslabs/aws-lambda-web-adapter

“`bash
git clone https://github.com/awslabs/aws-lambda-web-adapter.git
“`

examplesフォルダー内にある`bedrock-agent-fastapi-zip`に対して修

元記事を表示

AWSのALB + EC2の構成でサイト管理画面へのIP制限をする(WAF無し)

## webサイトで管理画面へのアクセスはIP制限を行いたい場合の方法メモ
### 経緯
料金等を考えずにALB + EC2で特定URLへのアクセス制限をしたい場合はAWS WAFを利用すれば良いのですが、コストの都合上などで使用しない方針になったのでEC2のapacheのconfigで制限を実施しました。

### Apacheでのアクセス元IP制限について
ALBを挟まずにEC2のみでサイトを運用している場合はhttpd設定ファイルに
“`

Require

“`
の記載で対象サイトにアクセス元のIP制限をかけることができるのですが、ALBを挟んでいる場合はEC2と通信するのは常にALBとなるのでこの書式ではIP制限を行うことができません。

### 設定した内容
なので今回はX-Forwarded-Forヘッダの値を見て以下のような記述でアクセス制限をします。apacheの設定ファイルに記載します。
“`

SetEnvIf X-Forw

元記事を表示

【AWS CLI】指定ユーザーの許可ポリシーの一覧取得スクリプト(bash)

# 目的
AWS CLIで指定ユーザーにアタッチされているポリシーの一覧を取得する。
※AWS CLIでは`aws iam get-user –user-name xxxxx`や`aws iam list-attached-group-policies –group-name yyyyy`でユーザー名やグループ名を指定して、許可ポリシーを確認することはできる。
しかし、一発でそのユーザーに許可されている全ポリシーを取得することはできない。(たぶん)

# スクリプト
## 1.ヒアドキュメントでスクリプトを作成
“`bash:get_user_policies.sh
cat << 'EOT' > get_user_policies.sh

#!/bin/bash

# 使用方法
# ./get_user_policies.sh ユーザー名

# ユーザー名を取得
user_name=$(aws iam get-user –user-name $1 –query ‘User.UserName’ –output text)

if [ $? -ne 0 ]; then
ec

元記事を表示

JP1/AJS3(v13)Manager&View構築手順

# はじめに
最近JP1/AJS3(v13)を構築する機会があったので、構築手順を簡単にまとめてみました。
※本記事では動作確認のための最低限の設定しか行っていません。詳しい構築手順や設定方法は公式ドキュメントをご参照ください。

## 前提
– 検証用のため製品版ではなく評価版を利用する
– Amazon EC2で同じVPCにサーバ2台を構築する(構築手順は割愛)
– ネットワークやセキュリティグループのルール設定を適切に行う(設定手順は割愛)
– スーパーユーザー権限を所有するOSユーザー(root)で作業を行う

## 動作環境
– JP1/AJS3バージョン
– v13(評価版)
– マネージャーホスト
– os: Red Hat Enterprise Linux 9
– ami: ami-0014871499315f25a(64 ビット (x86))
– Viewホスト
– os: Microsoft Windows Server 2016 Base
– ami: ami-0f09363f613061e8c (64 ビット (x86))

元記事を表示

[AWS] CDKネタ – Transfer family サーバのプライベートIPアドレスを取得する

# お題

ヤクの毛を狩るまでのお話です。

* Network Load Balancer のターゲットとして、Transfer Family で作成した FTPS サーバを指定したい
* 指定するにはIPアドレスが必要
* 残念ながら CDK 標準では、取得できない
* CDK カスタムリソースを利用して AWS SDK を呼び出し、IPアドレスを取得すべし! :bulb:

# コードの断片

CDK スタックまるごとは長すぎるので、関連部分のみです。

## FTPS サーバの定義

Transfer family は CDK L1 で作らなくてはいけません。

`vpc` 変数には、`ec2.IVpc` な値が入っていると思ってください。

“`ts
import * as cdk from “aws-cdk-lib”;
import * as cr from “aws-cdk-lib/custom-resources”;

// (略)

// FTPサーバ
const server = new cdk.aws_transfer.CfnServer(t

元記事を表示

AWS Configのルールと修復アクションをTerraformで自動構築する

# はじめに
[AWS Config](https://aws.amazon.com/jp/config/)は、アカウント運用上のコンプライアンス要件をルールに落とし込み、違反しているリソースを検知してアクションを行うところまでを自動化することができる。

ルールについても、多岐にわたる[AWSのマネージドなルール](https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/evaluate-config_use-managed-rules.html)と、それに対する自動修復アクションが容易されているため、アカウント開始後すぐにでも利用開始できるようになっている。

チームがある程度の大きさの規模になり、アカウントを複数人で運用することになった際、ガバナンスのためのトイルを減らしてくれる便利なサービスなので、是非活用できるようにしておきたい。
※AWSに不慣れなメンバがJOINした際の事故防止にも役に立つ。

本記事に必要な前提知識は以下の通り。
– AWS+Terraformの基本的な知識
– [AWS SDK fo

元記事を表示

【AWS】APIGatewayでLambdaのアプリ側で発生した例外処理を500エラーで返したい。

## 背景

JavaアプリをLambdaでホストしているが、API Gateway経由でビジネスロジック側のエラー処理した際、ステータス上200で返ってきてしまい、困ったので調べた

## TL;DR

Javaだと例外処理の返却値が標準エラーの形式と合ってないので、レスポンス内容にステータスコード(5XX系)を埋め込む
200系のレスポンスマッピングテンプレート側でステータスコードを条件分岐させてマッチすればオーバーライドするように処理させると500エラーにできる。

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html#apigateway-override-request-response-parameters-override-response

## 確認手順

以下は、検証のために確認した手順を記載しておく

### 前提条件

以下構成なっていることを前提とする。

![image.

元記事を表示

AWS Certified Cloud Practitioner認定(CLF)の合格体験記(実務経験なし/3週間)

# 1. はじめに
2024年3月に受験したAWS Certified Cloud Practitioner認定で合格(858/1000)しましたので、合格までの記録を残したいと思います。
# 2. 勉強開始時点でのレベル
・文系大学卒業
・非IT業界の営業職4年間
・ITの知識ゼロで、社内のIT部署へ人事異動(周りの営業職に比べたらexcelが得意だった程度)
・前月、基本情報技術者試験に合格
・AWSに関する実務経験なし

基本情報技術者試験の学習を通して基本的なIT用語は理解していましたが、クラウドやAWSに関する実務経験はありませんでした。初心者がイチから学んで3週間で合格しましたので、同じような状況の方の参考になりましたら幸いです。

# 3. AWS Certified Cloud Practitioner認定を受験した理由
### ・会社で必須の資格だった
私は人事異動でIT系の部署に異動しましたが、その際に会社から2年以内にはAWS Certified Cloud Practitioner認定を必須で取得するようにという指示を受けました。実際には先輩を見ると合格していな

元記事を表示

AWS Organizationsの委任管理者の登録で詰まった箇所

## この記事について

– AWS Control Tower の検証中に、管理者の委任作業で詰まった点があったので、その紹介記事です

## 詰まった箇所

– 具体的には、Control Tower の Account Factory Customization (AFC) の検証中に、Service Catalog の管理者を委任する場面です

### Service Catalog 管理者委任のコマンド実行

– [DevelopersIOのAFCの記事](https://dev.classmethod.jp/articles/control-tower-account-factory-customization/)を参考に以下コマンドを CloudShell で実行しました
– AWS公式ドキュメントの[register-delegated-administrator](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/organizations/register-delegated-adm

元記事を表示

ぼっちでもControl Tower連載[2/2]~予防的ガードレールの確認~

# はじめに
この記事では予防的ガードレールSCPの設定を確認していくのですが、
書き終える頃に、ガードレールやコントロールについてまとめられているドキュメントを見つけました。
https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/controls-reference.html

コントロールについての記述がドキュメントの下層にあったため気付くのが遅れました…
Control Towerのコントロールとして必須コントロールの他にデジタル主権コントロールやプロアクティブコントロール、選択コントロールが用意されていて、初期設定では必須コントロールのみ適用されているそうです。

各種設定についてはドキュメントによくまとまっているので、この記事はあくまで、Control Towerの実装直後のコンソール画面を確認する程度の目的でお読みください…

# Control Towerでデフォルトでされる設定の確認をしていくよ
連載企画の①でとりあえずLandingZoneを作ってしまったので、どんな設定がされているのか

元記事を表示

Amazon Cognitoによる認証・認可の導入[概要編]

## はじめに
今までの案件でCognitoの導入を担当することがあったんですが、この辺の仕様は時が経つと忘れがちなので、備忘録として残しておこうと思います。

認証・認可の技術は結構難しいので、1記事にまとめるとわかりづらいかなと感じたので、記事をいくつかにわけて投稿していこうと思います。

今回は概要編をやっていきます。

## Cognitoってなにができるの?

簡単にいうと、会員登録制のサイトなどユーザー登録が必要なアプリに対して簡単に認証・認可の仕組みを導入できます。

つまり
– ログイン画面の用意
– アプリからユーザー情報の切り離し
– ロール・権限の定義

などをやってくれるので、本質的なアプリ自体の機能の開発に集中できます。

## Cognitoの実際のログイン画面

Cognitoで利用できるログイン画面は2パターンあって、AWSが用意しているHosted UIとユーザー側が独自で用意するUIがあります。

### Hosted UI
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

AWS SAA取得に向けて

#自己紹介
IT業界:3年目
年齢:33歳
資格:JavaGold,OracleSilver,UMTP L2,基本情報…だけだったはず。
経験工程:基本設計〜結合テスト、システムテスト
経験言語:c#,Java,JavaScript

#AWS SAA取得を目指す経緯
現在のプロジェクトではAWSどころかクラウドを触っているわけではないが、クラウド関連の知識を付けるべくAWS SAAの取得を目指している。
正直無くても困らないが、すこしでも引き出しを増やしたいと思い取得を目指すことにした。

#AWS SAA取得へ向けて
ping-tの問題集でインプットとアウトプットをひたすら繰り返す予定。
ただ、どうしてもただ暗記するだけになりがちなので、qiitaで各サービスごとにまとめ記事を投稿しようと思う。

#AWS SAA取得後
開発スキル向上や顧客折衝の経験などは実務でやるとして、当面はプライベートの学習のメインは資格取得で行こうと思う。
AWS SAAを5月末で取得後は、情報処理安全確保支援士を今秋に取得を狙いたい。

元記事を表示

ECS On Fargateを利用する際に検討すべき非機能要件

# 背景
少し前にAWS Elastic BeanstalkからECS On Fargate(以下、Fargate)への移行を行いました。この移行に際し、注意すべき非機能要件がいくつかありましたので、それについて記載します。

# ロギング

ECSのコンテナは必要に応じて起動・削除されるため、コンテナ内にログを蓄積しておくと削除されてしまいます。そのため、ログドライバーを利用して外部にログを転送する必要があります。

ECSのロギングの設定には2つのパターンがあります。

CloudWatchLogsにログを送信するawslogsログドライバーを利用するパターン
CloudWatchLogsにログを送信する形式です。
送信先はCloudWatchLogsしか選択できないため、コスト面が気になる場合やCloudWatchLogs以外のサービスにログを流したい場合などは後続のawsfirelensログドライバーを選択した方が良いでしょう。
こちらのメリットとしては、ログドライバーを設定するだけで済むので設定が簡単です。
自分が担当しているサービスはCloudWatchLogsにサービスの

元記事を表示

OTHERカテゴリの最新記事