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

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

【SpringBoot】AmazonS3にファイルをアップロード&ダウンロードする方法

# 概要
Spring Bootを3系にアップデートすると`javax`→`jakarta`に置き換える必要があるため、`javax`が依存関係に含まれる`spring-cloud-starter-aws`[^1]が使えなくなる(と思ったのですが、手元の環境では普通に動きました…)。
念のため依存関係が`jakarta`になっている`io.awspring.cloud.spring-cloud-aws-starter`に変更したのですが、情報が少なかったのでサンプルを公開します。

[^1]: `io.awspring.cloud`と`org.springframework.cloud`がありますがどちらでも一緒です

# 環境
– Java17
– SpringBoot
– spring-boot-starter-parent:3.2.6
– spring-cloud-aws-dependencies:3.1.1
– spring-cloud-aws-starter
– spring-cloud-aws-starter-s3

# サンプル
ストレージクラスに

元記事を表示

CloudFormationで基本的なネットワークを作成する

基本的な2AZにまたがったネットワーク構成になります。
“`yaml
AWSTemplateFormatVersion: 2010-09-09
Parameters:
VPCCidrBlock:
Description: The primary IPv4 CIDR block for the VPC.
Type: String
MinLength: ‘9’
MaxLength: ’18’
Default: 10.0.0.0/16
AllowedPattern: ‘(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2})’

SubnetCidrBits:
Description: Subnet CidrBits, alowed bitween 8 and 30.
Type: String
MinLength: ‘1’
MaxLength: ‘2’
Default: ’24’
AllowedPattern: ‘(\d{1,2})’

元記事を表示

AWS S3 syncコマンドの説明

# はじめに

S3バケットとローカルの間、ファイルをdownload・uploadする場合、aws s3 cpコマンドがよく利用されると思います。実は、aws s3 syncコマンドを利用してもよいのです。機能面を見ると、この2つのコマンドは、すごく似ている感じですね。そもそも、どんな違いがあるのでしょうか。

# 違い所

* **cpコマンド**

対象ファイルの存在と変更に関わらず、単純に条件に合致した対象ファイルをコピーすること。(無駄なコピー操作が発生するかもしれない)

* **syncコマンド**

同期化だから、対象ファイルをコピーする前に、S3バケットとローカルの間、ファイルの差分を行います。コピー先に存在する、かつ、変更がないファイルに対して、skipして、コピーしないです。コピー操作を最小限に抑えるため、コスト削減ができます。

# 使い方のお勧め
一回目のファイルコピー(コピー先に何のファイルも存在していない)は、cpコマンドを利用する(syncコマンドは、余計な同期化チェックにコストがかかるため、避けたいと思います。)

二回目以降は、syncコマンドを利

元記事を表示

AWSシステムマネージャーを使用してEC2へのDatadog agentのインストールを自動化する

AWSシステムマネージャーのAutomationドキュメントを使用すると、既存の複数のEC2インスタンスにDatadog agentを効率的にインストールできます。

## 利点

– 複数のインスタンスに同時にインストールできる
– プロセスが自動化されるため、人的エラーのリスクが低減される
– インストールプロセスの一貫性が保たれる
– 大規模な環境での展開が容易になる

## 前提条件

1. AWSアカウントにアクセス可能であること
2. 対象のEC2インスタンスにSSMエージェントがインストールされていること
3. EC2インスタンスに適切なIAMロールが割り当てられていること(AmazonSSMManagedInstanceCore ポリシーを含む)
4. DatadogのAPI keyを用意していること

## 手順

### SSMオートメーションドキュメントの作成

1. AWSマネジメントコンソールで「Systems Manager」に移動します。
2. 左側のメニューから「ドキュメント」を選択し、「ドキュメントの作成」の中の「オートメーション」をクリックします。

元記事を表示

【メモ】Session ManagerでEC2に繋がらないとき確認すること【二度と忘れない】

## 事の始まり
プライベートサブネットにインスタンス立てたけどセッションマネージャーで繋がらない!
どうすればいいかわからん!誰か助けて!

## 確認すること
### SSM Agentはインストールされているか?
そのAMI、デフォルトでSSM Agentはインストールされていますか?
インストールされていない場合は、ユーザーデータ等で手動インストールしましょう。

【参考】Amazon EC2 Linux インスタンスの起動時に SSM Agent をインストールする方法を教えてください。
https://repost.aws/ja/knowledge-center/install-ssm-agent-ec2-linux

### IAMロールは適切ですか?
EC2インスタンスにアタッチしているIAMロールに**AmazonSSMManagedInstanceCore**はアタッチされていますか?

### VPCエンドポイントありますか?
Session Managerで接続する場合、3つのVPCエンドポイントが必要です。

– **ec2messages.region

元記事を表示

AWS DEAに合格しました

# はじめに
AWS認定4回目です。
行った学習内容等を備忘録として残しておきます。

# AWS認定とは?
Amazon Web Service(AWS)が主催する、AWSサービスを主軸としたクラウドサービスに関する知識やスキルを認定する資格です。
各資格についての説明は[公式サイト](https://aws.amazon.com/jp/certification/)から確認可能です。

AWS認定には、習熟度及び難易度別にFOUNDATIONAL、ASSOCIATE、PROFESSIONALの3カテゴリと、専門性に特化した知識を必要とするSPECIALITYの1つのカテゴリがあり、4つのカテゴリに分かれています。SPECIALITYの難易度は分類上はPROFESSIONALと同列です。
2024年7月現在、基礎知識やアーキテクチャ、データ分析など種類別に全10種類の資格が存在します。

## AWS DEAとは?
正式名称はAWS Certified Data Engineer – Associateです。
主にAWSを利用したデータ分析の手法やサービス、データレイクやDWHなどの

元記事を表示

ネイティブな Amazon Connect アカウントで Cost Optimization Hub を有効化してみた

ジャーニーマン( @beajourneyman )です。長いの”ジャニ”と呼ばれています。

AWS re:Invent 2023 前後で発表されて、管理者の方の間で噂になった Cost Optimization Hub を AWS の SaaS である Amazon Connect の環境で試してみたので、レポートします。

> 11月26日、AWS Billing and Cost Management の新しい機能である Cost Optimization Hub (コスト最適化ハブ)を発表しました。これにより、AWS のコスト最適化に関する推奨事項を実現するコスト削減を簡単に特定、フィルタリング、集計、定量化できます。

https://aws.amazon.com/jp/blogs/news/new-cost-optimization-hub-to-find-all-recommended-actions-in-one-place-for-saving-you-money/

> ost Optimization Hub はAWS請求情報とコスト管理機能で、AWSアカウントと

元記事を表示

AWS Lambda Layersを自動更新するGitHub Actions

# はじめに

あの若干面倒なAWS LambdaのLayersをGithubActionsで自動更新するプロセスを組みましたので参考にしていただければ!!(備忘録も兼ねて)

また、本記事内ではアクセスキーとシークレットキーを使った認証ではなく、OIDC認証で実施していますので以下の記事を参考にしていただければ問題ないかと思います。

https://qiita.com/frei_aqua/items/c284a1249dac84c881cb

# 前提
– Python
– Pipenv環境
– Lambda関数を作成済み
– Layersも紐づけ済み(設定オプション的に紐づけもコマンドで行けそうか?要検証)

# 本体

お急ぎの方もいるかと思いますので先にymlを貼っておきます。

“`yaml
name: Layer Update

