- 1. 【AWS IAM】IAMについてまとめてみた
- 2. 異なる AWS アカウント同士での Amazon S3 のデータ同期を実施する (AWS CLI 手動実行編)
- 3. 踏み台のインスタンスからEC2に接続する
- 4. AWS CDK(TypeScript) 入門: 初期セットアップからVPC構築までの流れ
- 5. OpenSearch Serverless概要
- 6. 【AWS】EC2 インスタンスを作成して接続する
- 7. AWSでFiveMのテストサーバを作ってみた
- 8. AWS利用料金が閾値を超えたらメールで通知するようにTerraformでAWS Budgetsを設定した
- 9. AWS Certified AI Practitioner (AIF-C01) ベータ版に挑戦!
- 10. Cloud-Based Web Application Architecture: AWS to Azure Service Mapping
- 11. Amazon OpenSearch Serviceについて試してみた
- 12. DynamoDBのTime To Live (TTL)に関する豆知識
- 13. Github ActionsでTerraform(tflocal)実装のAWS Localstack環境構築(1)
- 14. [Amazon Web Services]LambdaでEC2の定期停止設定してみた
- 15. [Ruby/AWS]alpha vantage APIを使って株のデータをRedshiftに入れる
- 16. Secrets Manager
- 17. AWSアカウントによらずアベイラビリティゾーンを識別できるAZ-IDについて
- 18. Compute Optimizerってなんだ…
- 19. サーバーレスを小学生でも分かる様に解説する試み
- 20. VPCエンドポイント経由でのSSMを用いたEC2への接続を図で整理する
【AWS IAM】IAMについてまとめてみた
# はじめに
IAMってナントカポリシーとか色々あってわかりにくい!と思ったので自分なりにまとめてみました。
AWS初心者向けの記事となります。## そもそもIAMって?
AWS IAM(Identity and Access Management)とは、AWSにおける認証や認可を行うサービスです。
マネージメントコンソールへのログインや、AWS CLIを使ったリソース操作、AWSのサービス同時の連携などに利用されるサービスとなっています。IAMには以下表のとおり、複数のコンポーネントがあります。
| コンポーネント | 説明 |
| —- | —- |
| IAMユーザー | AWSアカウントへのアクセスの認証単位 |
| IAMポリシー | 操作権限の認可を行う仕組み |
| IAMグループ | IAMユーザーをグループ単位で管理する機能 |
| IAMロール | AWSリソースへの操作権限の認可を行う機能 |それぞれのコンポーネントについて解説していきます。
## IAMユーザー
IAMユーザーとは、AWSアカウント上に作成するユーザーです。
IAMユーザ
異なる AWS アカウント同士での Amazon S3 のデータ同期を実施する (AWS CLI 手動実行編)
# 1. はじめに
ある AWS アカウントの Amazon S3 バケットに保管されたデータを別の AWS アカウントの Amazon S3 バケットにコピーする AWS CLI の実行手順です。
特殊なアクセスルールの条件で実施する必要があったので備忘録をまとめます。
今回は次のような特定の条件に向けて、AWS CLI を活用して S3 間でデータを同期する手法をご紹介します。
## 前提条件 (S3 バケット A へのアクセス制限)
– AWS アカウント A の S3 バケット A には、AWS アカウント B の「ルートユーザー」だけがデータ取得 (List/Get) できる
– AWS アカウント A の Amazon S3 および他の AWS リソースに関する操作、変更は一切実施できない![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/86bc0622-6ec6-a1c8-81b0-47a991203a2a.png)
異なる AWS アカウント (
踏み台のインスタンスからEC2に接続する
## はじめに
今回はパブリックサブネットのEC2を経由してプライベートサブネットのEC2にSSH接続してみたので備忘録として記事にしてみました。
VPCやサブネットの名前は適当につけているので分かりにくかったら申し訳ないです。
## 構成
![9e87f88cf0fa-20230604.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812406/20671059-8ceb-cd9e-aea6-c470f9470212.png)## 手順
– VPCの作成
– サブネットの作成
– インターネットゲートウェイの作成
– ルートテーブルの作成
– EC2インスタンスの作成
– インスタンスへ接続
– Elastic IP addressの割り当て
– NATゲートウェイの作成### VPCの作成
– 名前タグにtest-vpcを入力(何でもよい)
– IPv4 CIDRを10.0.0.0/21に設定(/16~/28の範囲で作成)
![スクリーンショット (14).png](https://qi
AWS CDK(TypeScript) 入門: 初期セットアップからVPC構築までの流れ
# はじめに
AWS CDKを使用して、L1レベル(CloudFormation互換レベル)でVPCを構築する方法を説明します。
L1レベルのコンストラクトを使用することで、CloudFormationリソースに直接対応する形でインフラストラクチャを定義できます。# 手順
## 1. 環境のセットアップ
まず、AWS CDKをグローバルにインストールします。
“`bash
npm install -g aws-cdk
“`## 2. プロジェクトの作成
新しいディレクトリを作成し、CDKプロジェクトを初期化します。
“`bash
mkdir aws_cdk_typescript
cd aws_cdk_typescript
cdk init app –language typescript
“`
下記フォルダ構成で作成されます
“`sh
tree -L 1
.
├── README.md
├── bin
├── cdk.json
├── cdk.out
├── jest.config.js
├── lib
├── node_modules
├── pa
OpenSearch Serverless概要
# はじめに
BedrockでRAGの構成を実現する際のベクトルDBとしてOpenSearch Serverlessが選択肢としてあります。あまり詳細把握できていなかったので簡単にですがまとめました。prefixは`aoss:`というものになります。
# OpenSearch Service
– OpenSearch
– コミュニティ主導・Apache2.0ライセンスのオープンソース検索・分析スイート
– データストア、検索エンジンの`OpenSearch`、可視化、UIツールの`OpenSearch Dashboards`から構成
– セキュリティ、パフォーマンス分析、機械学習など様々なプラグインによる機能拡張が可能
– ユースケース
– 全文検索
– ログ分析– ドキュメント
– JSON形式で表現される単一のデータ
– 一般的なDBのレコードに相当– OpenSearchの課題
– 設計時の課題
– データサイズ、シャード数、リクエストレートなどをベースにク
【AWS】EC2 インスタンスを作成して接続する
# はじめに
この記事では、EC2 インスタンスを作成して接続する手順を記載します。https://aws.amazon.com/ec2/
:::note
以後の画面キャプチャは 2024年8月時点のものです。
:::# インスタンス作成(起動)画面へアクセスする
EC2 のダッシュボードで「Instances」をクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318188/b7fecac1-43fb-f6f8-0699-0e4f61d91475.png)
インスタンス一覧画面が表示されます。この画面で「Launch instances」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318188/0e74483e-5377-8f2b-42ec-442dcec0ab6e.png)
# インスタンスを作成する
必要情報を入力してインスタンス
AWSでFiveMのテストサーバを作ってみた
# FiveMのテストサーバについて
FiveMでscriptsの開発を実施することになり、常に使うわけではないため、従量課金であるAWSを利用することにした。(メインのアカウントもあるので)
今回は、Organizationで管理しながら、FiveM用の専用アカウントを作成し、その上で、EC2を構築した。
費用を下げるために、スポットインスタンスを利用してコスト削減も実施。## 構成の概要図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3868301/258cbec2-5ce5-aa29-ffbf-caef196d240a.png)## スペック
t3.large(CPU:2コア、メモリ:8GB)
ディスク:80GB
※上記スペックで作成したが、開発・テスト用ではもっとスペックが低くてもよさそう。
特にディスクは40GBでも良さそうなぐらい使用していない。## 構成のポイント
・Cfx.reでの登録上、固定グローバルIPを使用する必要があるため、EIPを利用する。
AWS利用料金が閾値を超えたらメールで通知するようにTerraformでAWS Budgetsを設定した
AWSのコスト管理を自動化するために、AWS Budgetsを設定しました。主な目的は、予算を超えた場合にアラートを受け取ることで、不要なコストを抑えることです。Terraformを使ってAWS Budgetsを設定したので、行ったことをまとめます。
### 1. 環境の準備
まず最初に、TerraformとAWS CLIがインストールされているかを確認しました。私はAWS SSOを使っているので、以下のコマンドでSSOの設定を行い、AWSにログインしました。
“`
aws configure sso
“`このコマンドでAWS SSOにログインし、プロファイルを設定しました。
### 2. Terraformプロジェクトのセットアップ
次に、Terraformのプロジェクトをセットアップしました。以下のようなディレクトリ構成にしました。
“`
├── README.md
├── main.tf
├── backend.tf
├── provider.tf
├── terraform.tfvars
└── variables.tf
“``.gitignore`
AWS Certified AI Practitioner (AIF-C01) ベータ版に挑戦!
# はじめに
AWS Certified AI Practitioner (AIF-C01) ベータ版にトライし、無事合格することができました。試験の概略や試験対策などを書いていこうと思います。ベータ版のタイミングで合格すると、下記のような「EARLY ADOPTER」バッジがもらえますよ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3288030/63430b82-0f0c-0407-0c15-3a0191b9420a.png)# 試験概略
[AWS Certified AI Practitioner試験の説明サイト](https://aws.amazon.com/jp/certification/certified-ai-practitioner/#exam-prep)| 概要項目 | 概要 |
|:———–:|:————|
| 試験時間 | 120分 |
| 問題数 | 85問 |
| 合格スコア | 700点(100
Cloud-Based Web Application Architecture: AWS to Azure Service Mapping
この記事では、AWSを使用して構築されたクラウドベースのウェブアプリケーションアーキテクチャを、Azureに置き換える際に対応するサービスを示します。図を通じて、それぞれのクラウドプラットフォームにおける同等のサービスを視覚的に比較します。
図1:AWSベースのウェブアプリケーションアーキテクチャ
![Deploy web application on AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1082021/dabef2cc-7b29-ae94-1849-a7899067b050.png)図2:Azureベースのウェブアプリケーションアーキテクチャ
![Deploy web application on Azure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1082021/b386d4fa-dd8a-eacd-a38a-3cebff92c72b.png)#### 1. 全体概要
AWSと
Amazon OpenSearch Serviceについて試してみた
# 背景・目的
最近、OpenSearch Serviceに触る機会が増えてきましたので、基本的な知識の整理と簡単に動作を確認します。# まとめ
下記に特徴をまとめます。|特徴|説明|
|:–|:–|
|Amazon OpenSearch Service|AWS クラウドでの OpenSearch クラスターのデプロイ、運用、スケーリングを容易にするマネージドサービス|
|Amazon OpenSearch Serviceによりできること|OpenSearch クラスターのすべてのリソースをプロビジョニングし、クラスターを起動する
障害が発生した OpenSearch サービスノードを自動的に検出して置き換え、セルフマネージドインフラストラクチャに関連するオーバーヘッドを削減する
クラスターを簡単にスケーリングできる|
|OpenSearch|オープンソースの検索および分析エンジン|
|ユースケース|・ログ分析
・リアルタイムアプリケーションモニタリング
・クリックストリーム分析など|
|Amazon OpenSearch Servi
DynamoDBのTime To Live (TTL)に関する豆知識
# はじめに
本記事は、[ANGEL Calendar](https://qiita.com/organizations/2024-angel-dojo) 16日目の記事です!
ANGEL Calendarでは、9月中毎日記事が投稿されますので、是非他の記事もご覧ください!https://qiita.com/har1101/items/637ba82948aa7670fb9f
今回は、DynamoDBテーブルで設定可能なTime To Live(TTL)に関する豆知識について、ご紹介します。
# 1. DynamoDBのTTLとは
DynamoDBテーブルの追加設定項目には、期限切れのアイテム(項目)を自動で削除する「TTL」があります。
UNIXエポック時間形式(秒単位)で設定されたキー名を指定することで、サービス側で自動的に削除してくれる機能です。https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/TTL.html
expireAtキーに「1726455600(2024/9/16
Github ActionsでTerraform(tflocal)実装のAWS Localstack環境構築(1)
### 背景
パブリッククラウドの構築でIaCを用いたTerraform実装を行う際、テストや開発段階でAWSリソースを利用することにより場合によってはコストがかかる場合があります。
一方、LocalStackはAWSのリソースをローカル環境でエミュレーションできるため、料金を気にすることなくテストを行うことが可能です。### 目的
GitHub ActionsのCI/CDパイプラインを利用し、LocalStackを使用したAWSリソースをTerraformで構築し、インフラのデプロイやコーディングの検証を行います。### 内容
GitHub Actionsのワークフロー内で、Terraformを使用してLocalStack環境にAWSリソース(例: VPC、EC2、S3バケット、API Gateway、Lambda)を作成します。
ワークフローでエラーが発生した場合、原因調査し、コードの修正とワークフローの再実行を行います。### 前提条件
必要最低限のリソースを作成します。AWSの仕様や必須設定については考慮はせず、単純に作成ができることをまず目的としています。
※細か
[Amazon Web Services]LambdaでEC2の定期停止設定してみた
最近、個人AWSアカウントを活発に利用しており、EC2インスタンス台数が増加してきました。その中で、EC2利用後、ついついインスタンス停止を忘れてしまっており、余計なコストが発生しております。そこでLambdaを利用し、EC2の定期停止設定をしてみました。
## LambdaによるEC2定期停止設定の前提
\- 対象リージョンはバージニア北部であること(後続のコードを修正することで変更可能)
\- 定期停止対象のEC2に対して、タグ[key:EC2Auto_Stop, value:true]が付与済みであること## Lambda実行用IAMポリシー作成
まずはLambda実行用IAMポリシーを作成していきます。1.IAMコンソール>左ペイン「IAMポリシー」>右上「ポリシーの作成」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822026/42b71a15-5695-5df1-aacb-5d218c1d4421.png)2.[アクセス許可を指定]にて、JSONで下
[Ruby/AWS]alpha vantage APIを使って株のデータをRedshiftに入れる
株のデータを分析してダッシュボードを作るため、今回はAWSのデータウェアハウスサービスであるRedshiftを使うことにした。
GoogleのBig QueryやSnowFlakeのようなサービスで、以下のブログの説明がわかりやすかった。
https://qiita.com/rm_zeal/items/b77818daff6f92fc5cd3
今回の実装で割と迷うところが多かったため、備忘録として残してみた。
## まずは株のデータを取得
株のデータはAlpha Vantageという無料の株APIから取得することに。https://www.alphavantage.co/
メインページから`GET FREE API KEY`をクリック
![スクリーンショット 2024-09-15 21.54.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754242/18d5acfe-8225-e44e-75f0-a2a4141f9204.png)
情報を入れてGETボタンを押すと簡単にキーが
Secrets Manager
## AWS Secrets Managerとは
機密情報管理サービス。
ライフサイクルを通じてデータベース認証情報、API キー、その他の機密情報を簡単に更新、管理、取得できる。https://aws.amazon.com/jp/secrets-manager/
## 特徴
– アプリケーションに影響を与えずにシークレットを自動更新できる
– 複数の リージョンにシークレットを自動レプリケーションする
– シークレットを監査・モニタリングできる## Secrets Managerの安全性について
保管中のシークレットは、ユーザの所有する暗号化キーで暗号化後、KMSに保存され、IAMのポリシーを使用してシークレットへのアクセスを制限できる。
シークレットを取得すると、Secrets Manager でシークレットが復号され、TLS 上でユーザのローカル環境に安全に送信される。## シークレット更新のタイミングについて
CloudWatch Events を設定すると、Secrets Managerでシークレットが更新された際に通知を受け取ることができる。
また、Sec
AWSアカウントによらずアベイラビリティゾーンを識別できるAZ-IDについて
# 1.はじめに
マルチアカウントで構築したシステムのAZ障害を想定した復旧テストでは、AZ-IDを意識する必要がありました。この記事では、AZ-IDについて詳しく説明します。# 2.アベイラビリティーゾーン(AZ)とは
AWSのアベイラビリティゾーン(AZ)は、AWSリージョン内にある物理的に分離されたデータセンターの集合です。各AZは異なる電源供給やネットワーク接続を持ち、障害が発生した際には他のAZが影響を受けないように設計されています。システムを複数AZに冗長的に構築することでアプリケーションやサービスの可用性が高まり、災害時のリスクを軽減することができます。# 3.AZ-IDとは
アベイラビリティゾーン(AZ)を識別するためのコードとして、AZ-IDが用いられています。AZ-IDはAWSが各AZを一意に識別するためのもので、AZの名称とは異なることに注意が必要です。多くの方が「東京リージョンのAZ」というと、以下表記載の通り、「ap-northeast-1」+「アルファベット1文字」の形式で表現される名称を思い浮かべるでしょう。これらの名称は、AWSがアベイラビリ
Compute Optimizerってなんだ…
# 学習前
ComputeというからにはEC2とかLambdaとかECSをなんやらかんやらしてくれるサービス?
Optimizerの意味は知らん!# Compute Optimizerとは
>ワークロードに最適な AWS リソースを推奨し、機械学習を使用して過去の使用状況に関するメトリクスを分析することで、コストを削減し、パフォーマンスを改善します。簡単に言うと、**機械学習を用いてAWSサービスを評価し、パフォーマンスやコストを適切な状態にしてくれるサービス**です。
`Optimize` は「最適化」という意味で、IT用語で「良い感じに(早く楽になるように)調整してくれる機能」だそうです。DB関連ではSQLをチューニングしてくれる機能とのこと。シラナカッタ…
例えばEC2では、下記の2つを比較して評価してくれます。
– EC2のインスタンスタイプ
– 実際のワークロード(CloudWatchメトリクスを元にした、一定期間の使用率やコスト)ここで、ワークロードに対して適切なEC2インスタンスタイプが割り当てられていれば良いのですが、そうでない場面も多々あります。
極
サーバーレスを小学生でも分かる様に解説する試み
## 従来の方式が抱えていた課題
昔のシステム開発では、オンプレミスのサーバーにOSをインストールし、その上にアプリケーションやミドルウェア(Webサーバー、DBMSなど)を設定するのが一般的でした。その後、仮想化技術の普及により、EC2などのクラウド上の仮想サーバーを利用するケースが増えました。しかし、これらの方式には以下のような課題があります。– (オンプレミスの場合) サーバーのハードウェア調達とOSのインストールに手間と時間がかかる
– OSやミドルウェアのインストール・設定に専門知識が必要
– OSやミドルウェアのバージョンアップ、セキュリティパッチ適用などの保守作業が必要
– 利用者がいない時間帯でもサーバーを起動し続ける必要があり、コストがかかり続ける
– スケーリングのために設定変更が必要で、トラフィックの増減に柔軟に対応しづらい
– ストレージについても、容量の見積もりや増設の作業が必要## サーバーレスの登場
こうした課題を解決するため、近年ではサーバーレスアーキテクチャが注目を集めています。主要なクラウドプロバイダーは以下のようなサーバーレス関数サービスを
VPCエンドポイント経由でのSSMを用いたEC2への接続を図で整理する
# はじめに
プライベートサブネットに配置したEC2へ、VPCエンドポイント経由でセッションマネージャーを用いて接続する場合の構成を図でまとめました。# 構成図
![EC2 SSM接続-構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572307/94c19563-6f28-8614-ce4d-41e738c6c174.png)## ①EC2(SSMエージェント)からSystems Managerへの接続
SSMエージェントがインストールされたEC2インスタンスは、Systems Managerに接続を試みます。* プライベートサブネット内からVPC外部(AWS内部ネットワーク)へ接続する経路としてVPCエンドポイントを作成しています。
* EC2には、Systems Manager接続のための権限(IAM Role)を割り当てる必要があります。
* EC2、およびVPCエンドポイントにはセキュリティグループを設定する必要があり、許可する通信を適切に設定する必要があります。## ②