- 1. Terraform AWS modulesを使ってみよう 前編
- 2. python-lambda-local を使って AWS Lambda 関数をローカル環境で実行する
- 3. AWS学習でして良かったこと EC2自動停止設定
- 4. MacでLambdaレイヤーARMアーキを作成
- 5. Amazon Bedrock 全LLM 日本語能力比較(2024/5/31 ConverseAPI版)
- 6. 踏み台EC2を経由してRDSに接続したい
- 7. 【AWS初心者】おすすめAWS学習方法【クラウドプラクティショナー資格を50時間】
- 8. Amazon BedrockにUse Tools(Function calling)が来た
- 9. IAM Identity Centerを使って簡単にAWSアカウントにサインイン出来るようになりました。
- 10. クラウドの基礎知識
- 11. AWS SAP対策#2 オンプレミスからのクラウド移行計画
- 12. AWS SAP対策#1 AWS Organizationsと請求書
- 13. 【Python】Lambda Layerの作成方法
- 14. AWSでDBのmaster、slaveをTerraformで構築したい
- 15. 【ALB・CloudWatch・Lambda】サーバーダウン等の異常をALBで検知した際にSlackに通知する
- 16. 【AWS】CloudformationでAPI Gateway Method作る際のアクションタイプの指定
- 17. 検証!Amazon CodeCatalystのDev EnvironmentでVisual Studio Codeを起動してみる
- 18. Security Hubのセキュリティ標準にCIS Benchmark v3.0.0が追加されました
- 19. Terraformで構築するPrivate SubnetのRDSインスタンスへのアクセス手順
- 20. EC2 上で動くECS Task から外界のインターネットに接続できないときにハマったこと
Terraform AWS modulesを使ってみよう 前編
# はじめに
**Terraform AWS modules**をご存知でしょうか。
普段からterraformでコードを書いている方の中にも「よく知らない」「聞いたことはあるけど使ったことはない」という方も実は多いのではないでしょうか。この記事では **Terraform AWS modules** とは一体なんなのかをざっくり説明したいと思います。
# そもそも何なの?
Terraform Registryで公開されている、コミュニティにより作成されたモジュール群です。
# どこにあるの?
ここにあります。
https://registry.terraform.io/namespaces/terraform-aws-modules
# どうやって使うの?
モジュールは概ねサービス毎に作成されています。
本体となるコードはgithub上で管理されていますが、Terraform Registry上に各モジュールのドキュメントがありますのでまずは自分が使いたいモジュールを選びましょう。(今回はvpcモジュールを例とします)
https://registry.ter
python-lambda-local を使って AWS Lambda 関数をローカル環境で実行する
# はじめに
Lambdaのプログラムをテストする際、毎回 Lambda 関数を更新して実行するのは面倒ではないですか?
そこで良い方法ないかなと調べていたところ、 **python-lambda-local** というツールを知りました。https://github.com/HDE/python-lambda-local
# 仕様
Python 3.7+
今回試した環境のバージョンは 3.9.6 でした。
“`bash:バージョン
$ python3 –version
Python 3.9.6
“`# インストール
pip でインストールすれば完了です。“`bash:インストール
$ pip install python-lambda-local
“`# オプション
使い方とオプションは以下になります。“`bash:使い方
$ python-lambda-local [-h] [-l LIBRARY_PATH] [-f HANDLER_FUNCTION]
[-t TIMEOUT] [-a ARN_ST
AWS学習でして良かったこと EC2自動停止設定
## 前段
学習でAWSを利用していると、メールでAWS Budgetsの予算通知アラートがきていました。AWSマネジメントコンソールにアクセスしたところ、EC2を停止し忘れていたことが発覚…
そこで、EC2の停止忘れ防止にEC2自動停止設定を行いました。## 方法
EventBridge用IAMロールの作成とEventBridge停止用ルールの作成を行いました。
以下の記事を参考に設定していますので、詳しくはそちらを参照ください。
・毎日18時に停止
![AmazonEventBridgeEC2Stop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2618548/d507323a-b8ce-a648-2ab1-2c24654aad78.png)・停止したいEC2インスタンスのID
MacでLambdaレイヤーARMアーキを作成
# はじめに
***arm64でLambda関数をデプロイせざるを得ないケースで、Layerを追加したい場合向け。*** imageデプロイを使えばどうとでもなるのだが、それは根本解決にはならない。前に一度やったのだが、やり方を失念してしまったため、備忘として記録する。
Cloud9やEC2を使ってLayerを作成する方法もあるが、***AWSが提供するdocker imageを使えばローカル環境であらゆるLayerを作成できるし、インタラクティブにやりたい***ので、本記事ではその方法について記述する。# 環境
– 言語: python3.12
– OS: macOS Sonoma14.5
– RAM: 64GB
– Docker: 25.0.3# 手順
この[Docs](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-layers.html#python-layer-compatibility)で推奨されている通り、Amazon Linuxベースコンテナイメージに基づくDocker環境に依存関係をイン
Amazon Bedrock 全LLM 日本語能力比較(2024/5/31 ConverseAPI版)
BedrockにConverseAPIなるものが追加され、モデル毎のパラメータの差異を吸収してもらう事が出来る様です。
ということで、全LLMモデルに対してConverseAPIを呼んでみます。
https://aws.amazon.com/jp/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/
https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-runtime/client/converse.html#
# 作ったプログラム
I/Fが統一されたのでなんでもモデル呼出し関数を作って全モデルでそれを呼び出してみます。
“`Python
import boto3prompt=”質問:日本における味噌汁の作り方を詳しく日本語で説
踏み台EC2を経由してRDSに接続したい
## :triangular_flag_on_post: やりたいこと
今回、踏み台用のEC2を作成し、RDSへ接続してみます!
EC2をパブリックサブネット、RDSをプライベートサブネットに配置する想定です。
なお、VPCやサブネットは作成済みの前提で進めますのであしからず:zipper_mouth:## :gear: セキュリティグループの作成
まずはEC2・RDSに設定するセキュリティグループの作成から。**EC2**
EC2へはsshで繋ぎたいので、ポート22を許可してあげます。
CIDRブロックには許可するIPアドレスを指定します。
`0.0.0.0/0`を入力すればどこからでもアクセスできる状態になりますが、
今回パブリックサブネットに作成するためセキュリティ的に危険なので、自端末のIPアドレスを指定してください。
特定のIPアドレスのみを許可する場合は/32とします。
例:`〇.〇.〇.〇/32`
![image-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788032/7
【AWS初心者】おすすめAWS学習方法【クラウドプラクティショナー資格を50時間】
## まずはAWS公式動画でざっくり全体像を把握しよう
いきなりテキスト形式で学習すると抵抗があるかもしれないので、まずは分かりやすく言葉で説明してくれる公式動画を見ることをオススメします。このAWS公式動画は「日本人講師」が「日本人向け」に「日本語」で説明しているものです。IT未経験の私でも理解できるような容易な言葉や例えを用いて勉強できるので、IT未経験やAWS未経験の方の入口としては最適です。
説明している講師はAWSの生出(おいで)先生で、とても説明が上手く、動画を見終えたころには先生のことが好きになっているはずです笑
動画数:約30分の動画が7本IT 初心者向けクラウド入門ウェビナー
https://resources.awscloud.com/cloud-practitioner-essentials-on-demand-training
Amazon BedrockにUse Tools(Function calling)が来た
急ぎご連絡まで。
“`shell
pip install “boto3>=1.34.116”
“`“`python
import jsonimport boto3
bedrock_client = boto3.client(“bedrock-runtime”)
model_id = “anthropic.claude-3-haiku-20240307-v1:0”
toolConfig = {
“tools”: [
{
“toolSpec”: {
“name”: “get_weather”,
“description”: “Get the current weather in a given location”,
“inputSchema”: {
“json”: {
“type”: “object”,
IAM Identity Centerを使って簡単にAWSアカウントにサインイン出来るようになりました。
# はじめに
みなさん、こんにちは。GENEROSITYの西村です。弊社では、半年ほど前に、`AWS Organizations`を導入しまして、`IAM Identity Center`を使ってシングルサインオンをすることが可能となりました。
弊社では、何十を超えるAWSアカウントを運用管理しているため、毎日のようにお世話になっています。
今回は、アクセスポータルから、AWSアカウントを選択せずに、特定のAWSアカウントのマネジメントコンソールにサインインが出来る、便利なショートカットを作成する機能が追加されて地味に嬉しかったので、そちらのやり方をご紹介します。:::note
IAM Identity CenterとはAWS環境へのシングルサインオンアクセスを簡単に行えるサービスです。複数のAWSアカウントやクラウドアプリケーションに対するユーザーのアクセス管理を一元化できます。
AWS Single Sign-on(SSO)の後継サービスで、AWS Organizationsを導入している場合IAM Identity Centerを利用することができます。
:::
クラウドの基礎知識
# オンプレミスとクラウドの比較
### **オンプレミス**
システムの稼働やインフラの構築に必要となるサーバーやネットワーク機器、ソフトウェアなどを自社で管理し、運用する方式。**メリット**
* ITインフラを自社で構築・運用するため、システムに合わせて自由にカスタマイズする事が出来る。
* 社内専用のITインフラを構築し、ユーザーも自社の社員のみなのでセキュリティ性が高い。### **クラウドコンピューティング**
インターネットを通じて、仮想化したサーバーリソースをオンデマンド(ユーザーからのリクエストに応える方式)にかつ柔軟に提供するサービス。**メリット**
* システムの構成機器を自社で調達する必要がないため、低コストかつ短期間にITシステム環境を構築できる。
* システムの構築後であっても、プロジェクトの展開に応じてサーバーやストレージの規模を拡張したり、新しい機能を追加したりすることが可能。:::note warn
ここで言うクラウドコンピューティングはパブリッククラウドを指すものとする。
:::## 総括(オンプレミスとクラウドについて)
#
AWS SAP対策#2 オンプレミスからのクラウド移行計画
AWS SAP試験対策#2
# 問題(ざっくり)
ある会社では、複数のデータセンターとオフィスで数百のアプリケーションを実行しています。アプリケーションには、LinuxOS・物理サーバー・MySQLデータベースなどが含まれています。既存のドキュメントは不完全で古くなっています。ソリューションアーキテクトは現在の環境を理解し、移行後のクラウドリソースコストを見積もることでクラウド移行を計画しなければいけません。どのツール・サービスを使いますか?(以下から3つ選択)①CloudWatch Logs
②AWS Migration Hub
③AWS Config
④AWS Cloud Adoptation Readinss Tool (CART)
⑤AWS Server Migration Service
⑥AWS Database Migration Service
⑦AWS Application Discovery Service\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*#
AWS SAP対策#1 AWS Organizationsと請求書
AWS SAP試験対策 #1
# 問題(ざっくり)
ある会社では、複数事業部が各自のAWSアカウントを持っています。すべてのAWSアカウントに対して、事業部ごとに費用を分類した単一のAWS請求書が必要です。また、この会社ではすべてのAWSアカウントに対して、サービスや機能を一元的に制限・管理する必要があります。ソリューションアーキテクトはどうすればいいですか?(手順2つ)\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
\*
# 回答
①AWS Organizationsを使用してすべての機能を有効にした組織を管理アカウントで作成し、その組織にすべてのAWSアカウントを招待する。
②承認されたサービスと機能だけが許可されたSCPを作成し、そのポリシーをすべてのAWSアカウントに適用する。# 要点解説
### ①AWS Organizationsの一括請求(コンソリデーティッドビリング)
→Organizationsを用いることで、複数アカウントの支払いを一括で行えるようになります。
※あくまでもOrganizationsと
【Python】Lambda Layerの作成方法
# Lambda Layerを作成したいがめんどくさい
Lambda LayerはAWS Lambdaに標準で用意されていないライブラリや自分で作成した関数などを取り込む際に利用します。
一見zipファイルを作成してアップロードするだけなんですが、いくつか落とし穴があります
– Amazon Linuxで作成する必要がある(場合がある)
– LambdaはAmazonLinuxで動いている
– macOSなどでインストールしたものがAmazonLinuxで動かない場合があるため
– 求められるディレクトリ構造が実はある
– apiでのzipアップロードはファイルサイズの制限があるなどなどで躓いたのでやり方をまとめておきます
## AmazonLinuxでのpython実行環境の用意
構築方法は別記事にまとめました。ローカル環境(macOSやWindows)でインストールしたライブラリをアップロードすると、動くときもありますが動かないときもあります。仮に動いたとしても、基本的にはAmazonLinuxで作成するほうが良いでしょう。
pythonはLambdaで使用す
AWSでDBのmaster、slaveをTerraformで構築したい
AWSでDBのmaster、slaveをTerraformで構築してみました。
“`
├── main.tf
├── output.tf
├── rds
│ ├── output.tf
│ ├── rds.tf
│ └── variables.tf
├── sg
│ ├── output.tf
│ ├── sg.tf
│ └── variables.tf
├── terraform.tfstate
├── terraform.tfstate.backup
├── variables.tf
└── vpc
├── output.tf
├── variables.tf
└── vpc.tf
“`“`main.tf
terraform {required_providers {
aws = {
source = “hashicorp/aws”
version = “~> 4.16”
}
}required_version = “>= 1.2.0”
}provider
【ALB・CloudWatch・Lambda】サーバーダウン等の異常をALBで検知した際にSlackに通知する
## 自己紹介
はじめまして、はる([@lemonade_37](https://twitter.com/lemonade_37))と申します。
駆け出しエンジニアとして約3ヶ月が経過しました🐣## 概要
サーバーダウンにいち早く気づき、異常の対処や再起動ができるために、
ALBの異常を検知した際に、Slackに通知を送る機能を実装します。
下記の構成でEC2にデプロイされており、ロードバランサー(ALB)で1分毎にHTTPリクエストを送信し、サーバーが起動しているか確認する機能はすでに導入されている前提とします。今回のインフラ構成図のイメージです。
![Qiita記事用.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471604/4ef7cf57-ad9b-7141-0c5a-298fee473b65.png)### 環境
– Docker
– Ruby 3.2.3
– Rails 7.1.3
– PostgreSQL:::note warn
間違っている箇所や、紹介
【AWS】CloudformationでAPI Gateway Method作る際のアクションタイプの指定
# 困ったこと
– CloudFormationでAPI Gateway + S3 Proxyを作ろうとした際に、アクションタイプの指定で”パスオーバーライドを使用”にならない
– CloudformationのAPI Gateway Methodを見てもパスオーバーライドなんて検索にかかってこない# 結果
– uriの項目内で指定する
– “アクション名を指定”にしたい場合、’action/{アクション名}’を指定
– arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
– “パスオーバーライドを使用”にしたい場合、’path’を指定
– arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}# 参考リンク
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-apigat
検証!Amazon CodeCatalystのDev EnvironmentでVisual Studio Codeを起動してみる
# 検証!Amazon CodeCatalystのDev Environmentで快適なVS Code環境を構築してみる
## はじめに
この記事では
Amazon CodeCatalystのDev Environmentを使って、VS Codeの開発環境を構築する方法を紹介します。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。## AWS上で快適に開発したい
AWSのサービスを使ってアプリケーションを開発しているような場合、
AWSのサービスとの連携がしやすい環境を構築したいですよね。たいていの場合は、Visual Studio CodeのようなIDEを使って開発したり
JetBrainsのIDEを使って開発したりすると思います。AWSだったらCloud9を使えばいいじゃん!という意見もあるかもしれませんが、使い慣れているIDEを使いたいという場合もあるでしょう。
(とはいえ、vimやemacs使いであれば、Cloud9でもそれらを使えるので、そういう場合はCloud9でもいいかもしれません)
Security Hubのセキュリティ標準にCIS Benchmark v3.0.0が追加されました
## はじめに
私が大好きなSecurity Hubに新たなセキュリティ標準「CIS Benchmark v3.0.0」が追加されました。## Security Hub セキュリティ標準
セキュリティ標準には、規制のフレームワーク、業界のベストプラクティス、企業ポリシーのコンプライアンスを判断するための一連の要件が含まれています。Security Hub は、要件をコントロール(検知項目)にマッピングし、各項目のセキュリティチェックを実行して、
セキュリティ標準の要件が満たされているかどうかを評価します。## CIS Benchmark
CIS(Center for Internet Security)は米国政府機関や企業、学術機関などが運営する非営利団体で、最新のサイバーセキュリティに関するベストプラクティスソリューションを開発・検証しています。現在、AWSでは以下のCIS Benchmarkがサポートされています。
* v1.2.0
* v1.4.0
* v3.0.0 New!!## 新規追加項目(v1.4.0との比較)
v1.4.0と比較して、13項目が追加
Terraformで構築するPrivate SubnetのRDSインスタンスへのアクセス手順
## 背景
AWSでは、データベースをセキュアに管理するために、RDSインスタンスをプライベートサブネットに配置することが一般的。しかし、プライベートサブネットに配置されたRDSインスタンスにアクセスするためには、通常、踏み台(Bastion)ホストが必要で、これらの方法は、セキュリティ上のリスクも伴う。そこで、AWS Systems Manager (SSM) セッションマネージャーを利用することで、これらのリスクを解消し、セキュアにRDSインスタンスにアクセスしようと思う。
## やることのイメージ
“`
LocalHost
┆
(SSM)
↓
SSM EC2 Instance (Public Subnet)
┆
(SSM)
↓
RDS Instance (Private Subnet)
“`※SSM EC2 Instance も、Private Subnetにおくほうがいいらしい? が、SSHで中身確認したりしたいので、Publicにおいてる
## Terraform で SSM EC2 Instance 構築
VPC、Subnet、RDS Instan
EC2 上で動くECS Task から外界のインターネットに接続できないときにハマったこと
## 概要
タイトルのままです。
ECSクラスターを作成し、そのクラスターの中にEC2を立て、
そのEC2を使ってタスク定義からECSタスクを起動すると、そのECSタスクから外界に接続できないエラーとなり、ハマっていました。## 症状
EC2は起動テンプレートを利用して作成していました。
また、ECSのネットワークはawsvpc を利用しており、エラーとなっていたのでその後bridgeにしました。やりたかったことは、ECSタスクからS3にアクセスしてファイルをダウンロードすることでした。
が、エラーとなっていたので、以下のことを試しました。1. EC2にSSHして、EC2からS3にアクセスできることを確かめる(できた)
2. ECS Task に EC2からDocker exec し、pythonのrequests などを送ってyahoo.co.jp とかにそもそも接続できるかやった(エラーとなった)## 解決策
EC2を起動テンプレートから作成していたのですが、
その起動テンプレートに紐ついているSubnetをパブリックにすることで解決しました。
また、EC