on:
push:
branches:
– main
paths:
– “Pipfile”

env:
REGION_NAME: your-region
FUNCTION_NAME: 対象のf

元記事を表示

適切なチャンクサイズを評価する方法(LlamaIndexのブログをやってみた)

答えのない問い、それがチャンクサイズ。

LlamaIndexのブログに、評価によって適切なチャンクサイズを検討する方法があったので、試しました。

https://www.llamaindex.ai/blog/evaluating-the-ideal-chunk-size-for-a-rag-system-using-llamaindex-6207e5d3fec5

ブログ公開から半年以上経過しており、Duplicatedになっているライブラリーがあったので最新化して実行しました。

## 環境

Python: 3.11.9

llama-index-core: 0.10.55
llama-index-llms-bedrock: 0.1.12
llama-index-embeddings-bedrock: 0.2.1
spacy: 3.7.5

RAGの対象ドキュメントは[AWS Well-Architected Framework](https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/framework/welcome

元記事を表示

【AWS】Codepipelineで[GitHub] No Branch [xxx] found for FullRepositoryName と出た場合

# 概要
AWS CodepipelineでGithub接続バージョン2を利用していたら以下のエラーになりました。こちらの解決方法を紹介します。

> [GitHub] No Branch [xxx] found for FullRepositoryName [xxx/xxxx_xxx]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/e4a5ca04-8ada-9741-8b89-d4b383edb006.png)

### 前提:CodePipeline設定
– Sourceのアクションプロバイダーは GitHub バージョン2 を利用
– Buildのアクションプロバイダーは AWSCodebuild を利用
– CodePipeline と GitHub の連携は CodeStarSourceConnection を使用
– Github側の AWS Connector for GitHub は以前からインストール済

# 原因と解決方法
エラーメッセー

元記事を表示

#AWSSummit Japan 2024参加レポート -Amazon Connect・IoTユーザー事例・アーキテクチャ道場-

ジャーニーマン( @beajourneyman )です。長いの”ジャニ”と呼ばれています。

