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

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

AWS SOA 取得に向けて覚えておいた方がいいこと

AWS SOA 取得に向けて勉強している中で、個人的に覚えておいた方がいいと思ったことを備忘録として残しておきます。

# EC2 の購入オプション
Savings Plan は1時間あたりに支払う利用金額をコミットする
リザーブドインスタンスはインスタンススペックをコミットする
## Savings Plan
### EC2 Instance Savings Plan
同じリージョン内の特定のインスタンスファミリーに適用される割引プラン
### Compute Savings Plan
インスタンスファミリーやリージョンに依存せず適用される割引
FargateとLambdaにも適用可能
## リザーブドインスタンス
### スタンダード
リージョンとインスタンスファミリーが固定
### コンバーティブル
作成時の価格と同等以上であればインスタンスファミリー・タイプ、OS の変更が可能

### 参考
– [【徹底解説】AWSコスト削減、Savings Plansとは(第1回)](https://www.sunnycloud.jp/column/20220427-01/)

# Ela

元記事を表示

webサービスを公開して、2週間たった結果www (ランニングコストとかも公開!)

# webサービスの概要と仮説
2週間って言ったけど、厳密には15日です。たしか、12/29にリリースして、今1/13
[infolink.dev](https://infolink.dev/)
間違いを指摘できる記事投稿サイトって感じです。
詳しくは、これを読んでください。
[webサービス作って公開してみた!](https://qiita.com/infolink/items/90d8ed969d82d9ae3729)

なんか、ネットの記事って信用できないじゃないですか。信用したらバカみたいな風潮もあるし。もちろん、色んなサイトをみたら正しい情報を知れると思うけど、実際はめんどくさくてしない。
というか、そもそも信用に頼りたくないなぁって思う。
なので、需要あるかなぁと思ってたけど…
(infolinkでは、ページビューとか通知とかであるから、それを根拠にできる。)
# 結果
ユーザーは俺だけww
悲しい😢

# 公開後、改善したこと
– Markdownを貼り付けられるようにした

これで、infolinkにも一応投稿しとくか。とか、過去のを投稿してくれるかなと思ったけど無

元記事を表示

aws クレデンシャル関連のメモ

# 情報がある場所

“`s
$ cat /Users//.aws/credentials
[master]
aws_access_key_id = aa
aws_secret_access_key = aa
[terraform]
aws_access_key_id = bb
aws_secret_access_key = bb
“`

“`s
$ cat /Users//.aws/config
[profile aaa-sso]
sso_session = aws_cli
sso_account_id = aaa
sso_role_name = AWSAdministratorAccess
region = ap-northeast-1

[sso-session aws_cli]
sso_start_url = https://d-aaa.awsapps.com/start
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access

[profil

元記事を表示

cloudfrontとalb間で443通信をしたい時の注意点

## やりたかったこと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733779/43f3be1d-3433-5159-fb4e-c47d026e9609.png)
cloudfrontからalb間の通信をHTTPS通信にしたい。
しかし502エラーになってしまった。

## 原因
cloudfrontのオリジンドメインにalbのデフォルトのDNS名を入力していたが、証明書(*.example.com)と紐づいておらずHTTPS通信が出来なくて502エラーが返ってきてしまった。

## 解決方法
前提:
test.exampe.comでcloudfrontにアクセスしたい。
ドメイン名「example.com」はRoute53で取得している。
ACMは「*.example.com」で取得している

1,ホストゾーンレコードにAレコードでtest.exampe.comとcloudfrontディストリビューションドメイン名を設定する。(外部DNSの場合はCNAME)
2,Aレコードでa

元記事を表示

boto3でAWS Batchジョブ定義の最新リビジョンを取得するときにハマった

# はじめに
Lambda経由でBatchを実行しようとしたら古いリビジョンのジョブ定義が呼ばれてしまった。
困ったのは**同条件でも最新リビジョンが取れてしまうことがあった**という点。
同じコードを実行しているのに挙動が変わるので、原因がコードにあるのか、それとも他にあるのか、という段階から当たりをつけていくことになり、迷走しました。

# 目次
1. [原因](#原因)
1. [コード](#コード)
1. [解決方法](#解決方法)
1. [最大100件の制限を忘れない](#最大100件の制限を忘れない)


# 原因

原因はコードにありました。
“`python
client.describe_job_definitions()
“`
このdescribe_job_definitions()は
アカウントの同一リージョンに存在するすべてのジョブ定義から最大 100 件のジョブ定義のみを取得するメソッドでした。
一方アカウントに存在するジョブは200件を超えていました。
同じコードでも最新リビジョンが取れてしまうことがあったのは最大100

元記事を表示

サクっとchaliceでlambdaをデプロイするまで

# はじめに
サブシステムの開発などでスピード感をもって **lambda** をリリースしたい時がよくあります。
割と「あれ、どうやって環境構築したっけ?」ってなることが多いので、まとめることにしました。

**sam**でもいいですし、何を使ってデプロイするかはその組織や案件によって様々考えられると思いますが、私の場合は **chalice** でデプロイすることが多いので、今回は **chalice** でデプロイするまでの流れを記述します。

# 技術
– python 3.12.1
– chalice 1.30.0

# 前提
AWSアカウントを所有していること

# 環境構築
1\. direnvインストール
goコンパイラが入っている場合
“`bash
~/ $ git clone https://github.com/direnv/direnv
~/ $ cd direnv
direnv $ sudo make install
“`

macの場合
“`zsh
~/ $ brew install direnv
~/ $ brew install openssl r

元記事を表示

AWS Application Discovery Serviceとは?の備忘録

## サービス説明
オンプレミスの環境やデータセンター内で実行されているアプリケーションやインフラストラクチャのマッピングおよび可視化を支援するサービスです。

### 何のために使う?
クラウドへの移行やアプリケーションの最適化、またはオンプレミス環境の動作状況の把握に向けて、収集した情報を基に計画を策定するのに役立ちます。

### 可視化するためにどんな情報を集めるのか?

#### サーバーおよび仮想マシン情報:
ホスト名やIPアドレス
オペレーティングシステムの種類とバージョン
インストールされているアプリケーションやサービス

#### ネットワークデバイス情報:
ルーターやスイッチの情報
ネットワークトポロジーおよび接続情報

#### ストレージデバイス情報:
ハードディスクやストレージアレイの情報
ファイルシステムの種類や容量

#### 仮想化プラットフォーム情報:
仮想化ホストやハイパーバイザーの情報
仮想マシンの構成情報

#### アプリケーション依存関係情報:

アプリケーションコンポーネント間の依存関係
データベースやサービスとの接続情報

#### パフ

元記事を表示

Spotify製のvoyagerをTitan Embeddings G1でやってみた

少し前にこのようなニュースが出てました。

Spotify、最近傍検索ライブラリVoyagerをオープンソース化

https://www.infoq.com/jp/news/2023/12/spotify-ann-voyager/

気になっていたのでAmazon Bedrockのテキスト埋め込みモデルTitan Embeddings G1で試してみました。

## 情報

* 公式サイト

https://spotify.github.io/voyager/

* GitHub

https://github.com/spotify/voyager

PythonとJavaに対応していて、それぞれでインデックスデータは共有できるようです。また、現時点でWindows環境はサポートされていないようです。

## 公式のデモ

公式サイトにデモ動画に沿って実施しました。(動画しかないので文字起こししておきます)

1. ライブラリーのインストール

“`shell
pip install -Uq voyager
“`

1. テストデータの取得

`

元記事を表示

【AWS】LambdaからSSM Parameter Storeの値を取得する (Lambda Extensions)

## 概要
Lambda Extensionsを使用することで、LambdaからParameter Storeの値を取得できるので、備忘録として残します。

## 権限
LambdaからParameter Storeの値を取得するためには、Lambdaに適切な実行ロールを設定する必要があります。以下は必要な権限です。

– ssm:GetParameter

– kms:Decrypt

kms:Decryptは、KMS (Key Management Service) でSecureStringとして暗号化されたパラメータを復号化するために必要です。

KMSを使用して暗号化していない場合(String)、ssm:GetParameterだけで十分です。

### ポリシー設定の例
“` json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “getParameterSSM”,
“Effect”: “Allow”,
“Ac

元記事を表示

Route53のホストゾーンでよく設定する「〇〇レコード」って結局なんなの?

## 概要

Route53を使ったときによく聞く「〇〇レコード」がちゃんと理解できていなかったので簡単にまとめる

## そもそもホストゾーンって?

どうやら特定のドメインに関連する情報を入れておく箱のようなものらしい

## じゃあ〇〇レコードは何なの?

特定のドメインに関する個々の設定情報だと思っていただきたい。(レコードと言う名前がついているのでなんだかすごいものに感じるが、単純に「そのドメインに関連する個々の設定」に過ぎない)

### Aレコード

Aは「Address」の頭文字らしい。
ドメイン名と対象リソースのIPアドレスを紐付ける役割を持っている。
IPだけではなく、EC2インスタンスやCloudFront、ALBなどなど色々なものを紐付ける。
ルーティング設定の役割を持っている。

### NSレコード

NSとはName Serverの略で、当該のドメインがどこのネームサーバーで名前解決されているかの情報を登録する。
ちなみに、上記の説明の「ネームサーバー」とは下記の記述の「トップレベルドメインを使用しているドメイン(example.com)のネームサーバー」

元記事を表示

AL2023学習メモ➀ OpenJDK 17.0.9導入

# 前置き
学習メモをまとめています。
私と同じ初心者さんの助けになれば幸いです。

# この記事でわかること
1\.AL2023(amazon linux 2023)でのOpenJDK 17.0.9インストール方法
2\.javaファイル作成方法
3\.javaファイルコンパイル方法
4\.コンパイルしたクラスの実行方法

:::note warn
2024年1月13日現在の情報です。
今後のアップデートで、OpenJDKのバージョンが上がっていく可能性があります。
:::

# 事前環境
* EC2
* AL2023
# 1\.インストール方法
AL2023で、OpenJDKをインストールする方法は非常に単純です。
AWSで既にパッケージが用意されているため、そこからインストールすることになります。

* java-17がパッケージとして用意されているかを確認
“`
# yumのsearchコマンドでjava-17に該当するパッケージを検索
$ sudo yum search java-17
“`

“`
# 実行結果
メタデータの期限切れの最終確認: 21

元記事を表示

AWSのマネジメントコンソールで仮想サーバーEC2を作成してSession Managerでログインする

こんにちは。
本日は、AWSのマネジメントコンソールで仮想サーバーをプライベートサブネットに作成して、セッションマネージャーで仮想サーバーにログインする手順を記載します。

# 1. セッションマネージャーでログインできる仮想サーバーを作成するための準備
Systems Managerの機能の1つ、セッションマネージャーは、AWSのマネジメントコンソールから仮想サーバーにシェルアクセスできるサービスです。

セッションマネージャーを利用すると、仮想サーバーにパブリックIPアドレスを付与することなく、AWSのマネジメントコンソールから仮想サーバーにログインすることができます。

:::note info
セッションマネージャーでは、インターネットにアクセスできるローカルなLinux/Windows等の環境から、コンソールでAWS CLIを用いて、プライベートサブネットに配備した仮想サーバーログインすることも可能です。
:::

セッションマネージャーでログインできる仮想サーバーを作成するためには、以下の準備が必要です。

1. Amazon Machine Image(AMI)<

LonghornでS3へのバックアップ設定

#### 今回の内容
今回はRancher経由でkubernetesクラスタにLonghornをインストールし、Longhornを利用してステートフルなアプリケーションをデプロイ後、S3にデータのバックアップを作成します。

“` :環境
Rancher: v2.7.0
Longhorn: v1.5.3
RKE2: v1.24.17+rke2r1
OS: Ubuntu22.04
“`

#### Longhornとは
Longhornはkubernetesのためのソフトウェアディファインドストレージです。高可用で軽量で使いやすく、外部ストレージに依存しない作りとなっております。裏で外部ストレージを利用していてもいいですし、ローカルDiskでも問題ありません。Linux filesystemとして利用できるのであればLonghornでマウント可能です。
OSSで旧Rancher Labs(SUSEが買収)が開発しており、無料で全ての機能が利用可能です。
Longhornについては[こちら](https://longhorn.io/docs/1.5.3/)。

#### インストール

Amazon Pollyとは?の備忘録

テキストから音声への変換サービスです。Amazon Pollyを使用することで、テキストデータを自然な音声に変換することが可能です。

## できること

#### テキストから音声変換
Amazon Pollyは、与えられたテキストを多様な声質や言語で自然な音声に変換します。これにより、アプリケーションやデバイスに音声を組み込むことができます。

#### 多言語対応
Amazon Pollyは複数の言語に対応しており、異なる声やアクセントを提供しています。サポートされている言語には英語、スペイン語、フランス語、ドイツ語、日本語、中国語などが含まれます。
全て記載↓
アラビア語
アラビア語 (湾岸)
カタロニア語
中国語 (広東語)
標準中国語
デンマーク語
オランダ語 (ベルギー)
オランダ語
英語 (オーストラリア)
英語 (英国)
英語 (インド)
英語 (ニュージーランド)
英語 (南アフリカ)
英語 (米国)
英語 (ウェールズ)
フィンランド語
フランス語
フランス語 (ベルギー)
フランス語 (カナダ)
ヒンディー語
ドイツ語
ドイツ語 (オーストリア)
アイスランド語

クラウド初心者がAWS認定SAAを取得してみた

# はじめに
こんにちは。記事をご覧いただきありがとうございます。

オンプレミスサーバーを約5年間扱ってきた経験を持ち、2023年からAWSに触れ始めたクラウド初心者の私が、AWS認定SAAを取得した経験の記録として書いてみます。
私はオンプレミスサーバーにはある程度詳しいですが、クラウドおよびAWSに関する知識はほとんどなく、VPCやEC2といったAWSのサービスや用語についても初心者レベルでした(笑)

ちなみに、私は試験に一度不合格になった経験もありますので、それについても記事内で触れていきます。

# SAAについて
SAAは、AWS Certified Solutions Architect – Associate(AWS認定ソリューションアーキテクト – アソシエイト)の略称です。
これは、AWSの基本的なサービス、アーキテクチャの設計原則、ベストプラクティス、セキュリティや可用性の概念などを理解し、AWSベースのソリューションの設計や展開の能力を備えたことを証明する資格になります。

書いたものの、ここら辺の形式ばった内容はAWSの公式ページを見てもらえればより詳しい内

インフラ作って!から作るまでの話

# はじまりの挨拶
「アケマシテオメデトウゴザイマス、ヤマモト=サン、インフラツクッテクダサイ」
「ドーモ、アケマシテオメデトウゴザイマス、タケタニ=サン、ナンノインフラデスカ?」

BGM ♪コレから始まるインフラの物語

なお、この記事は相手方には掲載の許可を取って一部脚色したり隠蔽したりしています。

# 登場人物
メールじゃなくて凸電ってあたりに時代を感じますね・・それぞれの登場人物のスペック

1. ヤマモト:私
1. タケタニ=サン:依頼方 中小web屋さんのエンジニアリーダー的な存在
1. ミツヒデ=クン:タケタニ=サンの部下のエンジニアの人

他にも外野は何人かいましたがAとかBとかにします。

# バックストーリーの整理
いままであまりクラウドでバックエンドを構築したことがない会社さんのエンジニアの人から、クラウドでインフラをくれたまえとかいう雲を掴むような話がきました・・・・・いや雲掴むでいいのか、クラウドだけに。

LAMP構成の頃はバックエンドも作ってたんだけど最近はフロントかSaaSばっかりでねえ・・バックエンドどうやって作ったらいいかわかんねえという話でした

【aws cli】vpcの作成とネットワーキング

## aws cliを使用したvpcの作成手順

こんにちは。今回は、aws cliについて初心者エンジニアに向けて、vpcの作成とネットワーキングについて解説します。

aws cli(command line interface)は、awsの各種サービスをコマンドラインから操作するためのツールです。guiでの操作に比べて直感的ではありませんが、一度コマンドを覚えてしまえば、繰り返し操作を行う際には非常に効率的です。

今回は、vpc(virtual private cloud)の作成からネットワーキングまでをaws cliを使用して実施します。

### 参考記事:
– [【aws cli】vpcの作成方法](https://example.com/blog1)
– [【aws cli】vpcの設定手順の解説](https://example.com/blog2)

まず最初に、vpcの作成手順を解説します。

### 1. aws cliのインストール

aws cliを利用するためには、まずaws cliをインストールする必要があります。

“`shell
$ pip in

【Lambda】Python requestsを利用する方法

## Lambda import requestsでエラーとなる
Lambdaはpythonのrequestsをデフォルトでは使えません。
Content-Typeがmultipart/form-dataの場合、requests以外で処理すると、コードが長くなるので、対応方法を探していました。
application/jsonの場合は、urllib.requestを用いた対応でも良いかと思いますが、
想像よりも簡単に使えるようにできたので、下記ぜひ試してみてください!

## 参考文献
https://qiita.com/katzueno/items/3bbd9609daa6e06bcbb1

https://qiita.com/afukuma/items/b7191025700a7829967c

上記の内容参考に、自分用へのまとめ直し、補足情報の追加を行いました。

## 対応方法
### ローカルでrequestsライブラリをzip化
ディレクトリを作成し、そこにrequestsライブラリをダウンロードを行います。
そのディレクトリの中身をzip化します。
“`bash:loc

Dataikuが2023年の年間最優秀AIパートナーとして3社から選出される

「一度でも何かをすれば、人はそれを事故と呼ぶ。二度起こったら、偶然と言われる。しかし、三度目は自然法則を証明したことになる。” これはアメリカのコンピューター科学者で数学者のグレース・ホッパーの名言である。

もしそれが本当なら、私たちは今年、新たな自然法則を証明したことになる: データ・インフラに関係なく、DataikuはAIで成功する方法です。

2023年は[誰が見てもAIの年](https://www.theguardian.com/technology/2023/nov/01/ai-named-most-notable-word-of-2023-by-collins-dictionary)であり、DataikuはデータとAIの分野で最も影響力のある大企業、Snowflake、Databricks、AWSから3つ以上の年間最優秀パートナー賞を受賞しました。

1: [Snowflakeは6月、3年連続](https://www.dataiku.com/press-releases/snowflake-partner-of-the-year-2023/)でDataikuを年間最優

AWSのRoute53とCloudFrontとS3を使ってS3内の静的ページへアクセスしよう!

## 概要
AWSのCloudFrontのディストリビューションまたはRoute53のドメインからアクセスする際にS3バケット内の静的ファイルが表示されるようにする設定方法について解説します

## 前提
– Route53に自身のドメインを設定済み
– ACMを発行済み(ただし、CloudFrontに設定する際はACMをバージニア北部(us-east-1)に発行する必要があります)

ドメインの設定については以下の記事がわかりやすかったのでまだ設定できていない方は以下の記事を参考にしてください

https://dev.classmethod.jp/articles/route53-domain-onamae/

## S3バケットの作成
静的ファイルを格納する用のS3バケットを作成します
今回はS3に直接アクセスしないのでバケットのブロックパブリックアクセス設定はブロックしても大丈夫です
パブリックアクセス以外の設定も今回はデフォルトのままで大丈夫です

![スクリーンショット 2024-01-12 10.43.22.png](https://qiita-image-store.s