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

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

ECS on Fargate構成にする際の効果的なコスト削減案(Arm化含む)

少し前、アプリケーションをAPI Gateway + Lambda構成からELB(ALB) + ECS on Fargate構成に置き換えました。理由は、Lambdaの同時実行数を超えるほどのトラフィックが発生して、より安定したスケーリングが必要になったからです。

ECS on Fargateへの移行後、負荷への耐性は向上したのですが、Lambdaと比べると常時課金されるELBやFargateのコストが増加し、新しい悩みの種になってしまいました。

今回の記事では、コスト削減のために行ったいくつかの施策をまとめました。

## 1. 開発環境のリソースを最小限に抑える
Fargateの料金は、使用するvCPUとメモリのサイズに応じて課金されます。そのため、トラフィックが少ない開発環境では、リソースを最小限に抑えることでコスト削減が可能です。今回は、最低限のスペックとして`256(.25 vCPU), 512 MiB`を設定しました。

![スクリーンショット 2024-10-12 8.04.26.png](https://qiita-image-store.s3.ap-northea

元記事を表示

【備忘録】AWS Backupでk3sクラスタを復元する時の注意点

お試しk3sクラスタをAWS EC2上で運用しています。暫く使わないので、AWS Backupを使ってバックアップ・レストア(復元)を試しました。
AWS Backupは大変便利で、EC2をバックアップするとついでにアタッチされたEBSボリューム一緒にバックアップしてくれます。ですが、私が試しに使ってみると、問題になる点がいくつかありました。
* 復元したEC2インスタンスには元のプライベートIPアドレスが割り振られず、違うアドレスになってしまう。
* 復元したEC2インスタンスにSSHでログインしようとすると、「SSHのホスト鍵が変わっている」と盛大に叱られてしまう。
* k3sで使う証明書を作り直す必要がある。

# 元のプライベートアドレスを保持してEC2インスタンスを復元する

バックアップした時と同じプライベートIPアドレスにしてあげないと、k3sクラスタが復元後にまともに動作しなくなります。しかし何も考えずにAWSコンソール上で復元すると勝手に違うアドレスに割り振ってしまいます。
元のプライベートIPアドレスを保持して復元する方法は、以下に書いてあります。

https:/

元記事を表示

インターネットに公開したインスタンスがどれくらい攻撃を受けるのか試してみた(1Hで200件以上のアクセス!!)

## はじめに
皆さんAWS使っていますか?
どうも駆け出しエンジニアです、私もAWSに触れる機会が増えました。

そこで1つの疑問が。
「こんなにも素早くサーバーを構築可能だが、実際にインターネットに公開したサーバーはどの程度攻撃を受けるリスクがあるのだろう…?」

もしかすると中には、「検証で1時間も使わないし、とりあえず全てのトラフィック許可しておくか」と思った経験は無いでしょうか。

今回は実際にAWSのEC2に「T-Pot」をインストールしてどのくらいアクセスされているのかを調査しました。

#### T-Potとは
マルチハニーポットプラットフォームで、様々なツールや罠が用意されています。複雑な設定を必要としないにも関わらず様々な機能を利用できるのが特徴です。

>ハニーポット(honeypot)とは、あえてシステムへの不正侵入を許して攻撃手法や何をターゲットとしているのかを分析する、「おとり」のようなシステムのことです。本来ハニーポット(honeypot)を直訳すると、「ハチミツが詰まっている壺」という意味があります。つまり、ハチミツの匂いで動物や昆虫を

元記事を表示

Amazon SageMaker と GitHub の連携

### 手順
1. Amazon SageMaker ドメインへの GitHub リポジトリの登録
1. Amazon SageMaker -> ドメイン -> ドメインの詳細 -> 環境 に遷移
2. ドメインの推奨コードリポジトリより「アタッチ」ボタンを押下
3. JupyterServer アプリ・JupiterLab アプリそれぞれに対象の Git リポジトリの URL を登録

2. Code Editor 内でのリポジトリのコードの取り込み
1. Amazon SageMaker CodeEditor の対象ブックを開く
2. Explorer より「Clone Repository」を選択
3. GitHub の認証を通し、対象のリポジトリを選択して Clone

3. git config の設定
1. GitHub のユーザー名、メールアドレスを設定する
“`$ git config –global user.name “your name”“`
“`$ git config –global user.

元記事を表示

テスト

テスト投稿

元記事を表示

AWS Systems Manager Run Commandを利用したEC2インスタンスの管理とコマンド実行ガイド

## はじめに
SSM(AWS Systems Manager)Run Commandは、AWS環境内でリモート操作を可能にする強力なツールです。

主にEC2インスタンスやオンプレミスサーバーに対してコマンドを実行したり、ファイル転送やパッチ適用などの運用タスクを自動化するために利用されます。

本記事では、SSM Run Commandを使った技術検証の具体的な手順について解説します。

## 前提条件
:::note
**IAM Roleの設定:**
最新のAmazon LinuxやWindows Serverにはプリインストールされていますが、手動でのインストールが必要な場合もあります。
“`
AmazonSSMManagedInstanceCore
AmazonEC2RoleforSSM(古い場合)
“`

**SSMエージェントのインストール:**
最新のAmazon LinuxやWindows Serverにはプリインストールされていますが、手動でのインストールが必要な場合もあります。

**AWS CLIのセットアップ:**
コマンドを実行するマシンにAWS

元記事を表示

Amazon Bedrok GuradrailsでSensitive information filters(機密情報フィルター)を試す

# はじめに
Amazon Bedrockが出力するプロンプトには、機密情報が含まれることもあります。機密情報をフィルタリングするために、Sensitive information filtersを使用することができます。この記事では、Sensitive information filtersを試してみました。
Amazon Bedrock Guardrailsは英語のみをサポートしていますが、日本語のプロンプトを作成することも可能です。日本語と英語のダミー個人情報に対し、それぞれ日本語と英語でプロンプトを作成し、Sensitive information filtersを試します。

# Sensitive information filters(機密情報フィルター)とは
Sensitive information filtersは、Amazon Bedrockのモデルレスポンスで個人を特定できる情報 (PIIs) などの機密情報を検出するものです。
PII typesには、名前、住所、電話番号、メールアドレス、クレジットカード番号のほかアメリカやカナダ、イギリス固有の識別情報など

元記事を表示

ゼロから始めるAIシステム開発 #04 「入門書ハンズオン(2章)」

## Bedrockを実際に試してみよう
こちらの入門書、2章後半のハンズオンをやったレポートです。

**Amazon Bedrock 生成AIアプリ開発入門 [AWS深掘りガイド]**
https://amzn.asia/d/co7MB5S
![2240915.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3885923/644c78f6-022e-6115-34f4-de9085a66320.jpeg)
書ではCloud9環境を使用しているが現在ではサービス終了しているようなので、代替としてAmazon SageMakerを使用した。この代替も若干手間取ったが割愛。プログラム言語はPythonを使用。
## モデル一覧を出力
前提として
– AWSのSDKを使用し各モデルのAPIへリクエストする
– ここではPython用のSDK(Boto3)を用いる

BedrockのAPIは4種類
– bedrock
– bedrock-runtime
– bedrock-agent
– bedrogk-ag

元記事を表示

IAM Identity Centerを使ったマルチアカウント運用。

## はじめに

初投稿の記事で「IAM Identity Center」を扱いましたが、CLIメインのお話でした。

今回は少し別視点でマルチアカウントの場合はどんな感じになるのかを検証してみました。

## IAM Identity Centerの設定方法

### OrganizetionsへのAWSアカウント追加

紐づけたいAWSアカウントは事前にOrganiztionsへの登録が必要です。

今回は`mori`というアカウントを追加しておきました。

![スクリーンショット 2024-10-11 5.19.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3894042/7c76b7fa-d593-50a8-aa01-e69cb240ec83.png)

### アカウントとの紐付けのみ

紐づけたいアカウントを選んで、`ユーザーまたはグループを割り当て`を選択。

![スクリーンショット 2024-10-11 5.19.50.png](https://qiita-image-store.

元記事を表示

CloudFormationでWAFのマネージドルールが作成できなかった話

## はじめに
アウトアプットの練習で書いてみた
Resource typeはType: AWS::WAFv2::WebACL
## 結論
マネージドルールグループをRulesに追加した時Actionが二重に指定されているのが原因でエラーになり作成できなかった。

## 問題
CloudFormationでALBにWAFを追加してせキュリティを向上させようと思いマネージドルールを追加するtmplateを作ったけど作成できない。

実際のコードの一部
“` yaml
– Name: AWS-AWSManagedRulesCommonRuleSet
Priority: 2
Statement:
ManagedRuleGroupStatement:
VendorName: AWS
Name: AWSManagedRulesCommonRuleSet
ExcludedRules:
– Name: SizeRestr

元記事を表示

少人数チーム向けに簡易な GitLab を用意する (ver. 17 on AWS EC2 running ubuntu 22.04)

# 概要

GitLab(無料版)を AWS EC2 インスタンスへインストールして利用し,数人程度とリポジトリを共有する環境を用意する.

**前提条件**

– EC2 インスタンスを作成済みでインターネットを介した ssh 接続がきる.システム要件は次節に示す.

**やること**

– AWS EC2 (Ubuntu 22.04) にGitLabをLinuxパッケージでインストール.
– 設定
– 自己証明で HTTPS (ssl/tls) 対応させる.
– rootユーザでログインし,一般ユーザ追加をする.
– メモリ枯渇で動作が不安定である場合の対応をする.

**やらないこと**

– postfixのインストール.(メール認証,MFA対応)
– 本番,大規模運用を意識した構成.(Route53連携,バックアップ,負荷分散など)

# ハードウェア要件

公式ページ [^spec] によるとハードウェア要件は下記である.

| 項目 | 説明 |
| — | — |
| ストレージ | リポジトリ全体と同等の空き容量 |
| CPU | 毎

元記事を表示

Amazon SageMaker Autopilotの利用料金について

# はじめに
初めまして、2024年現在は都内の大学院にて学生をしているhimaです。
普段は大学院で機械学習とかピープルアナリティクスとかデータを活用することをテーマに色々勉強しています。
その傍でデータアナリストとしてインターンをしており、AWSのAutoMLサービスであるAutopilotを触っています。
今回は自分も困ったところで、実際に触ってみないとわからない人も多いんじゃないかと思い、このテーマを執筆しています。

*AWS SageMakerやAutopilotの機能についての説明はしません。以下の記事等を参照ください。

https://aws.amazon.com/jp/sagemaker/

## 本記事の対象者
– すでにある程度Autopilotについて知っている
– Autopilotを触ってみたいが料金がどれくらいかかるのか不安なため、手をつけられない
– 費用の試算がしたい

## Autopilotとは
Autopilotについての解説記事はたくさんqitta上にも載っているため、いくつかよさそうなものをピックアップしておきます。

↓使い方などがまとま

元記事を表示

183日目 SAA勉強用サイトを比べてみた社長M

## ♠はじめに
こんにちは、社畜Mだぜ。
今回は俺が今やっているSAA(AWS Certified Solutions Architect – Associate)の勉強に使っているサイトとほかにもあるSAA勉強に使えるサイトを紹介していくぜ!

気を取り直して、さぁ、行くぜ!!!

**デュエル!**
## ♠SAAとは
まずはSAAについて軽く説明するぜ、ほかのところでやってた気もするが気にせず行くぜ。
上述しているがSAAってのはAWS Certified Solutions Architect – Associateの略で、AWSが提供する認定資格だぜ。クラウド上で安全で高性能なアプリケーションを設計・構築する能力を証明する。この資格は、AWSの主要サービスやベストプラクティスに関する知識を評価し、1年程度の実務経験を持つ人を対象としていて、SAAはクラウド技術者にとって重要なステップであり、キャリアアップに役立つ価値ある認定として広く認識されているぜ。

いよいよ次は俺が使っているのも含めてSAA勉強に使えるサイトを挙げていくぜ!俺のターン!!
## ♠社畜Mが利用している

元記事を表示

SQSとLambdaの「部分的なバッチレスポンス」を試す

## 背景

SQSとLambdaを連携させるアプリケーションにおいて、メッセージ単位でのエラー処理を考える必要があり、Lambda関数に具備されている「[部分的なバッチレスポンス](https://aws.amazon.com/jp/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/)」がどのような仕組みなのかを理解するために実際に触って試した際の記録。

## 検証構成

SQS -> Lambda

## 検証

### SQS

あらかじめ適当な名前でSQSキューを作っておく。今回は標準キューを採用。

### Lambda

– SQSキューからバッチでメッセージをポーリングし、メッセージ本文をログ(CloudWatchLogs)に出力
– 部分的なバッチレスポンスの挙動を確認したいので、特定のメッセージのみ例外を発生させる(バッチで取得した最後の要素で例外を発生させる)
– 例外が発生したメッセージのIDをレスポンスに含める
– 部分的なバッチレスポンスによって、**

元記事を表示

Lambda で awscli を利用する

# はじめに
Lambda でAWS のインスタンスを管理をさせたいとき awscli のインストールが必要になるので、これを利用できるようにする。

# 概要
1. awscli を利用する EC2 のインスタンスと同じ OS を用意する (docker)
1. docker container でawscli をインストールして zip でかためる
1. zip にしたファイルを S3 に置く
1. S3 に置いたファイルをLambda のレイヤーで 指定する
1. Lamda の関数を用意して レイヤーを指定
1. bootstrap, hello.sh を用意(編集)

# awscli を利用して EC2 に接続する Access キーを用意する
“`bash
# cat /var/lib/aws/aws_cli.key
アクセスキー
シークレットキー
ap-northeast-1 (ゾーン)
text
“`

# awscli をインストールする環境 (docker コンテナ) の用意
Amazon Linux 2023 でawscli を動作させたいので、このOSの

元記事を表示

あの人へSESで送ったメールってどうなったんだろう?どうやれば確認出来るのか ~100本ノックしてみたい中堅エンジニア 【AWS】~ 10/100

# はじめに

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87924/33483ca1-3be3-35ef-3258-ed31f9f3bf6f.png)

多くのシステムでユーザへのメール送信が必要になることがあるかと思います。

AWSで構築してる場合、メール送信には`AWS SES`を使うことになるのですが、メール送信結果を知りたい・分析したいとなった場合、どのようにすればいいのかわからなかったので試してみました。

今回のゴールを`AWS SESを使って送信した各メールの送信結果を、指定した期間でメールアドレス毎に確認する`とします。

アーキテクチャとしては、以下になります。
– `SES`でユーザに対してメールを送信する
– メールの送信ログを`Kinesis Firehose`に一定時間 or 一定量貯める
– 貯めたログをファイルに出力し、`S3`に保存
– S3に保存した複数ファイルに対して、`Athena`を利用してクエリ実行し、送信結果を確認

![SESのロ

元記事を表示

Jenkinsインストールのメモ書き

だいぶ古いメモ書きです。

## 前提
– Amazon Linux 2上にJenkinsサーバを構築します
– Dockerコンテナ等ではなく直接インストールする手順です

# Jenkinsの構築
## Jenkinsのインストール
Amazon Linux 2はRed Hat系のため、[こちら](https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos)のJenkins公式ドキュメントの手順を参考にしています。他のLinuxディストリビューションやOSの場合は公式ドキュメントの該当ページをご参照ください。
インストールする際に、まずパッケージ管理ツールyumにJenkinsの公式サイトが公開しているリポジトリを追加する必要があります。JenkinsにはWeekly releaseとLong Term Support releaseがあります。

### Weekly release
[Weekly release](https://pkg.jenkins.io/redhat/)はバグ修正と新機能を提供するため

元記事を表示

boto3:PythonでAWSを操作

## boto3とは
boto3は、Pythonを用いてAWSの各種サービスにアクセスするためのライブラリです。
AWSのAPIをPythonコードからシームレスに操作できるようにするツールで、PythonのオブジェクトのようにAWSリソースを扱うことができます。

## 基本的な概念
boto3を効果的に利用するためには、「セッション」と「クライアントとリソース」という2つの概念を理解することが重要です。

### ・セッション
セッションは、boto3がAWSサービスにアクセスするために使用するコンテキストを提供するオブジェクトです。セッションを使うことで、AWSの認証情報(アクセスキーやシークレットキーなど)や、デフォルトリージョン、使用するプロファイルを設定できます。boto3は、デフォルトでは、環境変数や設定ファイルから認証情報を自動的に取得しますが、セッションを明示的に作成することで、複数のAWSアカウントやリージョンを簡単に切り替えて使用することができます。

たとえば、次のようにしてセッションを作成し、特定のプロファイルやリージョンを指定します。
“`python
i

元記事を表示

TerraformでAWS VPCのサブネットをcidrsubnet関数を利用して作る

## はじめに
**Terraform**でAWS VPC (Virtual Private Cloud)のサブネットを作る例を紹介します。サブネットのCIDRブロックをTerraformの`cidrsubnet`関数を使って計算します。

今回の例では、以下の構成でVPCとサブネットを設計します。

項目|値
—|—
VPC CIDR|10.1.0.0/16
サブネットタイプ|public, private, protected
アベイラビリティゾーン (AZ)|a, c, d
サブネットのネットマスク| /20

## Terraformコードの解説
### VPCリソースの定義

“`hcl
# VPC
resource “aws_vpc” “main” {
cidr_block = “10.1.0.0/16”
enable_dns_hostnames = true
}
“`
このコードブロックでは、aws_vpcリソースを使用してVPCを作成します。`cidr_block`パラメータでVPCのIPアドレス範囲を指定します。

### サブ

元記事を表示

相手によって変わってくるシステム構成図

# その資料は誰のため?

どんなプレゼンテーション資料にも言えることですが、何らかの資料を作る以上は、その資料は**誰に**向けたものなのか、**何をどこまで**伝えたいのかは、作成する前に最低限考えるべきポイントです。

– **誰に**向けたものなのか
– 対象者の背景知識や専門性のレベルは?
– 彼らの興味・関心事は何か?
– どのような立場や役割の人々か?

– **何をどこまで**伝えたいのか
– 伝えるべき核心的なメッセージは何か?
– どの程度の詳細さが必要か?
– 時間や空間の制約はあるか?

ターゲットとなる相手が理解しやすい資料であれば、その先の **「考えてほしいのか」** **「どんなアクションを取ってほしいのか」** などが続くことになりますが、その前提として **「誰宛に」「何を」** がまず大事です。

:::note warn
まじめな書き出しとなっていますが、以下、若干ネタ的な記事になります。
:::

## 簡単なシステム構成図を例に

例として、既にお客様がクラウドのオブジェクトストレージを利用しているとします。そのお客

元記事を表示

OTHERカテゴリの最新記事