2024/06/20(木),21(金)に幕張メッセで開催された「AAWS Summit Japan]」に2日間参加したので、簡単なメモをお届けします。普段はSaaSレイヤーのサービス「Amazon Connect」を基盤としたクライアント様向けのシステムと自社のコールセンターの開発維持保守を担当しています。Amazon Connect、IoTユーザー事例、アーキテクチャの3つのセッションを取り上げます。

# Amazon Connect と 生成 AI 機能が実現するコンタクトセンターの変革

エントリー時に予約していたセッションです。元々国内IVRベンダーご出身のSA黒木さんのセッションをお聞きしました。1日目でしっかり視聴できた唯一のセッションでした。

> セッション概要:コンタクトセンターの顧客は、目的に応じた使いやすく迅速な問い合わせ方法を求めています。一方で従業員は複雑な問い合わせに対応するため膨大なナレッジを把握しながら高度な業務を行い、またその管理者も複雑な業務を管理すること

元記事を表示

AWS Step Functionsでランダムアルファベットに基づくLambda関数の実行

AWS Step Functionsは、分散システムの調整や状態管理を簡単にするための強力なツールです。今回は、Step Functionsを使って、ランダムなアルファベットを生成し、その結果に基づいて異なるLambda関数を実行する方法をご紹介します。このプロセスを通じて、StepFunction の基礎の基礎を学びます。

具体的には、まずランダムなアルファベット「A」、「B」、「C」を生成するLambda関数を呼び出し、その結果に基づいて「A_Process」、「B_Process」、「C_Process」のいずれかのプロセスを実行します。それぞれのプロセスは別々のLambda関数で処理され、最終的に結果を出力するLambda関数が呼び出されます。この一連の流れをStep Functionsでどのように実装するかを詳しく解説します。

