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

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

DNSを切り替える時は、TTLは短くしておきましょう。

個人開発ではありますが、DNSやドメインなどの移行作業をしていた時に、TTLをミスって2日も待ち時間が発生してしまったので、個人的なメモ。

## NSレコードのTTLを下げておかないと…

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/migrate-dns-domain-in-use.html#migrate-dns-lower-ttl

こちらのAWS公式の記事の「ステップ 4: TTL の設定を下げる」にある通り、
> NS レコードの一般的な TTL 設定は 172800 秒、つまり 2 日です。NS レコードには、ドメインネームシステム (DNS) がドメインのトラフィックをルーティングする方法に関する情報を得るために使用できるネームサーバーがリストされています。現在の DNS サービスプロバイダと Amazon Route 53 の両方で NS レコードの TTL を下げることで、DNS を Route 53 に移行している際に問題が検出された場合のドメインのダウンタイムを短縮できます。

元記事を表示

IAM Roles for Service Accountsの認証情報をCamel Spring-bootで利用する方法

## 概要
Spring Boot 環境で、IAMRoles and Service Account (IRSA) を使用した認証情報で、s3やsqs などのAWS リソースにアクセスするのに、情報が少なかったので記載しておきます。

## 前提
必要なIAM ロールや、ポリシー、OIDCプロバイダの設定、k8s ServiceAccount リソースはすでに作成済みの前提で、Spring Boot 環境で実装する部分についてのみ記載します。
必要な IAM ロール、 ServiceAccount が設定され、Deployment と紐づけられた場合、Pod 内の環境変数として、AWS_ROLE_ARN, AWS_WEB_IDENTITY_TOKEN_FILE の環境変数が設定されます。
[参考](#参考) からの更新部分になりますので、アーキテクチャについては参照元をご確認ください。

## application.properties
2024/7/27 現在、デフォルトの認証プロバイダチェーンに WebIdentityTokenFileCredentialsProvider

元記事を表示

Amazon Kendraに電子帳簿保存法の質問をしてみる

[前回](https://qiita.com/mine820/items/ff4a02bfb8b7730eeed0)、Amazon Kendraの勉強をしたので、早速改造してみます。
今回は、電子帳簿保存法の「一問一答」のPDFを検索したいと思います。

# 電子帳簿保存法 一問一答
URLはこちらになります。
– [電子帳簿・電子書類関係](https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/pdf/0024005-113_r601.pdf)
– [スキャナ保存関係](https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/pdf/0024005-113_r602.pdf)
– [電子取引関係](https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/pdf/0024005-113_r603.pdf)

電子帳簿保存法の[法律](https://elaws.e-gov.go.jp/document?lawid=41

元記事を表示

RAGを実装するため、まずはAmazon Kendraの勉強をしてみる

RAGに興味が出てきたので、その実現の第一歩として「Amazon Kendra」の勉強をしてみることにしました。
大規模言語モデル (LLM) と組み合わせて使用することで、ユーザー向けに安全な生成系AIを活用した会話体験を迅速に作成できるらしいです。

参考とするのは、AWSのハンズオン「[Amazon Kendra で簡単に検索システムを作ろう!](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Amazon-Kendra-2023-reg-event.html)」になります。

# Amazon Kendraとは
[Amazon Kendra](https://aws.amazon.com/jp/kendra/)は、機械学習を活用したエンタープライズ向けのマネージド検索サービスです。
Amazon Kendraを利用することで、Amazon S3やGoogleドライブなどインターネット上のデータや自社内のデータなど、様々な場所に散らばっているデータやドキュメントから、自然言語を使って必要な情報を効率

元記事を表示

i18nでAmplify-UIの認証画面の日本語化を試しました

# やりたいこと
・前回Amplify-UIで作った認証画面は、デフォルトで英語表示になっていますので、日本語化対応を行いたい

※Amplify-UIの認証画面の作り方は以下をご参照ください

https://qiita.com/curlneko/items/99acf9d6c09482f6acb1

# やり方

前回のフォルダ配下に、i18n.jsのファイルを作り、日本語翻訳のdictを作ります~
(i18nは事前にモジュールのnpm installが要らずAmplify-UIでもともとついた機能となります)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/78cfc2a9-1e8d-bb61-ea13-2a16144c7f7b.png)

中にはこんな感じ~
(日本語翻訳は自分でやらないといけない)

“`ruby:i18n.js
// i18n.js
import { I18n } from ‘aws-amplify/utils’;

const dict =

元記事を表示

SageMaker ProcessingJobのCLIからのジョブ管理方法

# TL;DR

こんにちは。弥生R&D室の飯田です。R&D室ではSageMakerを使用して機械学習 (ML) のプロジェクトを進めていますが、SageMakerには[ProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html)というサービスがあり、モデル訓練のような重い処理に適しているため大変便利です。

しかし計算用インスタンス上で実行しているプロセスの管理には直接 `ps` や `kill` を使うことができず、独自のコマンドが必要となるため、よく使うものをこの記事で紹介したいと思います。

# 実行環境

AWS CLI が動作する環境、および利用するSageMakerのドメインに対応したアクセスキーの設定が必要です。

# コマンド集

## 現在動いているジョブを確認する

ローカルにおける `ps` に相当するコマンドです。非常によく使います。

“`bash
aws sagemaker list-processing-jobs –status-equals I

元記事を表示

ReactアプリでAmplify-UIの認証画面を作ってみた

# やりたいこと
・JavaScriptでReactアプリを作る
・AWSの認証関連サービスと相性がいいCSSフレームワークであるAmplify-UIを導入する

# ①Reactアプリを作る
まず、Reactアプリを構築

“`ruby:
npx create-react-app react-app
“`

すると、react-appというフォルダが作られ、フォルダへcdしてください

“`ruby:
cd react-app
“`

Reactアプリに必要なモジュールが自動で入れられ、package.jsonがこんな感じ

“`ruby:qiita.rb
{
“name”: “react-app”,
“version”: “0.1.0”,
“private”: true,
“dependencies”: {
“@testing-library/jest-dom”: “^5.17.0”,
“@testing-library/react”: “^13.4.0”,
“@testing-library/user-event”: “^13.5

元記事を表示

[AWS #21] VPC


## はじめに
こんにちは
今回はネットワークサービスである **VPC** について紹介したいと思います。
ヴァーチャル、プライベート、クラウド…プライベートな何かができそうですね。
## VPC
「VPC」ははじめにで少し出ていましたが**Virtual Private Cloud**の略称です。
AWS上に作成できる**プライベート仮想ネットワーク空間**です。
AWSアカウント内に**専用のネットワークを作成**して、ネットワーク内にEC2、RDSなどのAWSリソースを配置することができます。VPC内にEC2などのリソースを作成するには、**サブネットが必要**になります。
![AWS21_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806

元記事を表示

AWSのCognitoユーザーが自身専用のS3のディレクトリのコンテンツを編集可能なSwiftUI検証アプリを作ってみた

# はじめに

`AWS`の`User Pool`と`User Identity`を`AWS-SDK-Swift`利用して`S3 Bucket`のユーザーの`Home Directory`内のコンテンツを編集する動作検証アプリを試してみたいと思います。`Home Directory`と言っているのは、ログインユーザーのみがRead/Writeなどの権限を持っていていて、他のログインユーザーはアクセスできない環境を目指しています。よって仮にアプリがハックされて他のユーザーのデータにアクセスを試みても、AWSレベルで保護される事を目的とします。

前回同様に、将来の自分への備忘録を目的としていますので、部分的に記載漏れなどがあるかもしれませんが、同様な事をやろうと思った人が、一部でも参考になるなら幸いです。また、執筆時点での`AWS-SDK-Swift`のステータスはデベロッパープレビューなので、`API`などに変更があるかもしれません。

そして、AWSへのrootレベルもしくは必要な権限は必要です。ちなみに、私自身`AWS`はほぼ初心者なので、間違ったもしくは理解不足による不正確な記載

元記事を表示

AWS/AppRunnerでフォワード・リバースプロキシサーバの構築を試みた

## 経緯

* EC2上にSquidを導入してフォワードプロキシサーバとして運用しているのですが、可用性向上/運用負担軽減のためにSquidのDockerイメージがAWSのApp Runner上で動作可能か試してみました。

## 結論

* AppRuuner上でフォワードプロキシは動作不可。(Fargateでは動作可)

## リバースプロキシとフォワードプロキシの違い

* http(s)通信を中継するという観点では技術的にはリバースプロキシをフォワードプロキシとして使うこともできなくはないですが、

* 外部送信を避けたい組織内部の情報(X-Forwarded-forに個別端末のIPアドレスが付与される等)が転送される。

* 送信先のURLとリバースプロキシのURLが分離されない。

という点がわかりやすいかもしれません。

* 比較表を作ると以下のような感じですが、双方http(s)通信を中継する役割は同じなので少しわかりにくいかもしれず、上記解説にて補足したものです。

“` text:送信先URLの指定方法(yahooにアクセスする場合を想定)

# フ

元記事を表示

移行の前にCodeCommitの位置づけを振り返る

## はじめに

前提として、このブログの内容を踏まえたものです。

https://dev.classmethod.jp/articles/aws-start-to-restrict-codecommit-and-cloudsearch/

上述のブログの言を借りると、AWS CodeCommitにおいて7/28現在、以下の状況になっている様子です。

> – 既存リポジトリがあるアカウントは特に制限無くCodeCommitを利用可能
> – これまでCodeCommitを使っていなかったアカウント(もしくは既存リポジトリが無いアカウント)は新規リポジトリ作成不可

これはCodeCommitのサービス終了を即座に意味するものではありません。ただし、リポジトリを新規に利用できなくなるということは、一般的にはCodeCommitとしてのサービス縮退、メンテナンスフェーズとして捉えることもできます。先のブログが公開されたのは日本時間では土曜日ということもあり、少なくともこの解釈を否定するアナウンスは出ておらず、個人的には動揺する点もありました。

今回はCodeCommitが担っていた役

元記事を表示

ASW SAA 合格するまでにやったこと

# はじめに
AWS SAAに合格することができたのでやったことや、やっておいてよかったことを書き留めていきたいと思います。

証拠(になるかわかりませんが…)

![clTwpGLrrOHVLlb1722175132_1722175668.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2778030/76ef2989-6925-b149-1967-cd43f05eb868.jpeg)

## 試験を始める前の状態・知識
– クラウドプラクティショナーは取得していない
– EC2やS3、CloudFrontなど超主要なサービスはなんとなく知っている
– AWSを実務で使用したことはない

## 勉強期間
三ヶ月ほど
かかりきりだったわけではなく、平均で1時間もやっていないと思います…(もしかしたら30分切るかも)。
一週間前、とくに前日と当日は6時間ほど詰め込みました。暗記の要素が多少なりともあるので、短期記憶が持つ

元記事を表示

「Amazon CloudFrontおよびAWS WAFを用いて エッジサービスの活用方法を学ぼう」をAWS CLIでやってみる

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

上記、「AWS Hands-on for Beginners Amazon CloudFrontおよびAWS WAFを用いて エッジサービスの活用方法を学ぼう | AWS Webinar」 をAWS CLIでやってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/ed4eb45e-a35f-26fd-3aeb-c085bad3e529.png)
ハンズオンから引用

# 04 Amazon CloudFrontのハンズオン その1 (静的コンテンツの配信設定)
## S3バケット作成
“`bash:コマンド
# 変数設定
DATE_VAR=$(date +%Y%m%d) \
&& echo ${DATE_VAR}

S3_BUCKET

元記事を表示

過去と現行のEC2およびRDS設定をCLIで比較する方法

## はじめに
EC2とRDSのインスタンスタイプを変更後、describeコマンドを実行して差分を取得してみた

### EC2を作成してインスタンスタイプをt2.microにしてみた
変更前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/2954e202-1160-8746-a167-d0b1d0401559.png)

cloudshellを起動して以下のコマンドを取得して設定情報を取得した
“`
aws ec2 describe-instances –instance-ids <インスタンスID i-042961aa090ca3366> > list_bef
“`
### EC2を作成してインスタンスタイプをt2.smallにしてみた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/ee245580-6a48-4787-ec82-8fe19e0

元記事を表示

ECS Fargateにログイン

## はじめに
ECS FargateからMongodb Atlasに接続するアプリケーションを作成したときに、エラーの原因がわからず、結局Fargateにログインして確認した。以下、ログインしたときの手順のメモ。
大まかには、次のような流れでログインした。

1. Session Manager pluginをインストールする
2. タスク実行ロールにSession Manager 機能のアクセス許可を追加
3. ECS Exec機能を有効にする
4. ECSタスクのARNの確認
5. コンテナ名を取得する
6. ECS Fargateにログイン

## 前提
* AWS CLIはインストール済み
* OSはWindows 11

## 手順
### 1. Session Manager pluginをインストールする
Curlコマンドで次のURLからインストーラをダウンロードして実行する。
“`bash
curl https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionMan

元記事を表示

【AWS】ELBリスナールールで送信元IPとホストヘッダーをAND条件にする

# 概要
ELBのリスナーのルールで、送信元IP(`source-ip`)とホストヘッダー(`host-header`)をAND条件にする方法を紹介します。

## 前提
AWS ELBでは、複数の`Conditions`を指定すると、それらはAND条件として扱われます。
つまり、条件の全てが満たされる場合のみ、適用されます。

今回は、「特定のGIPから、特定のドメインにアクセスがあった場合のみアクションするという条件を設定したい」と仮定しています。

# サンプルテンプレート

以下が、Cloudformationのサンプルテンプレートです。
(ELBやリスナーなどの部分は省略しています)

“`yaml

Parameters:
SampleIP:
Type: String
Default: “111.222.333.444/32”

SampleDomainName:
Type: String
Default: “example.com”

Resources:

## (省略)ELBやリスナーなどを記載 ##

HttpsLi

元記事を表示

AWS SOA 合格体験記

# はじめに
AWS SOA(C02)試験を受験して一発合格できたので、
忘れないうちに学習方法等メモしていきます。

# 受験前のステータス
・AWS実務経験は1年強、ただし小規模案件ばかりであまり深く触ったことはない(マネージドなWeb3層がメイン)
・AWS SAA、SAP取得済

# 学習の概要
学習時間:10~15時間程度(平日30分~1時間、休日2~3時間)
学習機関:約1週間
学習方法:Web問題集(CloudTech)+公式サンプル

# 学習に使用したもの
– **Web問題集([CloudTech](https://kws-cloud-tech.com/))**
資格会員4980円/90日間です。
AWS SAPを受けるために購入していたものの期間が残っていたため、そのまま利用しました。
問題の質は普通に良いです。解説も悪くはないですが、正答以外の選択肢に対する解説(除外できる理由)がもう少し充実すると嬉しいです。
【良かったところ】Udemyと違って一問一答で解答・解説がみられる。(※出題自体は10問区切り)

– **公式サンプル問題**
公式サイトの試験概要の

元記事を表示

AWS MGN(application migration service)を使ってみた

MGNはオンプレからAWSへの移行時に利用できるサービスで他製品と比較して移行時のダウンタイムもすくなく、かなり便利なサービスだとおもいます。※対象OSに縛りはありますが。(サポートOS:https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html)

すでに色々なサイトでやり方については記載があったりしますが、AWSのUIは更新頻度も高く需要がそこそこありそうかなという思いと、そもそも忘れっぽいので記事にしたいと思います。

# 前提
移行元OS:Ubuntu 22.04.1 LTS(仮想マシン)
ESXi : 7.0 Update 2
※OSユーザは必ずSSH鍵認証を有効にしておくこと。

# 通信要件
MGNを利用するにあたり、事前に公式ページから通信要件を確認したいと思います。
以下、アーキテクチャとネットワークの概要が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335

元記事を表示

【SOA】試験対策メモ その2

# AWS Systems Manager
## State Manager
cron式などで、グループ化されたマネージドノードに対して一括でRunCommandできるサービス。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-state.html

# CloudFormation
## サービスロール
デフォルトでは実行IAMのポリシーが参照される(危険)。
サービスロールを指定すると、そちらのIAMポリシーが参照される。

## DeletionPolicy 属性

“`sample.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Resources:
myS3Bucket:
Type: AWS::S3::Bucket
DeletionPolicy: Retain
“`

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

元記事を表示

EC2(Windows)のルートテーブルを変更して疎通できなくなったインスタンスを復旧してみる

WindowsのEC2インスタンスのルートテーブルを編集する際に、誤った設定をしてしまいインスタンスに疎通できなくなってしまうことがあるかと思います。

そのような場合の対処法について、re:Postでは下記2通りの方法を説明します。

– EC2 シリアルコンソールを使用する
– 一時的にENIをもう一つアタッチする

本記事では一時的にENIをもう一つアタッチする方法に着目して説明します。

## ドキュメント

– [Amazon EC2 Windows インスタンスへのネットワーク接続を誤って無効にしました。この問題を解決する方法を教えてください。](https://repost.aws/ja/knowledge-center/restore-network-connectivity-windows)
-[サブネット CIDR ブロック](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/subnet-sizing.html)

## 今回試す環境

– Windows Server 2022(ami-0987eed5

元記事を表示

OTHERカテゴリの最新記事