- 1. Step FunctionsでParameter Storeの値を入れ替える
- 2. Aurora MySQL 2から3へのバージョンアップで挙動が変わるSQL(2)
- 3. AWSのIAM Roleについて整理してみた
- 4. CloudFrontだけで短縮URLサービス作ってみた。
- 5. RustのAxumで作成したDockerイメージをAWS Lambdaにサクッとデプロイする(Lambda Web Adapter)
- 6. LaravelアプリをEC2で動かす
- 7. AWS ECSで悪戦苦闘走り書き
- 8. OpenID Connectを使用してGitHub Actionsでアクセスキーレスなデプロイをおこなう
- 9. AWSにVPNServerをテンプレート化した(注:ローカルブリッジはできません)
- 10. AWSのマネジメントコンソールでセキュリティグループを作成する
- 11. AWS SAMを使ってローカルでLambdaを実装、AWSにデプロイしてみた
- 12. AWS Certified Data Engineer – Associate (DEA-C01) ベータ版を受けてみた
- 13. AWS Data Provider for SAPのアクセス許可ポリシーを作成する。SAP on AWS ハンズオン①
- 14. 【aws cli】dynamodbテーブルの作成とクエリ
- 15. 【aws cli】セキュリティグループの設定と管理
- 16. ECSをBlue/Greenデプロイするイメージをterraformで掴んでみる
- 17. 【aws cli】iamユーザーの作成と権限設定
- 18. AWS CLIのオプションまとめ
- 19. Fargate上のGitLab起点でEC2を更新するGitOpsを実現したい
- 20. AWSでAuto Scaling Groupの作成
Step FunctionsでParameter Storeの値を入れ替える
# はじめに
AWS Systems Managerのパラメーターストアに接続先を格納しておいて、障害発生時に別の接続先に書き換える、という構成があるようです。今回は、パラメーターストアを2つ作成し、一方を稼働系、もう一方を待機系の情報を格納しておいて、Step Functionsで入れ替えるような構成を作ってみました。
# 概要
– 以下の二つのパラメーターストアを作ります
– PrimaryParameter
– 今回は最初に`tokyo-endpoint`という値を入れておきます
– SecondaryParameter
– 今回は最初に`osaka-endpoint`という値を入れておきます
– 上記2つの値を入れ替える仕組みを、Step Functionsで作ります# ソース
概要の仕組みを作成するCloudFormationテンプレートは以下になります。“`yaml
AWSTemplateFormatVersion: “2010-09-09”Parameters:
PrimaryParameterV
Aurora MySQL 2から3へのバージョンアップで挙動が変わるSQL(2)
こんにちは。
本投稿では、Aurora MySQL 2 の EOS 対策として Aurora MySQL 3 へのバージョンアップ(MySQL 5.7からMySQL 8へのバージョンアップ)を検証した際に、Aurora MySQL 2で実行できていたSQLが3で実行できなくなるという情報をいただいたので、実際にそのSQLをSQLテストツール(Insight Database Testing)を使って確認してみた例を紹介します。
## はじめに
Auoroa MySQL 2から3 (MySQL 5.7から8) へのバージョンアップを考えた際、以下の変更点などのMySQLのドキュメントを参照することの多いのではないでしょうか?
https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-sql-changes
ここに書いてある変更がどんなものか、自分たちのサービスやアプリケーションで使用していないか、それらを探すのは骨のある作業だと思います。また、ここに書いて内容は変更がさ
AWSのIAM Roleについて整理してみた
### 対象読者
![IAMROLE.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2636207/cb1ce65b-cd67-35df-e4ce-91259fee8fad.png)
※要点整理から攻略するAWS認定 セキュリティ・専門知識を参考に作成
– この図を見た時、教科書的な説明は思い浮かぶが、実際の所IAM Roleについてよくわからない人
– 試験ではアクセスキーは×、IAM Roleは〇のように覚えてしまった人こういった方に私なりに整理して、IAM Roleとは何かをお伝えできればと思います。
間違いなどありましたらコメントや編集リクエストいただければ確認し返答いたします。
### 結論
– IAM Roleは「ユーザが管理しなくていいアクセスキー」で「ユーザーとサービス」に「一時的」に権限を渡している。
– PrincipalでそのRoleを使っていいアカウント・AWSサービス等を限定する。### この記事で説明すること
– アクセスキーのデメリット
– IAM
CloudFrontだけで短縮URLサービス作ってみた。
## はじめに
短縮URLは、オンラインの情報共有において欠かせない存在になっています。
しかし、その便利さの裏でセキュリティ上の問題も指摘されていることがあります。
例えば、QRコードを介した不正サイトへの誘導事例などが報告されています。[原因は「短縮URL」か? QRコードから不正サイトへ誘導される事例が相次ぐ オートバックスセブン、学習院大学も](https://www.itmedia.co.jp/news/articles/2311/15/news194.html)
こういったこともあり、エンジニアの皆様は自作されることも多いのではないでしょうか?
自作短縮URLサービスに関して様々なアーキテクチャがある中、CloudFront大好きな私は、エッジロケーションで完結するのでは?と考えました。
**そう、CloudFront KeyValueStore + CloudFront Functionsならね。**
URLの実態をCloudFront KeyValueStoreに保存し、CloudFront FunctionsでそのURLと共に301を返せばいいではありませ
RustのAxumで作成したDockerイメージをAWS Lambdaにサクッとデプロイする(Lambda Web Adapter)
先日こんな記事を書きました!
https://qiita.com/nokonoko_1203/items/57fbbdddbf7975a1d803
Rustの「Axum」というWebAPI用のフレームワークを利用して、レイヤードアーキテクチャでTodoアプリを作る記事になります。
その過程でちょっとこだわってDockerfileを作成したので、せっかくなのでこれをAWSのLambdaを使ってサクッとデプロイしてみようと思います!
Lambda Web Adapterという比較的最近リリースされた機能を利用すると、Dockerイメージをほんの数分でデプロイできるので、今回はこちらを利用していきます!
– 参考記事
– [Lambda Web Adapter でウェブアプリを (ほぼ) そのままサーバーレス化する](https://aws.amazon.com/jp/builders-flash/202301/lambda-web-adapter/)## Dockerfileを作成
僕の書いた記事でも紹介していますが、今回はこちらのリポジトリを使っていきます。
h
LaravelアプリをEC2で動かす
# 概要
お仕事でGitHubにあるLaravelアプリをEC2に設置して動作確認することを試したので、記録として作業内容を書いていく
* 表示までを優先させたので、httpでの接続までを記載
* DBはRDSを使わずにEC2内で行うようにしている## 前提
* GitHubでLaravelアプリをPushしている
* AWSアカウントを持っている
* 東京リージョンを使用## 環境
nginx: 1.21.1
php: 8.1
Laravel 8.x
MySQL: 8.0.26## 流れ
・EC2の作成と起動
・必要なツール(nginx,php,MySQL)をインストール
・DBの設定と作成
・LaravelアプリをEC2に置く
・各種設定、パッケージインストール
・php-fpm、nginx調整
・画面表示確認
・確認後のEC2終了# 作業内容
## EC2の起動
AWS管理コンソールにアクセスし、EC2ダッシュボードから`インスタンスを起動`を選択![スクリーンショット 2023-12-03 4.22.08.png](https://qiita-
AWS ECSで悪戦苦闘走り書き
## 概要
– ECSについてのまとまった記載と、AWSの知識ほぼなしといったことから、大苦戦したことをまとめる## 初めに
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html1. これを参考に、IAMユーザーを作成した
– 付与すべきロールが行方不明である↓ロールに関するdoc
– https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/security-iam-awsmanpol.html2. また、今回はEC2を利用するため、
EC2のインスタンスを作成し、Keyも併せて作成した
– 記述を見る限り、インスタンスはなしで、単純にKeyだけを作成するでもよさそうである3. 最後に流れに従い、AWS CLIをインストールすることにした
https://docs.aws.amazon.com/ja_jp/cli/latest/userg
OpenID Connectを使用してGitHub Actionsでアクセスキーレスなデプロイをおこなう
セキュリティ強化を目指して、なるべくIAMユーザーの使用を最小限に抑えて、IAMロールで一時的な権限付与を行う手法を取り入れてきました。
ただ、GitHub Actionsのデプロイワークフローにおいては、AssumeRoleする際にIAMユーザーのクレデンシャル(アクセスキーとシークレットアクセスキー)が必要だと思っていて、以下の記事でもその方法を採用しました。
https://qiita.com/suzuki0430/items/b3c35e888561ee99f6aa
しかし、よく調べてみたら、OpenID Connectを使うと、クレデンシャルを使わずにワークフロー内でAssumeRoleできることがわかり、ワークフローを改善しました。
DevOps経験のあるエンジニアには既知の内容だと思いますが、初心者の方々への参考として、改善内容を共有します。
# OpenID Connectとは
OpenID Connect(OIDC)は、ユーザー認証を行うためのオープンスタンダードプロトコルです。OAuth 2.0プロトコルを基にしていて、安全な方法でユーザーの身元情報を確認
AWSにVPNServerをテンプレート化した(注:ローカルブリッジはできません)
### はじめに
前回NATインスタンスをテンプレート化しました。今回はVPNServerをテンプレート化してみます。
AWSでは、以下のような3種類のVPNサービスが利用できますが、極力コストをかけたくないので、自前でテンプレートを用意します。
* AWS Client VPN($0.15/時間・クライアント)
* AWS Site-to-Site VPN(グローバルIPを割り当てたルーターが必要、安価)
* AWS Direct Connect(専用回線なので高い、個人で利用することはほぼない)https://qiita.com/mirutaro/items/d9d685a84b408da247eb
### 目指す構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3636209/a70419f1-d77c-cb0f-a209-7a0efa4ff971.png)VPNソフトウェアとしてsoftetherVPNを利用します。dockerイメージのsiomiz/softethe
AWSのマネジメントコンソールでセキュリティグループを作成する
こんにちは。
本日は、仮想サーバー等のVPC内のリソースのアクセス制御で利用するセキュリティグループを作成する手順を記載します。# AWSのマネジメントコンソールでセキュリティグループを作成する手順
## 前提
AWSのマネジメントコンソールでVPC作成時に、以下の条件で作成していたものとします。
* 自動生成のタグに「PoC-20240105」を設定
## 1. 以下のリンクにアクセス
東京リージョンか大阪リージョンで作成する場合、以下のリンクでVPCを作成する画面に遷移します。
* 東京リージョンでセキュリティグループを作成する
[https://ap-northeast-1.console.aws.amazon.com/vpcconsole/home?region=ap-northeast-1#CreateSecurityGroup:](https://ap-northeast-1.console.aws.amazon.com/vpcconsole/home?region=ap-northeast-1#CreateSecurityGroup: “セキュリティグ
AWS SAMを使ってローカルでLambdaを実装、AWSにデプロイしてみた
## 概要
AWS SAMを使用することでサーバーレスアプリケーションを簡単に実装〜デプロイまですることができたので共有したいと思います。## 対象者
– AWS SAMに興味がある方
– サーバーレスアプリケーションに興味がある方
– Lambda関数を簡単に実装〜デプロイしたい方## 環境
– M1 Mac
– VScode
– Docker Desktop## 目次
– 前提
– やってみた
– 最後に## 前提
– awsアカウントの発行
– aws cliをインストール
– aws configureでアクセスキーとシークレットキーを設定## やってみた
簡単なLambda関数を作成し、`sam build`して`sam deploy`していきます。### AWS SAMの準備
SAMをインストールしていきます[AWS SAM CLI のインストール – AWS Serverless Application Model ](https://docs.aws.amazon.com/ja_jp/serverless-application-
AWS Certified Data Engineer – Associate (DEA-C01) ベータ版を受けてみた
AWS認定の新試験「AWS Certified Data Engineer – Associate」のベータ版を受験しました。
# 試験概要
公式サイトの説明は以下の通りです。
> AWS Certified Data Engineer – Associate は、コアデータ関連の AWS サービスのスキルと知識や、データパイプラインの実装、問題のモニタリングとトラブルシューティング、ベストプラクティスに従ってコストとパフォーマンスを最適化する能力を検証します。https://aws.amazon.com/jp/certification/certified-data-engineer-associate/
ベータ版は試験時間が170分で言語は英語のみとなっており、Professional/Specialtyレベルの集中力が求められます。
# Data Analytics – Specialtyとの違い
これまでデータ分析系の資格としてData Analytics – Specialty (DAS) が存在していましたが、こちらは2024年4月に廃止となる予定です。DA
AWS Data Provider for SAPのアクセス許可ポリシーを作成する。SAP on AWS ハンズオン①
### ソース
技術的要件
https://docs.aws.amazon.com/sap/latest/general/data-provider-req.html#data-provider-iam-roles### PAS試験用まとめ
– 必要な権限
EC2:DescribeInstances→インスタンスのパラメータを一覧表示する
EC2:DescribeVolumes→EBSボリュームのパラメータを一覧表示する
cloudwatch:GetMetricStatistics→CloudWatchメトリクスのデータポイントを取得する
s3:GetObject→対象のS3バケットからオブジェクトを取得するcloudwatch:GetMetricStatisticsに関しては以下。
https://dev.classmethod.jp/articles/get-data-points-for-cloudwatch-metrics-with-api/DescribeInstancesは単なるインスタンスの一覧ではなく、インスタンスのパラメーターなど説明要素を返してもらう
【aws cli】dynamodbテーブルの作成とクエリ
## aws cliを使用したdynamodbテーブルの作成手順
### aws cliを使ったdynamodbテーブルの作成手順を解説します。aws cliとは、awsの機能をコマンドラインから操作するためのツールです。dynamodbはフルマネージド型のnosqlデータベースであり、高いスケーラビリティとパフォーマンスを提供しています。以下の手順に従って、dynamodbテーブルの作成を行いましょう。
1. aws cliのインストール
まず最初に、aws cliをインストールする必要があります。以下のコマンドを実行して、aws cliをインストールします。“`bash
$ pip install awscli
“`2. aws cliの設定
aws cliを使用するには、awsの認証情報を設定する必要があります。以下のコマンドを実行して、認証情報を設定します。“`bash
$ aws configure
aws access key id [****************]:
aws secret access key [****************]
【aws cli】セキュリティグループの設定と管理
## aws cli】セキュリティグループの設定と管理
こんにちは。今回は、aws cliについて初心者エンジニアに向けて、セキュリティグループの設定と管理方法について解説します。
## はじめに
aws cliは、aws command line interfaceのことで、ターミナルやコマンドプロンプトを利用してawsの各種サービスを操作することができます。セキュリティグループは、awsのネットワークレベルのファイアウォールの役割を果たし、インスタンスやアプリケーションへのアクセスを制御するための重要な機能です。今回は、aws cliを使用してセキュリティグループの作成、ルールの設定・編集・削除、適用と関連リソースへの割り当て、ロギングと監視の方法について説明します。
## aws cliでのセキュリティグループの作成手順
セキュリティグループを作成するためには、以下のaws cliコマンドを使用します。
“`bash
aws ec2 create-security-group –group-name mysecuritygroup –description “m
ECSをBlue/Greenデプロイするイメージをterraformで掴んでみる
# はじめに
ECSのデプロイやBlue/Greenアップデートがどんなものだったか、記憶が薄れていたので思い出す意味でも初学時に書いたterraformを書き直しました。
全容を確認しながら、リソースの関係をイメージできればなと思います。## 概要
#### アーキテクチャ![cap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/dd21902d-8ce7-d0ab-f8a3-d4b092740356.png)
publicサブネットに配置されたALBを通してprivateサブネットに配置されているECSタスクにアクセスする一般的な構成です。
少しでも節約するため、NAT Gatewayは1台構成としています。#### フォルダ構成
“`
.
├── main.tf
├── variable.tf
├── terraform.tfvars
├── vpc.tf
├── alb.tf
├── ecr.tf
├── ecs.tf
├── codebuild.tf
├── c
【aws cli】iamユーザーの作成と権限設定
## aws cliを使用したiamユーザーの作成手順
こんにちは。今回は、aws cliについて初心者エンジニアに向けて、iamユーザーの作成と権限設定についてご説明します。aws cliは、コマンドラインインターフェースを通じてawsリソースを管理するためのツールであり、効率的に操作することができます。
aws cliを使用してiamユーザーを作成する手順は以下の通りです。
### 1. aws cliのインストール
まずは、aws cliを導入しましょう。以下の公式ドキュメントを参考に、適切な環境にaws cliをインストールしてください。– [aws cliのインストールガイド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html)
### 2. aws cliの設定
aws cliをインストールしたら、設定を行います。以下のコマンドを実行し、awsのアクセスキーidとシークレットアクセスキーを設定してください。“`bash
$ aws configur
AWS CLIのオプションまとめ
aws blackbeltを参考にAWS CLIの基本的な使用方法、オプションをまとめました。
## 使用するまでの流れ
1. AWS CLIのインストール
詳細は省きます。zipのダウンロードだけではなくpip installなどを使用してもインストールできたりします。
1. AWS上でIAMを設定
コマンドラインから実行できるコマンドはこのIAMの権限で制限されることになる
1. IAMユーザーを作成し、必要な権限を付与する
1. IAMのコンソール画面からアクセスキー、シークレットアクセスキーを取得
1. `aws configure` をコマンドラインで打ち込み、設定を行う
下記を最低限設定
1. アクセスキー
1. シークレットアクセスキー
1. リージョン
1. 出力形式上記をすれば使用できるようになります。
## 操作方法
### 実行コマンドの形式
“`
$ aws [options][parameters]
“`
– [op
Fargate上のGitLab起点でEC2を更新するGitOpsを実現したい
# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。この記事ではGitLab起点でEC2を更新するCICDパイプラインのアーキテクチャを決める流れを解説しています。
具体的には以下流れで説明します。
– 解決したい課題の整理
– 今回使うAWSサービスの整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたことAWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。
# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– GitLab起点でEC2を更新するCICDパイプラインのアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Professional
AWSでAuto Scaling Groupの作成
# オートスケーリンググループ
このチュートリアルでは、以下の要件を持つアプリケーションのケースをシミュレートします。アーキテクチャを導入するために、お客様やプロジェクトマネージャーに同様の質問をすることができます。
**質問1:強いトラフィックがある場合、アプリケーションが正常に動作するために必要なインスタンス数はいくつですか?つまり、最小限で何台必要ですか?**
このチュートリアルでは、アプリケーションは常に最低でも2つの実行中のインスタンスを持っている必要があります。
**質問2:AWSのインスタンスにはコストがかかり、無料ではありません。したがって、そのアプリケーションにデプロイできる最大のインスタンス数はいくつですか?**
このチュートリアルでは、アプリケーションは最大で5つの実行中のインスタンスを持っている必要があります。
**質問3:トラフィックが通常の場合、アプリケーションが良好な状態で動作するための理想的なインスタンス数は何ですか?**
このチュートリアルでは、すべてが順調な場合、アプリケーションはできれば3つの実行中のインスタンスを持っている必要があ