### Step Function の構成
完成時の Step Function の構成は以下の通りです。
![stepfunctions_graph (2).png](https://qiita-image-store.s3.ap-northea

元記事を表示

DockerイメージをLambda関数のデプロイパッケージとして使用する

# 手順

## Dockerfileの作成

“`Dockerfile:Dockerfile
# 使用するベースイメージを指定
FROM public.ecr.aws/lambda/python:3.12

# 必要なパッケージをインストール
COPY requirements.txt ./
RUN pip install -r requirements.txt

# Lambda関数のコードをコピー
COPY app.py ./

# Lambda関数のハンドラを指定
CMD [“app.lambda_handler”]
“`

## Lambda関数のコードを作成

“`app.py
def lambda_handler(event, context):
return {
‘statusCode’: 200,
‘body’: ‘Hello from Docker Lambda!’
}
“`

## 必要なパッケージを記載したrequirements.txtの作成

“`requirements.txt
# 例:reques

元記事を表示

【AWS】datadogでAWS EC2インスタンスをDatadogで監視する方法

# AWS EC2インスタンスをDatadogで監視する方法

## はじめに

このガイドでは、Amazon Web Services (AWS) のElastic Compute Cloud (EC2) インスタンスをDatadogを使って監視する方法を説明します。Datadogを活用することで、EC2インスタンスのパフォーマンスや健全性をリアルタイムで把握し、問題が発生した際に迅速に対応することができます。

## 前提条件

– AWSアカウント
– Datadogアカウント
– EC2インスタンスへのアクセス権限

## 手順

### 1. AWSとDatadogの統合設定

1. Datadogダッシュボードにログインします。
2. 左側のメニューから「Integrations」を選択します。
3. 検索バーに「AWS」と入力し、AWS integrationを選択します。
4. 「Install Integration」をクリックします。
5. AWSアカウントIDを入力し、必要な権限を持つIAMロールを作成します。
6. 作成したIAMロールのARNをDatadogの

元記事を表示

【AWS CLI】IAMユーザーではなく、IAM Identity Centerを利用しよう

# はじめに
本記事では、AWS summit 2024にて講演のあった「[20分間で分かるIAM全機能](https://speakerdeck.com/opelab/20240621-aws-summit-iam)」を参考に、AWS CLIの認証に**IAMユーザー**を用いることの問題点、その代替として**IAM Identity Center**を用いる方法について纏めます。

# IAM ユーザーを用いた認証とその問題点
IAMユーザーを用いた認証は、IAMコンソールから取得したIAMユーザー情報を、認証情報として設定することで行われ、その情報は`~/.aws/credentials`および、`~/.aws/config`に保存される。
問題点は、IAMユーザーのこれらの情報には**有効期限が存在せず**、この情報が漏洩するとIAM Userに付与されたポリシーを誰でもいつでもどこからでも利用できてしまう点であり、IAM公式ガイドでも「**IAMユーザーの利用は非推奨**」と表明されている。

::: note alert
恒常的なCredentialsが常にAWSの外に存在

元記事を表示

AWS secrets manager(最大サイズに達しました)

# 経緯
AWS Secrets Managerにおける既存のsecretに対して、コンソール画面でkeyとvalueを一行ずつ追加した時に、画面に下記のエラーメッセージが表示されて、変更が保存できなくなりました:


シークレットの最大サイズに達しました。シークレットは最大64KBです。情報を複数のシークレットに分割することをお勧めします。

# 原因
Secrets Managerの「**シークレット値のサイズ**」クォータを超えてしまったためです。

>シークレット値のサイズ:サポートされている各リージョン: **65,536** バイト(引き上げ不可
https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/reference_limits.html

# 解決策
情報を分割して、複数のsecretを利用します。

# 追伸
普通は、64KBが足りると思いますが、今回は、APIトークンやSFTP認証用

元記事を表示

東大のAWSによるクラウド入門やってみた日記 2

## 前回
https://qiita.com/jextra_kingdomofudo/items/24e82e1f0c8f7b9d6756

## 今回進んだところ

3.6~4.5まで進みました。

## AWSの登録

4.1でAWSアカウントの準備が必要なので進めました。
最初にEメールで登録したユーザはルートユーザで、この先の手順に書かれている端末からのアクセスではこのユーザを直接使う事ができないので、別途ユーザを作る必要があります。

AWSではユーザや役割による権限、グループなどを管理する機能はIAMにまとめられています。

私はとりあえずというのと資料を読み勧めるの優先でAdmin権限を持ったユーザを作ってしまいましたが、本来であれば権限周りの理解や最低限のセキュリティ設定をしたうえで使ったほうが良いと思います。

とりあえず最小限のセキュリティだけでも確保したい人向け
https://qiita.com/yanyansk/items/3a989b70d2d3d49eff16

IAMや権限周りのベストプラクティスを知りたい人向け
https://qiita.com/c

元記事を表示

AWS Immersion Day[生成 AI を体験してみよう]に参加しました!

2024年 7月9日のAWS Immersion Dayに参加してきました🙌
今回の内容は `生成AIを体験してみよう`ということで、awsで作成できる2種類の`生成AI`サービスを体験してきました。
こちらのイベントになります。

# 今回体験したAIサービスについて

以下の2つのサービスを体験しました。

1. [Amazon Bedrock](https://aws.amazon.com/jp/bedrock/?gclid=Cj0KCQjwkdO0BhDxARIsANkNcrc3cHjnm8tERRwLiKp-528yVBHlnrYT4yVB-tDrikHKsEBHxOBI1jgaAlBgEALw_wcB&trk=07e11748-d254-4d68-b9eb-c40a095bfc9d&sc_channel=ps&ef_id=Cj0KCQjwkdO0BhDxARIsANkNcrc3cHjnm8tERRwLiKp-528yVBHlnrYT4yVB-tDrikHKsEBHxOBI1jgaAlBgEALw_wcB:G:s&s_kwcid=AL!4422!3!6920621547

元記事を表示

AWS CLIのインストール

Amazon ECR(Elastic Container Registry)のプライベートリポジトリにDockerイメージをプッシュするまでの手順を記録します。手順はAWS CLIのインストール、AWSアカウントの作成、IAM Identity Centerでユーザーの追加・設定、AWS SSOの設定、Amazon ECRでDockerイメージのプッシュに分けます。無料枠での利用を想定しています。

# 環境
– CentOS7
– Dockerはインストール済み

# 手順
1\. [AWS CLIのインストール](https://qiita.com/aomrikti/private/0908000f4aa58098c761)(本記事)
2\. [AWSアカウントの作成](https://qiita.com/aomrikti/private/0e63569eeade661cf7b6
)
3\. [IAM Identity Centerでユーザーの追加・設定](https://qiita.com/aomrikti/private/389672d4900989d447ad)
4\. [A

元記事を表示

LaravelでAWS S3を利用してみた

# はじめに
こんにちは、Webエンジニアの岩田史門([@SI_Monxy](https://x.com/SI_Monxy))です!
今回はLaravelでのAWS S3の利用について記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!

# 概要
AWS S3(Amazon Simple Storage Service)は、高い可用性とスケーラビリティを持つクラウドストレージサービスです。Laravelは、その柔軟なストレージシステムを介して、簡単にS3を利用することができます。本記事では、LaravelアプリケーションからAWS S3ストレージを利用する方法について詳しく解説します。

# 前提条件
– Laravelプロジェクトがセットアップされていること
– AWSアカウントがあること
– AWS CLIがインストールされていること

# AWS S3バケットの作成
まず、AWSマネジメントコンソールにログインし、S3バケットを作成します。

## 1. S3コンソールにアクセス
AWSマネジメントコンソールから「S3」を選択します。

元記事を表示

OTHERカテゴリの最新記事